From: Eli Zaretskii Date: Sun, 26 Jul 2020 16:35:48 +0000 (+0300) Subject: Don't unnecessarily redefine 'socklen_t' type in MinGW builds. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=05a6b8c28baad097147eb06329ce3be940682aa9;p=binutils-gdb.git Don't unnecessarily redefine 'socklen_t' type in MinGW builds. The original configure-time tests in gdb/ and gdbserver/ failed to detect that 'socklen_t' is defined in MinGW headers because the test program included only sys/socket.h, which is absent in MinGW system headers. However on MS-Windows this data type is declared in another header, ws2tcpip.h. The modified test programs try using ws2tcpip.h if sys/socket.h is unavailable. Thanks to Joel Brobecker who helped me regenerate the configure scripts and the config.in files. gdb/ChangeLog: 2020-07-26 Eli Zaretskii * configure.ac (AC_CHECK_HEADERS): Check for sys/socket.h and ws2tcpip.h. When checking whether socklen_t type is defined, use ws2tcpip.h if it is available and sys/socket.h isn't. * configure: Regenerate. * config.in: Regenerate. gdbserver/ChangeLog: 2020-07-26 Eli Zaretskii * configure.ac (AC_CHECK_HEADERS): Add ws2tcpip.h. When checking whether socklen_t type is defined, use ws2tcpip.h if it is available and sys/socket.h isn't. * configure: Regenerate. * config.in: Regenerate. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0c2c6552d95..c8af86bfcaa 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2020-07-26 Eli Zaretskii + + * configure.ac (AC_CHECK_HEADERS): Check for sys/socket.h and + ws2tcpip.h. When checking whether socklen_t type is defined, use + ws2tcpip.h if it is available and sys/socket.h isn't. + * configure: Regenerate. + * config.in: Regenerate. + 2020-07-25 Andrew Burgess PR fortran/23051 diff --git a/gdb/config.in b/gdb/config.in index 340c421ca03..26053475db9 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -505,6 +505,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKETS_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H @@ -568,6 +571,9 @@ /* Define to 1 if you have the `wresize' function. */ #undef HAVE_WRESIZE +/* Define to 1 if you have the header file. */ +#undef HAVE_WS2TCPIP_H + /* Define to 1 if you have the `XML_StopParser' function. */ #undef HAVE_XML_STOPPARSER diff --git a/gdb/configure b/gdb/configure index 06b11e22521..c9a4b42ea12 100755 --- a/gdb/configure +++ b/gdb/configure @@ -11844,6 +11844,31 @@ fi done +for ac_header in sys/sockets.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/sockets.h" "ac_cv_header_sys_sockets_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_sockets_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SOCKETS_H 1 +_ACEOF + +fi + +done + +for ac_header in ws2tcpip.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "ws2tcpip.h" "ac_cv_header_ws2tcpip_h" "$ac_includes_default" +if test "x$ac_cv_header_ws2tcpip_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WS2TCPIP_H 1 +_ACEOF + +fi + +done + + # ------------------------- # # Checks for declarations. # # ------------------------- # @@ -12059,7 +12084,11 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h # ------------------ # ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include -#include +#if HAVE_SYS_SOCKET_H +# include +#elif HAVE_WS2TCPIP_H +# include +#endif " if test "x$ac_cv_type_socklen_t" = xyes; then : diff --git a/gdb/configure.ac b/gdb/configure.ac index f9461b21507..3bec21560e7 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1248,6 +1248,9 @@ AC_CHECK_HEADERS(term.h, [], [], #endif ]) +AC_CHECK_HEADERS([sys/sockets.h]) +AC_CHECK_HEADERS([ws2tcpip.h]) + # ------------------------- # # Checks for declarations. # # ------------------------- # @@ -1263,7 +1266,11 @@ AM_LC_MESSAGES AC_CHECK_TYPES(socklen_t, [], [], [#include -#include +#if HAVE_SYS_SOCKET_H +# include +#elif HAVE_WS2TCPIP_H +# include +#endif ]) # ------------------------------------- # diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index f42b5c753a3..ee80fce4c1f 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,3 +1,11 @@ +2020-07-26 Eli Zaretskii + + * configure.ac (AC_CHECK_HEADERS): Add ws2tcpip.h. + When checking whether socklen_t type is defined, use ws2tcpip.h if + it is available and sys/socket.h isn't. + * configure: Regenerate. + * config.in: Regenerate. + 2020-07-22 Pedro Alves * inferiors.cc (switch_to_process): New, moved here from diff --git a/gdbserver/config.in b/gdbserver/config.in index 07213aa5273..c2ac4fea7e8 100644 --- a/gdbserver/config.in +++ b/gdbserver/config.in @@ -378,6 +378,9 @@ /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK +/* Define to 1 if you have the header file. */ +#undef HAVE_WS2TCPIP_H + /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT diff --git a/gdbserver/configure b/gdbserver/configure index 0f77ac6cb8d..1f9c3f8ef49 100755 --- a/gdbserver/configure +++ b/gdbserver/configure @@ -9148,7 +9148,7 @@ else CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type fi -for ac_header in termios.h sys/reg.h string.h sys/procfs.h linux/elf.h fcntl.h signal.h sys/file.h sys/ioctl.h netinet/in.h sys/socket.h netdb.h netinet/tcp.h arpa/inet.h +for ac_header in termios.h sys/reg.h string.h sys/procfs.h linux/elf.h fcntl.h signal.h sys/file.h sys/ioctl.h netinet/in.h sys/socket.h netdb.h netinet/tcp.h arpa/inet.h ws2tcpip.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -10044,7 +10044,11 @@ _ACEOF ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include -#include +#if HAVE_SYS_SOCKET_H +# include +#elif HAVE_WS2TCPIP_H +# include +#endif " if test "x$ac_cv_type_socklen_t" = xyes; then : diff --git a/gdbserver/configure.ac b/gdbserver/configure.ac index 10f2f4c0cb0..4c7e392bbce 100644 --- a/gdbserver/configure.ac +++ b/gdbserver/configure.ac @@ -75,7 +75,7 @@ AC_CHECK_HEADERS(termios.h sys/reg.h string.h dnl sys/procfs.h linux/elf.h dnl fcntl.h signal.h sys/file.h dnl sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl - netinet/tcp.h arpa/inet.h) + netinet/tcp.h arpa/inet.h ws2tcpip.h) AC_FUNC_FORK AC_CHECK_FUNCS(pread pwrite pread64) @@ -147,7 +147,11 @@ AC_CHECK_DECLS([perror, vasprintf, vsnprintf]) AC_CHECK_TYPES(socklen_t, [], [], [#include -#include +#if HAVE_SYS_SOCKET_H +# include +#elif HAVE_WS2TCPIP_H +# include +#endif ]) case "${target}" in