(Cross-)Building with recent GCC versions

Jan-Benedict Glaw <[email protected]>
Newsgroups gmane.os.netbsd.current
Message-ID <[email protected]>
Hi!

(Cross-)Building from Linux using a very modern GCC version (like
"gcc (basepoints/gcc-16-5320-gb2e40fc16eb, built at 1763380963) 16.0.0
20251116 (experimental)") uncovers issues with texinfo while building
tools:

./build.sh -N 4 -X /var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-xsrc \
	-P -U -u -m vax -a vax -E \
	-D /var/lib/laminar/run/netbsd-vax-vax/191/dest-vax-vax \
	-R /var/lib/laminar/run/netbsd-vax-vax/191/release-vax-vax \
	-T /var/lib/laminar/run/netbsd-vax-vax/191/tools-vax-vax \
	tools

[...]
+ /var/lib/laminar/run/netbsd-vax-vax/191/tools-vax-vax/bin/nbmake -f /var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../Makefile.gnuwrap all-am
if cc -DHAVE_CONFIG_H -I. -I/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo -I.. -I/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/lib -I../intl -DLOCALEDIR=\"/var/lib/laminar/run/netbsd-vax-vax/191/tools-vax-vax/share/locale\"   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O -MT cmds.o -MD -MP -MF ".deps/cmds.Tpo" -c -o cmds.o /var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c;  then mv -f ".deps/cmds.Tpo" ".deps/cmds.Po"; else rm -f ".deps/cmds.Tpo"; exit 1; fi
+ cc -DHAVE_CONFIG_H -I. -I/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo -I.. -I/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/lib -I../intl -DLOCALEDIR="/var/lib/laminar/run/netbsd-vax-vax/191/tools-vax-vax/share/locale" -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O -MT cmds.o -MD -MP -MF .deps/cmds.Tpo -c -o cmds.o /var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:56:11: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(int)' [-Wincompatible-pointer-types]
   56 |   { "\t", insert_space, NO_BRACE_ARGS },
      |           ^~~~~~~~~~~~
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:56:11: note: (near initialization for 'command_table[0].proc')
In file included from /var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:24:
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.h:62:3: note: 'insert_space' declared here
   62 |   insert_space (int arg),
      |   ^~~~~~~~~~~~
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:57:11: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(int)' [-Wincompatible-pointer-types]
   57 |   { "\n", insert_space, NO_BRACE_ARGS },
      |           ^~~~~~~~~~~~
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:57:11: note: (near initialization for 'command_table[1].proc')
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.h:62:3: note: 'insert_space' declared here
   62 |   insert_space (int arg),
      |   ^~~~~~~~~~~~
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:58:10: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(int)' [-Wincompatible-pointer-types]
   58 |   { " ", insert_space, NO_BRACE_ARGS },
      |          ^~~~~~~~~~~~
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:58:10: note: (near initialization for 'command_table[2].proc')
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.h:62:3: note: 'insert_space' declared here
   62 |   insert_space (int arg),
      |   ^~~~~~~~~~~~
/var/lib/laminar/run/netbsd-vax-vax/191/NetBSD-src/tools/texinfo/../../external/gpl2/texinfo/dist/makeinfo/cmds.c:59:10: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(int)' [-Wincompatible-pointer-types]
   59 |   { "!", cm_punct, NO_BRACE_ARGS },
      |          ^~~~~~~~
[...]

It spews out many more of them, while taking pointers to functions that have a
non-matching signature. There are a number of different ways to approach it:

  * Update texinfo to hopefully (haven't verified) just fix it from upstream; or
  * simply cast all handler functions in this array; or
  * properly fix all functions to follow the (expected) prototype; or
  * add -Wno-incompatible-pointer-types to CFLAGS.

Any suggestions?

Thanks,
  Jan-Benedict

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

iF0EABECAB0WIQQlDTvPcScNjKREqWEdvV51g5nhuwUCaSmBmAAKCRAdvV51g5nh
uwhcAJ97zj2HFUXbfdrxbOXx1pcxEizsfgCgkDRzT37u5T+ekLwCFzIN4LSe7Gw=
=YKiz
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.