Move -lsocket check to common.m4

A user pointed out that the -lsocket check in gdb should also apply to
gdbserver -- otherwise it can't find the Solaris socketpair.  This
patch makes the change.  It also removes a couple of redundant
function checks from gdb's configure.ac.

This was tested by the person who reported the bug.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30927
Approved-By: Pedro Alves <pedro@palves.net>
This commit is contained in:
Tom Tromey 2023-10-01 09:16:13 -06:00
parent 59fed66dce
commit 5772d79823
5 changed files with 177 additions and 65 deletions

119
gdb/configure vendored
View File

@ -19704,64 +19704,6 @@ if test "$ac_res" != no; then :
fi
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
$as_echo_n "checking for library containing socketpair... " >&6; }
if ${ac_cv_search_socketpair+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char socketpair ();
int
main ()
{
return socketpair ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_socketpair=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_socketpair+:} false; then :
break
fi
done
if ${ac_cv_search_socketpair+:} false; then :
else
ac_cv_search_socketpair=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socketpair" >&5
$as_echo "$ac_cv_search_socketpair" >&6; }
ac_res=$ac_cv_search_socketpair
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
# Link in zlib/zstd if we can. This allows us to read compressed debug
# sections.
@ -23626,9 +23568,9 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
# ------------------------------ #
for ac_func in getuid getgid \
pipe pread pread64 pwrite resize_term \
pread pread64 pwrite resize_term \
getpgid setsid \
sigaction sigsetmask socketpair \
sigsetmask \
ttrace wresize setlocale iconvlist libiconvlist btowc \
setrlimit getrlimit posix_madvise waitpid \
use_default_colors
@ -24473,6 +24415,63 @@ if test "x$ac_cv_func_fork_works" = xyes; then
$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
$as_echo_n "checking for library containing socketpair... " >&6; }
if ${ac_cv_search_socketpair+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char socketpair ();
int
main ()
{
return socketpair ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_socketpair=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_socketpair+:} false; then :
break
fi
done
if ${ac_cv_search_socketpair+:} false; then :
else
ac_cv_search_socketpair=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socketpair" >&5
$as_echo "$ac_cv_search_socketpair" >&6; }
ac_res=$ac_cv_search_socketpair
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
for ac_func in fdwalk getrlimit pipe pipe2 poll socketpair sigaction \

View File

@ -511,9 +511,6 @@ AC_CHECK_LIB(m, main)
# Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
AC_SEARCH_LIBS(gethostbyname, nsl)
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
AC_SEARCH_LIBS(socketpair, socket)
# Link in zlib/zstd if we can. This allows us to read compressed debug
# sections.
AM_ZLIB
@ -1349,9 +1346,9 @@ AC_C_BIGENDIAN
# ------------------------------ #
AC_CHECK_FUNCS([getuid getgid \
pipe pread pread64 pwrite resize_term \
pread pread64 pwrite resize_term \
getpgid setsid \
sigaction sigsetmask socketpair \
sigsetmask \
ttrace wresize setlocale iconvlist libiconvlist btowc \
setrlimit getrlimit posix_madvise waitpid \
use_default_colors])

57
gdbserver/configure vendored
View File

@ -7135,6 +7135,63 @@ if test "x$ac_cv_func_fork_works" = xyes; then
$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
$as_echo_n "checking for library containing socketpair... " >&6; }
if ${ac_cv_search_socketpair+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char socketpair ();
int
main ()
{
return socketpair ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_socketpair=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_socketpair+:} false; then :
break
fi
done
if ${ac_cv_search_socketpair+:} false; then :
else
ac_cv_search_socketpair=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socketpair" >&5
$as_echo "$ac_cv_search_socketpair" >&6; }
ac_res=$ac_cv_search_socketpair
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
for ac_func in fdwalk getrlimit pipe pipe2 poll socketpair sigaction \

View File

@ -51,6 +51,8 @@ AC_DEFUN([GDB_AC_COMMON], [
AC_FUNC_MMAP
AC_FUNC_FORK
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
AC_SEARCH_LIBS(socketpair, socket)
AC_CHECK_FUNCS([fdwalk getrlimit pipe pipe2 poll socketpair sigaction \
ptrace64 sbrk setns sigaltstack sigprocmask \
setpgid setpgrp getrusage getauxval sigtimedwait])

57
gdbsupport/configure vendored
View File

@ -8151,6 +8151,63 @@ if test "x$ac_cv_func_fork_works" = xyes; then
$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
# Some systems (e.g. Solaris) have `socketpair' in libsocket.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
$as_echo_n "checking for library containing socketpair... " >&6; }
if ${ac_cv_search_socketpair+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char socketpair ();
int
main ()
{
return socketpair ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_search_socketpair=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
if ${ac_cv_search_socketpair+:} false; then :
break
fi
done
if ${ac_cv_search_socketpair+:} false; then :
else
ac_cv_search_socketpair=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socketpair" >&5
$as_echo "$ac_cv_search_socketpair" >&6; }
ac_res=$ac_cv_search_socketpair
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
for ac_func in fdwalk getrlimit pipe pipe2 poll socketpair sigaction \