With bison 3.7, the module 'parse-datetime' does not build any more: gcc -DHAVE_CONFIG_H -I. -I../../gllib -I.. -DGNULIB_STRICT_CHECKING=1 -g -O2 -MT parse-datetime.o -MD -MP -MF .deps/parse-datetime.Tpo -c -o parse-datetime.o ../../gllib/parse-datetime.c parse-datetime.tab.c:646:32: fatal error: parse-datetime.tab.h: No such file or directory
This is caused by a documented change in bison-3.7 <https://lists.gnu.org/archive/html/info-gnu/2020-07/msg00006.html> that breaks backward-compatibility. This patch fixes it. 2020-07-28 Bruno Haible <[email protected]> parse-datetime: Fix compilation error with bison 3.7. * modules/parse-datetime (Makefile.am): Create a generated header file parse-datetime-gen.h in the source directory. Correct #include and #line statements during preprocessing. diff --git a/modules/parse-datetime b/modules/parse-datetime index b4375fd..39aaf6c 100644 --- a/modules/parse-datetime +++ b/modules/parse-datetime @@ -45,15 +45,21 @@ Makefile.am: parse-datetime.c: parse-datetime.y $(AM_V_YACC)$(PARSE_DATETIME_BISON) -d $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \ && test ':' = '$(PARSE_DATETIME_BISON)' || { \ - sed -e 's|".*/parse-datetime.y"|"parse-datetime.y"|' < parse-datetime.tab.c > parse-datetime.c-t \ + sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \ + -e 's|"parse-datetime\.tab\.c"|"parse-datetime.c"|' \ + -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ + < parse-datetime.tab.c > parse-datetime.c-tmp \ + && sed -e 's|"parse-datetime\.tab\.h"|"parse-datetime-gen.h"|' \ + < parse-datetime.tab.h > parse-datetime-gen.h-tmp \ && rm -f parse-datetime.tab.c parse-datetime.tab.h \ - && mv parse-datetime.c-t $(srcdir)/parse-datetime.c; \ + && mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c \ + && mv parse-datetime-gen.h-tmp $(srcdir)/parse-datetime-gen.h; \ } lib_SOURCES += parse-datetime.y -BUILT_SOURCES += parse-datetime.c -MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-t -MAINTAINERCLEANFILES += parse-datetime.c -EXTRA_DIST += parse-datetime.c +BUILT_SOURCES += parse-datetime.c parse-datetime-gen.h +MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.tab.h parse-datetime.c-tmp parse-datetime-gen.h-tmp +MAINTAINERCLEANFILES += parse-datetime.c parse-datetime-gen.h +EXTRA_DIST += parse-datetime.c parse-datetime-gen.h Include: "parse-datetime.h"
