[committed][gdb/build] Fix typo sys/sockets.h -> sys/socket.h

Tom de Vries
2020-07-27T11:48:10Z

[-- Attachment #1: Type: text/plain, Size: 2446 bytes --]

[ was: Re: Building today's snapshot of GDB with MinGW ]

On 7/27/20 12:26 PM, Tom de Vries wrote:
> On 7/27/20 12:05 PM, Tom de Vries wrote:
>> On 7/27/20 11:49 AM, Tom de Vries wrote:
>>> On 7/3/20 5:25 PM, Joel Brobecker wrote:
>>>>> I can submit a change, but it would be difficult for me to try it, and
>>>>> regenerate configure in general (I don't have the right version of
>>>>> Autotools installed). Would it be okay to send a change and ask
>>>>> someone to do the rest?
>>>>
>>>> No problem; if you send me the configure.xxx change, I can re-run
>>>> autoconf et al, and send you a diff with the regenerated files.
>>>> We can do that as a private exchange to avoid bothering everyone
>>>> else for that part.
>>>>
>>>
>>> Hi,
>>>
>>> [ I suppose this is the last message related to commit 05a6b8c28b "Don't
>>> unnecessarily redefine 'socklen_t' type in MinGW builds.". ]
>>>
>>> I ran into a build breaker related to this commit:
>>> ...
>>> src/gdb/ser-tcp.c:65:13: error: conflicting declaration ‘typedef int
>>> socklen_t’
>>> 65 | typedef int socklen_t;
>>> | ^~~~~~~~~
>>> In file included from ../gnulib/import/unistd.h:40,
>>> from
>>> /home/vries/gdb_versions/devel/src/gdb/../gnulib/import/pathmax.h:42,
>>> from
>>> /home/vries/gdb_versions/devel/src/gdb/../gdbsupport/common-defs.h:120,
>>> from /home/vries/gdb_versions/devel/src/gdb/defs.h:28,
>>> from /home/vries/gdb_versions/devel/src/gdb/ser-tcp.c:20:
>>> /usr/include/unistd.h:277:21: note: previous declaration as ‘typedef
>>> __socklen_t socklen_t’
>>> 277 | typedef __socklen_t socklen_t;
>>> | ^~~~~~~~~
>>> ...
>>>
>>
>> Hmm, this looks fishy:
>> ...
>> /* Define to 1 if you have the <sys/sockets.h> header file. */
>>
>> #undef HAVE_SYS_SOCKETS_H
>>
>>
>>
>> /* Define to 1 if you have the <sys/socket.h> header file. */
>>
>> #undef HAVE_SYS_SOCKET_H
>> ...
>>
>> Anyway, in configure.ac, the check for HAVE_SYS_SOCKET_H comes before
>> the check for HAVE_SOCKLEN_T, but in configure, that order is reversed,
>> which is the root cause for the breakage.
>>
>> It looks like AC_CHECK_HEADERS accumulated checks for different header
>> files, and that that caused the order reversal.
>>
>
> Scrap that.
>
> It's a typo : sys/sockets.h instead of sys/socket.h.

Fixed in patch below, committed.

Thanks,
- Tom

[-- Attachment #2: 0001-gdb-build-Fix-typo-sys-sockets.h-sys-socket.h.patch --]
[-- Type: text/x-patch, Size: 2727 bytes --]

[gdb/build] Fix typo sys/sockets.h -> sys/socket.h

I'm running into a build breaker:
...
src/gdb/ser-tcp.c:65:13: error: conflicting declaration ‘typedef int
socklen_t’
65 | typedef int socklen_t;
| ^~~~~~~~~
In file included from ../gnulib/import/unistd.h:40,
from
/home/vries/gdb_versions/devel/src/gdb/../gnulib/import/pathmax.h:42,
from
/home/vries/gdb_versions/devel/src/gdb/../gdbsupport/common-defs.h:120,
from src/gdb/defs.h:28,
from src/gdb/ser-tcp.c:20:
/usr/include/unistd.h:277:21: note: previous declaration as ‘typedef
__socklen_t socklen_t’
277 | typedef __socklen_t socklen_t;
| ^~~~~~~~~
...
after commit 05a6b8c28b "Don't unnecessarily redefine 'socklen_t' type in
MinGW builds".

The root cause is a typo in gdb/configure.ac, using sys/sockets.h where
sys/socket.h was meant:
...
AC_CHECK_HEADERS([sys/sockets.h])
...

Fix the typo.

Build and tested on x86_64-linux.

gdb/ChangeLog:

2020-07-27 Tom de Vries <tdevries@suse.de>

* configure.ac: Fix sys/sockets.h -> sys/socket.h typo.
* config.in: Regenerate.
* configure: Regenerate.

---
gdb/config.in | 3 ---
gdb/configure | 8 ++++----
gdb/configure.ac | 2 +-
3 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/gdb/config.in b/gdb/config.in
index 26053475db..1aeb8603a1 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -505,9 +505,6 @@
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H

-/* Define to 1 if you have the <sys/sockets.h> header file. */
-#undef HAVE_SYS_SOCKETS_H
-
/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H

diff --git a/gdb/configure b/gdb/configure
index c9a4b42ea1..adcfa49c63 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -11844,12 +11844,12 @@ fi
done

-for ac_header in sys/sockets.h
+for ac_header in sys/socket.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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_socket_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_SOCKETS_H 1
+#define HAVE_SYS_SOCKET_H 1
_ACEOF

fi
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 3bec21560e..620ae23e34 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1248,7 +1248,7 @@ AC_CHECK_HEADERS(term.h, [], [],
#endif
])

-AC_CHECK_HEADERS([sys/sockets.h])
+AC_CHECK_HEADERS([sys/socket.h])
AC_CHECK_HEADERS([ws2tcpip.h])

# ------------------------- #