On Tue, Oct 04, 2022 at 08:34:23PM +0200, Holger Hoffstätte wrote: > On 2022-10-04 20:28, Darrick J. Wong wrote: > > On Tue, Oct 04, 2022 at 08:11:05PM +0200, Holger Hoffstätte wrote: > > > > > > Gentoo is currently trying to rebuild the world with clang-16, uncovering exciting > > > new errors in many packages since several warnings have been turned into errors, > > > among them missing prototypes, as documented at: > > > https://discourse.llvm.org/t/clang-16-notice-of-potentially-breaking-changes/65562 > > > > > > xfsprogs came up, with details at https://bugs.gentoo.org/875050. > > > > > > The problem was easy to find: a missing include for the u_init/u_cleanup > > > prototypes. The error: > > > > > > Building scrub > > > [CC] unicrash.o > > > unicrash.c:746:2: error: call to undeclared function 'u_init'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] > > > u_init(&uerr); > > > ^ > > > unicrash.c:746:2: note: did you mean 'u_digit'? > > > /usr/include/unicode/uchar.h:4073:1: note: 'u_digit' declared here > > > u_digit(UChar32 ch, int8_t radix); > > > ^ > > > unicrash.c:754:2: error: call to undeclared function 'u_cleanup'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] > > > u_cleanup(); > > > ^ > > > 2 errors generated. > > > > > > The complaint is valid and the fix is easy enough: just add the missing include. > > > > > > Signed-off-by: Holger Hoffstätte <holger@xxxxxxxxxxxxxxxxxxxxxx> > > > > Aha, that explains why I kept hearing reports about this but could never > > get gcc to spit out this error. Thanks for fixing this. > > You're welcome. This reproduces with gcc when explicitly enabled: > > $CFLAGS="-Werror=implicit-function-declaration -Werror=implicit-int" ./configure Huh. I don't know why my system won't complain. $ gcc --version gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ gcc -Wall -g -O3 -fstack-protector --param=ssp-buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_FILE_OFFSET_BITS=64 -Wno-address-of-packed-member -femit-struct-debug-detailed=any -Wno-error=unused-but-set-variable -Wuninitialized -Wno-pointer-sign -Wall -Wextra -Wno-unused-parameter -fstack-usage -Werror -Wno-sign-compare -Wno-missing-field-initializers -Wmaybe-uninitialized -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=maybe-uninitialized -Werror=implicit-function-declaration -Werror=implicit-int -g -O2 -DDEBUG -DVERSION=\"6.1.0-rc0~WIP-2022-10-03\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -I../libxfs -I.. -D_LGPL_SOURCE -D_GNU_SOURCE -funsigned-char -fno-strict-aliasing -Wall -Werror -Wextra -Wno-unused-parameter -DHAVE_MNTENT -DHAVE_FSETXATTR -DENABLE_BLKID -DHAVE_GETFSMAP -DHAVE_GETFSREFCOUNTS -DHAVE_FALLOCATE -DHAVE_LIBURCU_ATOMIC64 -DHAVE_MALLINFO -DHAVE_MALLINFO2 -DHAVE_SYNCFS -DHAVE_LIBATTR -DHAVE_LIBICU -DHAVE_SG_IO -DHAVE_HDIO_GETGEO -c unicrash.c $ --D > > cheers, > Holger