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> -- xfsprogs-5.18.0/scrub/unicrash.c 2021-12-13 21:02:19.000000000 +0100 +++ xfsprogs-5.18.0-nowarn/scrub/unicrash.c 2022-10-04 19:46:28.869402900 +0200 @@ -10,6 +10,7 @@ #include <sys/types.h> #include <sys/statvfs.h> #include <strings.h> +#include <unicode/uclean.h> #include <unicode/ustring.h> #include <unicode/unorm2.h> #include <unicode/uspoof.h>