aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Darrington <john@darrington.wattle.id.au>2018-10-28 20:14:24 +0100
committerJohn Darrington <john@darrington.wattle.id.au>2018-10-29 08:07:32 +0100
commit98a17ece013cb94cd602496b9efb92b8816b3953 (patch)
tree76d29d19120d65522515968a16d15a779107c371
parentcad26cec079bf79d078bb92ecc6b7cf1df2e5845 (diff)
downloadgdb-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/ChangeLog8
-rw-r--r--gdb/common/netstuff.c2
-rw-r--r--gdb/config.in3
-rwxr-xr-xgdb/configure21
-rw-r--r--gdb/configure.ac10
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