https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92008

--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:2ca17e0a89ff6c37e17851a5bd7b0a03ee8de535

commit r10-7748-g2ca17e0a89ff6c37e17851a5bd7b0a03ee8de535
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Apr 16 10:12:30 2020 +0200

    intl: Allow building both with old bison and bison >= 3 [PR92008]

    bison 3 apparently made a backwards incompatible change, dropped
    YYLEX_PARAM/YYPARSE_PARAM support and instead needs %param or %lex-param
    and %parse-param.  Furthermore, there is no easy way to conditionalize
    on bison version in the *.y files.
    While e.g. glibc bumped bison requirement and just has the bison 3
    compatible version, Richi said there are still systems with older bison
    where we want to build gcc.

    So, this patch instead determines during configure bison version, and
    depending on that when building plural.c (if building it at all) tweaks
    what is passed over to bison if needed.

    Tested with both bison 3 and bison 1.35, in each case with reconfiguring
    intl and building with make all-yes (as in my setup intl isn't normally
    used).

    2020-04-16  Jakub Jelinek  <ja...@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@,
            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.

Reply via email to