[PATCH] Current GNU libc: Declare htonl() via <arpa/inet.h>

Jan-Benedict Glaw <[email protected]> Mon, 28 Oct 2024 12:05:40 +0100
Newsgroups gmane.os.netbsd.devel.toolchain
Message-ID <[email protected]>
Hi!

As the first issues (around tool `date`) are fixed, I've started
verification builds for all ports. Virt68k for example still breaks.

Here is a fix for building elf2aout on a very recent Linux system:

[bld tls 2024-10-25 16:22:19] cd "/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout"; /var/lib/laminar/run/netbsd-virt68k-m68k/34/tools-virt68k-m68k/bin/nbmake realall
[bld tls 2024-10-25 16:22:19] + cd /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout
[bld tls 2024-10-25 16:22:19] + /var/lib/laminar/run/netbsd-virt68k-m68k/34/tools-virt68k-m68k/bin/nbmake realall
[bld tls 2024-10-25 16:22:19] echo '#  ' "compile " m68k-elf2aout/elf2aout.lo
[bld tls 2024-10-25 16:22:19] + echo #   compile  m68k-elf2aout/elf2aout.lo
[bld tls 2024-10-25 16:22:19] #   compile  m68k-elf2aout/elf2aout.lo
[bld tls 2024-10-25 16:22:19] cc -O   -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/tools-virt68k-m68k/include/compat -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/compat -DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -DTARGET_BYTE_ORDER=BIG_ENDIAN -c -o elf2aout.lo.o    /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout/../../usr.bin/elf2aout/elf2aout.c
[bld tls 2024-10-25 16:22:19] + cc -O -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/tools-virt68k-m68k/include/compat -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/compat -DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -DTARGET_BYTE_ORDER=BIG_ENDIAN -c -o elf2aout.lo.o /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout/../../usr.bin/elf2aout/elf2aout.c
[bld tls 2024-10-25 16:22:19] /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout/../../usr.bin/elf2aout/elf2aout.c: In function 'main':
[bld tls 2024-10-25 16:22:19] /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout/../../usr.bin/elf2aout/elf2aout.c:373:32: error: implicit declaration of function 'htonl' [-Wimplicit-function-declaration]
[bld tls 2024-10-25 16:22:19]   373 |         aex.a_midmag = (u_long)htonl(((u_long)symflag << 26)
[bld tls 2024-10-25 16:22:19]       |                                ^~~~~
[bld tls 2024-10-25 16:22:19] 
[bld tls 2024-10-25 16:22:19] *** Failed target:  elf2aout.lo
[bld tls 2024-10-25 16:22:19] *** Failed command: cc -O -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/tools-virt68k-m68k/include/compat -I/var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/compat -DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -DTARGET_BYTE_ORDER=BIG_ENDIAN -c -o elf2aout.lo.o /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout/../../usr.bin/elf2aout/elf2aout.c
[bld tls 2024-10-25 16:22:19] *** Error code 1
[bld tls 2024-10-25 16:22:19] 
[bld tls 2024-10-25 16:22:19] Stop.
[bld tls 2024-10-25 16:22:19] nbmake[3]: stopped making "realall" in /var/lib/laminar/run/netbsd-virt68k-m68k/34/NetBSD-src/tools/m68k-elf2aout


diff --git a/usr.bin/elf2aout/elf2aout.c b/usr.bin/elf2aout/elf2aout.c
index 4f5c064de0cf..bff429a8d8d1 100644
--- a/usr.bin/elf2aout/elf2aout.c
+++ b/usr.bin/elf2aout/elf2aout.c
@@ -55,7 +55,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-
+#include <arpa/inet.h>
 
 struct sect {
 	/* should be unsigned long, but assume no a.out binaries on LP64 */


Would be nice if somebody would comment on this (verified to not break
a build on NetBSD-current) or commit it.

Thanks,
  Jan-Benedict

--
signature.asc (application/pgp-signature, 195 B)
-----BEGIN PGP SIGNATURE-----

iF0EABECAB0WIQQlDTvPcScNjKREqWEdvV51g5nhuwUCZx9wAAAKCRAdvV51g5nh
u4YKAJ0aTXDgqZhiv7s01Hz4oi2RZM/pNACfXSEWNhnA/TynmB6m2+fVZ//WLvc=
=GkQ8
-----END PGP SIGNATURE-----