[tlbuild] C23 backward incompatibilities

Andreas Scherer andreas_tex at freenet.de
Wed Apr 16 16:32:30 CEST 2025


Am 14.04.25 um 23:11 schrieb Karl Berry:
> CC=gcc-14 TL_CFLAGS=gnu23 ./Build --disable-all-pkgs \
>    --enable-web2c --enable-ps2pk \
>    --disable-luatex          \
>    --disable-luajittex       \
>    --disable-luahbtex        \
>    --disable-luajithbtex     \
>    --disable-mflua           \
>    --disable-mfluajit

If I use this with "CC='gcc-14 --std=c23'" (and without --enable-ps2pk), 
I find, in sequential order of failure:

(a) euptex0.c fails because of the declaration 'boolean bool;', which 
ultimately comes from euptexdir/pdfutils.ch; changing this to 'boole' 
makes the C compiler happy.

(b) hitex.c uses non-ANSI function 'isascii' (via kpathsea and the 
ISBLANK macro). 'gcc-14 --std=c23' bombs with 'implicitly defined 
function' error; this comes from GCC setting '__STRICT_ANSI__' when 
invoked with '--std=<any>', so one had to add '-U__STRICT_ANSI__'.

(c) pdftex.web directly declares variable 'bool: boolean;' and will 
conflict with C23 in the future; see (a) for possible solution.

I stopped trying yet another run. :o)

„Es bleibt spannend!“
Andreas


More information about the tlbuild mailing list.