----- Forwarded message from Carl Hansen <carlhan...@gnu.org> ----- Date: Fri, 28 Jun 2019 18:27:23 -0400 From: Carl Hansen <carlhan...@gnu.org> To: Mark H Weaver <m...@netris.org> Subject: Re: bug#36314: missing scmconfig.h, guile 2.2.4 and 2.2.5, build error User-Agent: Mutt/1.5.21 (2010-09-15)
On Thu, Jun 20, 2019 at 06:17:30PM -0400, Mark H Weaver wrote: > Hi Carl, > > Carl Hansen <carlhan...@gnu.org> writes: > > > make[1]: Entering directory > > '/td2/carlstuff/build/gsrc/pkg/gnu/guile/work/guile-2.2.5' > > make -C libguile scmconfig.h > > make[2]: Entering directory > > '/td2/carlstuff/build/gsrc/pkg/gnu/guile/work/guile-2.2.5/libguile' > > \ > > if [ "no" = "yes" ]; then \ > > gcc -std=gnu11 -DHAVE_CONFIG_H -I.. \ > > -c -o gen-scmconfig.o gen-scmconfig.c; \ > > else \ > > gcc -std=gnu11 -DHAVE_CONFIG_H -DBUILDING_LIBGUILE=1 -I.. -I.. > > -I../lib -I../lib -I/opt/gsrc/lib/libffi-3.2.1/include > > -I/td2/carlstuff/build/gsrc/pkg/gnu/guile/work/guile-2.2.5 -Wall > > -Wmissing-prototypes -Wdeclaration-after-statement -Wpointer-arith > > -Wswitch-enum -fno-strict-aliasing -fwrapv -fvisibility=hidden -g -O2 -c -o > > gen-scmconfig.o gen-scmconfig.c; \ > > fi > > In file included from ./strings.h:27, > > from /usr/include/string.h:431, > > from ../lib/string.h:41, > > from gen-scmconfig.c:142: > > ../libguile/__scm.h:54:10: fatal error: libguile/scmconfig.h: No such file > > or directory > > 54 | #include "libguile/scmconfig.h" > > | ^~~~~~~~~~~~~~~~~~~~~~ > > compilation terminated. > > make[2]: *** [Makefile:4132: gen-scmconfig.o] Error 1 > > > > > > > > In other words, it is trying to create libguile/scmconfig.h, but it includes > > libguile/__scm.h which includes libguile/scmconfig.h, therefore.... build > > error. > > The problem seems to be that that the 'libguile' directory is somehow > being added to the C include search path, although it should not be. > The error message above implies that line 431 of /usr/include/string.h > includes <strings.h> (it does on my system), which is obviously intended > to pick up a system header. Instead, libguile/strings.h is being picked > up. > > I don't see -I. or equivalent on the command line above. Are you adding > "." to CPATH, C_INCLUDE_PATH, or some similar environment variable? > Note that an empty path component is typically interpreted as ".", so > two adjacent colons, or a colon at the beginning or end of the path > variable, could also explain this. > > > Happens with 2.2.5 and 2.2.4 > > Note that Guile 2.2.4 was released almost a year ago, and you're the > first person to report this problem, so I suspect it's something unusual > in your build environment. > > If the ideas above don't lead to a solution, could you send us more > details, e.g. the complete set of environment variables and arguments > passed to ./configure? > > Thanks, > Mark Thanks, Mark. Your analysis is right on. It was picking up the wrong strings.h. One comment I have is, is it a good idea to have local dot-h file be same name as well established system one like strings.h ? Anyway, thanks a lot. Carl ----- End forwarded message -----