bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

parse-datetime: Fix compilation error with bison 3.7


From: Bruno Haible
Subject: parse-datetime: Fix compilation error with bison 3.7
Date: Wed, 29 Jul 2020 18:22:40 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-186-generic; KDE/5.18.0; x86_64; ; )

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  <bruno@clisp.org>

        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"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]