cf: Restore AC_KRB_PROG_YACC to life

Using `AC_PROG_YACC` means accepting that `bison` gets invoked in yacc
compatibility mode (i.e., with the `-y` command-line option).  In recent
versions Bison has started to warn about use of Bison extensions when in
yacc compatibility mode -- even for things yacc itself accepts but which
it doesn't document.

I've confirmed that `bison -d` and `byacc -d` both work for the ASN.1
compiler.
This commit is contained in:
Nicolas Williams
2022-01-21 22:25:36 -06:00
parent 366878c230
commit 37f10aaf85
2 changed files with 11 additions and 5 deletions

View File

@@ -1,12 +1,18 @@
dnl $Id$
dnl
dnl
dnl We prefer byacc or yacc because they do not use `alloca'
dnl OLD: We prefer byacc or yacc because they do not use `alloca'
dnl
dnl CURRENT: We don't mind `alloca', but we do mind `bison -y' because
dnl newer versions of `bison', with `-y' complain about %expect and
dnl anything that yacc didn't document. Because `bison' typically
dnl also installs a `yacc' link that acts like `bison y', we put
dnl `yacc' last in this list.
dnl
AC_DEFUN([AC_KRB_PROG_YACC],
[AC_CHECK_PROGS(YACC, byacc yacc 'bison -y')
[AC_CHECK_PROGS(YACC, 'bison -d' 'byacc -d' yacc)
if test "$YACC" = ""; then
AC_MSG_WARN([yacc not found - some stuff will not build])
AC_MSG_WARN([byacc and bison not found - some stuff will not build])
fi
])

View File

@@ -59,8 +59,8 @@ if ! test -f "$srcdir/lib/asn1/der-protos.h" ||
AC_KRB_PERL_MOD(JSON)
fi
dnl AC_KRB_PROG_YACC
AC_PROG_YACC
AC_KRB_PROG_YACC
dnl AC_PROG_YACC
AM_PROG_LEX
AS_IF([$LEX --nounput -V > /dev/null 2>&1 && test $? -eq 0],
[AC_SUBST([FLEXNOUNPUTARGS], ["--nounput"])],