1. The errors begin with
from lib/bitset.h:31
/usr/include/sys/_types.h:167:5 error unknown type name wint_t
167 | wint_t __wch;
because Bison's submodule dependency is on an older gnulib that doesn't have the fix for this bug described in https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00011.html
2. Updating the gnulib submodule to either latest master or a recent branch like stable-202501 or stable-202507 causes many more errors
3. The next error is
lib/stddef.h:238:30: error: token @ is not valid in preprocessor expressions
238 | #if !defined __cplusplus && !@HAVE_C_UNREACHABLE@
caused by a missing sed substitution command in gnulib.mk
-e 's|@''HAVE_C_UNREACHABLE''@|$(HAVE_C_UNREACHABLE)|g' \
3. After this change, there were too many errors - and I gave up trying to fix them one by one
4. All errors seem related to recent header file rearrangements for hash.h
5. The first error is
src/muscle-tab.c: In function 'hash_muscle':
src/muscle-tab.c:100:10: error: implicit declaration of function 'hash_string' [-Wimplicit-function-declaration]
100 | return hash_string (m->key, tablesize);
because
hash_string is now declared in hashcode-string1.h and hash.h has
# if GNULIB_HASHCODE_STRING1
/* Include declarations of module 'hashcode-string1'. */
# include "hashcode-string1.h"
# endif
but
GNULIB_HASHCODE_STRING1 is not defined anywhere
6. I got past this with
#define GNULIB_HASHCODE_STRING1 1
7. The next error is
.lib/hash.h:277:12: fatal error: hashcode-string1.h: No such file or directory
277 | # include "hashcode-string1.h"
Because lib/hash.h is a symlink to gnulib/lib/hash.h - and hashcode-string1.h is in gnulib/lib and has no symlink from lib
8. Now, is this because a symlink wasn't created - or is it because gnulib/lib should be in #include paths?
9. I fixed this but there are many similar include path errors in files symlinked from lib/ to gnulib/lib like canonicalize.c
#include "hashcode-file.h"
All versions of everything are the latest
Zartaj