gcc/intl/ChangeLog
Jakub Jelinek 437eea66a4 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 ;)

2020-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/92008
intl/
	* 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.
contrib/
	* gcc_update: Add intl/plural.y dependency for intl/plural-config.h.
2020-04-16 11:55:00 +02:00

258 lines
8.0 KiB
Plaintext

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.
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@,
add @BISON3_YES@ prefixed rule to adjust the *.y source using sed
and adjust output afterwards.
* plural-exp.h (PLURAL_PARSE): If HAVE_BISON3 is defined, use
struct parse_args * type for arg instead of void *.
* plural.y: Add magic /* BISON3 ... */ comments with bison >= 3
directives.
(YYLEX_PARAM, YYPARSE_PARAM): Don't define if HAVE_BISON3 is defined.
(yylex, yyerror): Adjust prototypes and definitions if HAVE_BISON3
is defined.
* plural.c: Regenerated.
* config.h.in: Regenerated.
* configure: Regenerated.
2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
* configure: Regenerate.
2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
* configure: Regenerated.
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
Merge from binutils-gdb:
2018-06-19 Simon Marchi <simon.marchi@ericsson.com>
* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS, remove AC_PREREQ.
* configure: Re-generate.
* config.h.in: Re-generate.
* aclocal.m4: Re-generate.
2018-09-18 Simon Marchi <simon.marchi@ericsson.com>
* libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext,
dcgettext, ngettext, dngettext, dcngettext): Backport changes
from upstream gettext.
2017-11-07 Alan Modra <amodra@gmail.com>
* configure.ac: Invoke AM_GNU_GETTEXT with need_ngettext.
* configure: Regenerate.
2016-11-15 Matthias Klose <doko@ubuntu.com>
* configure: Regenerate.
2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
* configure: Reflects renaming of configure.in to configure.ac
2015-07-24 Micahel Darling <darlingm@gmail.com>
PR other/66259
* configure: Reflects renaming of configure.in to configure.ac
2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
* aclocal.m4: Regenerated with automake-1.11.6.
2010-06-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR bootstrap/44621
* configure: Regenerate.
2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* aclocal.m4: Regenerate.
2009-10-15 Jim Blandy <jimb@red-bean.com>
* libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext)
(dcgettext, ngettext, dngettext, dcngettext): Backport changes
from current gettext to provide GCC format_arg attributes.
2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure.ac (AC_PREREQ): Bump to 2.64.
2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* aclocal.m4: Regenerate.
* configure: Regenerate.
* config.h.in: Regenerate.
2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Makefile.in (aclocal_deps): New variable.
($(srcdir)/aclocal.m4): Use it, for portable makefile syntax.
2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.
2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* Makefile.in (datarootdir): New variable.
2008-04-18 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/35457
* aclocal.m4: Regenerate.
* configure: Regenerate.
2008-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* aclocal.m4: Regenerate.
* configure: Likewise.
2006-09-27 Alan Modra <amodra@bigpond.net.au>
* Makefile.in (distclean): Delete config files.
2006-09-13 Eric Botcazou <ebotcazou@libertysurf.fr>
PR other/23541
PR other/26507
Backport from gettext repository:
2003-09-04 Bruno Haible <bruno@clisp.org>
* dgettext.c: Include <locale.h> after gettextP.h, not before. This
ensures that libintl_dcgettext is correctly declared on Solaris.
(Needed because Solaris <locale.h> includes libintl.h.)
* dngettext.c: Likewise, for the libintl_dcngettext declaration.
2006-06-07 Daniel Jacobowitz <dan@codesourcery.com>
* Makefile.in (install-info, install-dvi, install-ps, install-pdf):
New dummy targets.
2005-05-23 Carlos O'Donell <carlos@codesourcery.com>
* Makefile.in: Add info dvi ps pdf html install-html to .PHONY
Add install-html target.
2005-05-13 Nick Clifton <nickc@redhat.com>
* Update the address and phone number of the FSF organization in
the GPL notices in the following files:
Makefile.in, bindtextdom.c, dcgettext.c, dcigettext.c,
dcngettext.c, dgettext.c, dngettext.c, eval-plural.h,
explodename.c, finddomain.c, gettext.c, gettextP.h, gmo.h,
hash-string.h, intl-compat.c, l10nflist.c, libgnuintl.h,
loadinfo.h, loadmsgcat.c, localcharset.c, localcharset.h,
locale.alias, localealias.c, localename.c, log.c, ngettext.c,
osdep.c, plural-exp.c, plural-exp.h, plural.c, plural.y,
relocatable.c, relocatable.h, textdomain.c
2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
* aclocal.m4: Regenerate.
2004-09-23 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (config.h.in): Correct dependencies.
(stamp-h1): Likewise.
(config.intl): Likewise.
2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
* configure.ac (AC_CONFIG_MACRO_DIR): New.
(ACLOCAL, AUTOCONF, AUTOHEADER, MAINT): Substitute.
* Makefile.in: Update with maintainer mode rules.
* README: Update aclocal regeneration instructions.
* aclocal.m4, configure: Regenerate.
2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
* .cvsignore: Ignore autom4te.cache
2004-04-25 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Point config.intl to the parent directory of
${top_builddir}.
* configure: Regenerate.
2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
* configure.ac: Bump AC_PREREQ to 2.59.
* configure: Regenerate.
* config.h.in: Regenerate.
2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.in: Convert to autoconf 2.57, gratuitous stylistic
cleanup, rename to configure.ac.
* configure.ac: Renamed from configure.in.
* config.h.in: Rebuilt with autoheader 2.57.
* configure: Rebuilt with autoconf 2.57
* README: Update to reflect rename of configure.in to configure.ac.
2003-07-07 Zack Weinberg <zack@codesourcery.com>
* README: Update.
* Makefile.in (INSTALL, INSTALL_DATA, MKINSTALLDIRS,
mkinstalldirs, gettextsrcdir, l): Delete.
(COMPILE): Add $(DEFS-$@), remove $(XCFLAGS).
(HEADERS): libgnuintl.h not libgnuintl.h.in. Remove os2compat.h.
(SOURCES): Remove os2compat.c.
(DEFS-dcigettext.o, DEFS-localealias.o, DEFS-localcharset.o,
DEFS-relocatable.o): New.
(all-yes): Add config.intl.
(libintl.h): Use cp, not cat.
(INCLUDES): Remove -I..
(TAGS, CTAGS, ID): Word wrap.
(mostlyclean, distclean): Remove junk.
(config.intl): New rule.
* aclocal.m4: sinclude ../config/progtest.m4 instead of
including it inline.
* config.intl.in: New file.
* configure.in: Take out unnecessary AC_CONFIG_AUX_DIR.
Take out AC_DEFINEs for LOCALEDIR, LOCALE_ALIAS_PATH,
LIBDIR, INSTALLDIR. Set LIBINTL_DEP and INCINTL and AC_SUBST
them. Add config.intl to AC_OUTPUT.
* os2compat.c, os2compat.h: Delete, unused.
2003-07-04 Zack Weinberg <zack@codesourcery.com>
* Makefile.in: Remove unnecessary capabilities for
installation, build of shared libraries, generation of
distribution tarballs, etc. Fix all the places that rely on
the parent directory. Don't generate libgnuintl.h from
anything; do generate $(objdir)/libintl.h from libgnuintl.h if
necessary. Adjust DEFS for use of config.h.
* libgnuintl.h.in: Rename libgnuintl.h.
* README: New file.
* config.charset, ref-add.sin, ref-del.sin: Delete (unused).
* COPYING.LIB-2.0, COPYING.LIB-2.1: Delete (redundant).
* aclocal.m4: New; generated per instructions in gettext manual.
* configure.in: New; written from scratch for this configuration.
* configure, config.h.in: Generated.
2003-05-22 GNU <bug-gnu-gettext@gnu.org>
* Version 0.12.1 released.