On Thu, Jan 30, 2020 at 01:18:09PM +0100, Werner LEMBERG wrote: > > [commit 7fa44400e1f76d6b755e5bb989e611ec81221074] > > Trying a compilation of texinfo's current git on my openSUSE GNU/Linux > box, `make` aborts with this error. > > libtool: compile: > cc -DHAVE_CONFIG_H \ > -I. \ > -I.../texinfo/tp/Texinfo/XS \ > -I.../texinfo/tp/Texinfo/XS \ > -I.../texinfo/tp/Texinfo/XS/gnulib/lib \ > -I./gnulib/lib \ > -DDATADIR=\"/usr/local/share\" \ > -D_REENTRANT \ > -D_GNU_SOURCE \ > -DPERL_USE_SAFE_PUTENV \ > -fwrapv \ > -fno-strict-aliasing \ > -pipe \ > -fstack-protector-strong \ > -D_LARGEFILE_SOURCE \ > -D_FILE_OFFSET_BITS=64 \ > -fmessage-length=0 \ > -grecord-gcc-switches \ > -O2 \ > -Wall \ > -D_FORTIFY_SOURCE=2 \ > -fstack-protector-strong \ > -funwind-tables \ > -fasynchronous-unwind-tables \ > -fstack-clash-protection \ > -g \ > -Wall \ > -pipe \ > -DVERSION=\"0\" \ > -DXS_VERSION=\"0\" \ > -I/usr/lib/perl5/5.26.1/x86_64-linux-thread-multi/CORE \ > -MT parsetexi/Parsetexi.lo \ > -MD \ > -MP \ > -MF parsetexi/.deps/Parsetexi.Tpo \ > -c parsetexi/Parsetexi.c \ > -fPIC \ > -DPIC \ > -o parsetexi/.libs/Parsetexi.o > > In file included from > .../texinfo/tp/Texinfo/XS/parsetexi/Parsetexi.xs:13:0: > /usr/lib/perl5/5.26.1/x86_64-linux-thread-multi/CORE/parser.h:22:3: > error: conflicting types for ‘yy_stack_frame’ > } yy_stack_frame; > ^~~~~~~~~~~~~~ > In file included from > /usr/lib/perl5/5.26.1/x86_64-linux-thread-multi/CORE/perl.h:3939:0, > from .../texinfo/tp/Texinfo/XS/parsetexi/Parsetexi.xs:6: > /usr/lib/perl5/5.26.1/x86_64-linux-thread-multi/CORE/parser.h:22:3: > note: previous declaration of ‘yy_stack_frame’ was here > } yy_stack_frame; > ^~~~~~~~~~~~~~
What is odd is that that "parser.h" file is not the one that should have been included. It was the file inside the parsetexi directory that should have been included. I wonder if there needs to be an -I flag added to make sure that that directory is searched. It was relying on finding the include file in the same directory as the source file (parsetexi/Parsetexi.c and parsetexi/parser.h). It is odd that the parser.h in Perl's directories is used instead.
