10. Added gnulib/lib to include paths in Makefile.am
AM_CPPFLAGS = -I. -I./lib -I$(top_srcdir) -I$(top_srcdir)/lib 
-I$(top_srcdir)/gnulib/lib
11. Now a  gnulib sourcefile is missing
make[2]: *** No rule to make target 'lib/hash-pjw.c', needed by 
'lib/libbison_a-hash-pjw.o'.  Stop.

ls -l lib/hash-pjw.[ch]

lrwxrwxrwx  110 Jul 10 09:28 lib/hash-pjw.c -> gnulib/lib/hash-pjw.clrwxrwxrwx  
110 Jul 10 09:28 lib/hash-pjw.h -> gnulib/lib/hash-pjw.h
ls -l gnulib/lib/hash-pjw.{c,h}
ls: cannot access 'gnulib/lib/hash-pjw.c': No such file or directory
-rw-r--r-- 939 Jul 10 12:45 gnulib/lib/hash-pjw.h

I guess most errors are actually bison-side - what started it all was the 
wint_t bug in gnulib - my mistake was to think I could simply update gnulib 
wholesale
I'll try cherry-picking just the wint_t fix - and email bug-bison for the other 
issues
But gnulib does need to find hash-pjw.c


    On Thursday, July 10, 2025 at 01:33:24 PM CDT, Z. Majeed 
<zmaj...@sbcglobal.net> wrote:  
 
 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


  

Reply via email to