aboutsummaryrefslogtreecommitdiff
path: root/intl/ChangeLog
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2020-04-16 11:55:00 +0200
committerNick Alcock <nick.alcock@oracle.com>2021-02-10 15:26:57 +0000
commitadda0248ed0f7a2245f53a79ef6dbc2093a1be22 (patch)
treed0a4056659793dfe46efc8f53c0346d2582aec30 /intl/ChangeLog
parent830c5a1ffb0ee5f064b0ba0b07cb111aa7f85141 (diff)
downloadgdb-adda0248ed0f7a2245f53a79ef6dbc2093a1be22.zip
gdb-adda0248ed0f7a2245f53a79ef6dbc2093a1be22.tar.gz
gdb-adda0248ed0f7a2245f53a79ef6dbc2093a1be22.tar.bz2
intl: Unbreak intl build with bison 3 when no regeneration is needed [PR92008]
As Iain reported, my change broke the case when one has bison >= 3, but make decides there is no reason to regenerate plural.c, unfortunately that seems to be a scenario I haven't tested. The problem is that the pregenerated plural.c has been generated with bison 1.35, but when config.h says HAVE_BISON3, the code assumes it is the bison3 variant. What used to work fine is when one has bison >= 3 and plural.c has been regenerated (e.g. do touch intl/plural.y and it will work), or when one doesn't have any bison (then nothing is regenerated, but HAVE_BISON3 isn't defined either), or when one has bison < 3 and doesn't need to regenerate, or when one has bison < 3 and it is regenerated. The following patch fixes this, by killing the HAVE_BISON3 macro from config.h, and instead remembering the fact whether plural.c has been created with bison < 3 or bison >= 3 in a separate new plural-config.h header. The way this works: - user doesn't have bison - user has bison >= 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y - user has bison < 3, but intl/{plural-config.h,plural.c} aren't older than intl/plural.y pregenerated !USE_BISON3 plural.c and plural-config.h from source dir is used, nothing in the objdir - user has bison >= 3 and intl/plural.y is newer Makefile generates plural.c and USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies - user has bison < 3 and intl/plural.y is newer Makefile generates plural.c and !USE_BISON3 plural-config.h in the objdir, which is then used in preference to srcdir copies I have tested all these cases and make all-yes worked in all the cases. If one uses the unsupported ./configure where srcdir == objdir, I guess (though haven't tested) that it should still work, just it would be nice if such people didn't try to check in the plural{.c,-config.h} they have regenerated. What doesn't work, but didn't work before either (just tested gcc-9 branch too) is when one doesn't have bison and plural.y is newer than plural.c. Don't do that ;) intl/ChangeLog 2020-04-16 Jakub Jelinek <jakub@redhat.com> PR bootstrap/92008 * configure.ac: Remove HAVE_BISON3 AC_DEFINE. * Makefile.in (HEADERS): Add plural-config.h. (.y.c): Also create plural-config.h. (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend on plural-config.h. (plural-config.h): Depend on plural.c. * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead of HAVE_BISON3. * plural.y: Use USE_BISON3 instead of HAVE_BISON3. * configure: Regenerated. * plural.c: Regenerated. * config.h.in: Regenerated. * plural-config.h: Generated.
Diffstat (limited to 'intl/ChangeLog')
-rw-r--r--intl/ChangeLog17
1 files changed, 17 insertions, 0 deletions
diff --git a/intl/ChangeLog b/intl/ChangeLog
index 8bb12ff..d88f926 100644
--- a/intl/ChangeLog
+++ b/intl/ChangeLog
@@ -1,6 +1,23 @@
2020-04-16 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/92008
+ * configure.ac: Remove HAVE_BISON3 AC_DEFINE.
+ * Makefile.in (HEADERS): Add plural-config.h.
+ (.y.c): Also create plural-config.h.
+ (dcigettext.o loadmsgcat.o plural.o plural-exp.o): Also depend
+ on plural-config.h.
+ (plural-config.h): Depend on plural.c.
+ * plural-exp.h: Include plural-config.h. Use USE_BISON3 instead
+ of HAVE_BISON3.
+ * plural.y: Use USE_BISON3 instead of HAVE_BISON3.
+ * configure: Regenerated.
+ * plural.c: Regenerated.
+ * config.h.in: Regenerated.
+ * plural-config.h: Generated.
+
+2020-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/92008
* configure.ac: Add check for bison >= 3, AC_DEFINE HAVE_BISON3
and AC_SUBST BISON3_YES and BISON3_NO.
* Makefile.in (.y.c): Prefix $(YACC) invocation with @BISON3_NO@,