diff options
author | John Darrington <john@darrington.wattle.id.au> | 2018-10-28 20:14:24 +0100 |
---|---|---|
committer | John Darrington <john@darrington.wattle.id.au> | 2018-10-29 08:07:32 +0100 |
commit | 98a17ece013cb94cd602496b9efb92b8816b3953 (patch) | |
tree | 76d29d19120d65522515968a16d15a779107c371 | |
parent | cad26cec079bf79d078bb92ecc6b7cf1df2e5845 (diff) | |
download | gdb-98a17ece013cb94cd602496b9efb92b8816b3953.zip gdb-98a17ece013cb94cd602496b9efb92b8816b3953.tar.gz gdb-98a17ece013cb94cd602496b9efb92b8816b3953.tar.bz2 |
GDB: Only build for "unix:" connections if AF_LOCAL is supported.
Commit f19c7ff839d7a32ebb48482ae7d318fb46ca823d added a new member to the
prefixes array which included a use of the symbol AF_LOCAL. Unfortunately,
not all systems declare this symbol. This change only compiles the "unix:"
member if the system knows about AF_LOCAL.
gdb/ChangeLog:
* configure.ac: New test HAVE_AF_LOCAL
* common/netstuff.c (parse_connection_spec) [prefixes]: Only compile "unix:"
if HAVE_AF_LOCAL is true.
* configure: regenerate.
* config.in: regenerate.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/common/netstuff.c | 2 | ||||
-rw-r--r-- | gdb/config.in | 3 | ||||
-rwxr-xr-x | gdb/configure | 21 | ||||
-rw-r--r-- | gdb/configure.ac | 10 |
5 files changed, 44 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6742fad..2d89f83 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2018-10-29 John Darrington <john@darrington.wattle.id.au> + + * configure.ac: New test HAVE_AF_LOCAL + * common/netstuff.c (parse_connection_spec) [prefixes]: Only compile "unix:" + if HAVE_AF_LOCAL is true. + * configure: regenerate. + * config.in: regenerate. + 2018-10-28 Andrew Burgess <andrew.burgess@embecosm.com> * riscv-linux-nat.c (riscv_linux_nat_target::fetch_registers): diff --git a/gdb/common/netstuff.c b/gdb/common/netstuff.c index 11182c1..56bcdfc 100644 --- a/gdb/common/netstuff.c +++ b/gdb/common/netstuff.c @@ -145,7 +145,9 @@ parse_connection_spec (const char *spec, struct addrinfo *hint) { "tcp4:", AF_INET, SOCK_STREAM }, { "udp6:", AF_INET6, SOCK_DGRAM }, { "tcp6:", AF_INET6, SOCK_STREAM }, +#if HAVE_AF_LOCAL { "unix:", AF_LOCAL, SOCK_STREAM }, +#endif }; for (const host_prefix prefix : prefixes) diff --git a/gdb/config.in b/gdb/config.in index f0d1414..a9d7edc2 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -68,6 +68,9 @@ /* Define if self-testing features should be enabled */ #undef GDB_SELF_TEST +/* Define to 1 if AF_LOCAL is defined or declared by sys/socket.h. */ +#undef HAVE_AF_LOCAL + /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA diff --git a/gdb/configure b/gdb/configure index 3652455..a2e7f02 100755 --- a/gdb/configure +++ b/gdb/configure @@ -13997,6 +13997,27 @@ _ACEOF fi +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include <sys/socket.h> + +int +main () +{ +int x = AF_LOCAL + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_AF_LOCAL 1" >>confdefs.h + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + if test "$cross_compiling" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setpgrp takes no argument" >&5 $as_echo_n "checking whether setpgrp takes no argument... " >&6; } diff --git a/gdb/configure.ac b/gdb/configure.ac index b2343a9..7d5e027 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1366,6 +1366,16 @@ GDB_AC_COMMON # Check the return and argument types of ptrace. GDB_AC_PTRACE +dnl Check to see if sys/socket.h knows about AF_LOCAL +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ +#include <sys/socket.h> +]], + [[int x = AF_LOCAL]])], +[AC_DEFINE([HAVE_AF_LOCAL], [1], + [Define to 1 if AF_LOCAL is defined or declared by sys/socket.h.])]) + + dnl AC_FUNC_SETPGRP does not work when cross compiling dnl Instead, assume we will have a prototype for setpgrp if cross compiling. if test "$cross_compiling" = no; then |