This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v3] Require bison 2.7 or newer for regenerating intl/plural.y
- From: Will Newton <will dot newton at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Thu, 11 Dec 2014 18:11:39 +0000
- Subject: [PATCH v3] Require bison 2.7 or newer for regenerating intl/plural.y
- Authentication-results: sourceware.org; auth=none
The merge of the latest gettext code introduced changes to the yacc
parser source that are incompatible with versions of bison older
than 2.7. Add a configure check for the appropriate versions and
document the requirement in INSTALL.
ChangeLog:
2014-12-11 Will Newton <will.newton@linaro.org>
* manual/install.texi: Document that we require bison 2.7
or above.
* INSTALL: Regenerate.
* configure.ac: Use AC_CHECK_PROG_VER instead of
AC_PATH_PROG when checking for bison and check for
version 2.7 or above.
* configure: Regenerate.
---
INSTALL | 5 +++++
configure | 53 +++++++++++++++++++++++++++++++++++++----------------
configure.ac | 5 ++++-
manual/install.texi | 9 +++++++++
4 files changed, 55 insertions(+), 17 deletions(-)
Changes in v3:
- Fix up texinfo formatting
diff --git a/INSTALL b/INSTALL
index dac6178..0fee315 100644
--- a/INSTALL
+++ b/INSTALL
@@ -386,6 +386,11 @@ and if you change any of the message translation files you will need
* GNU `gettext' 0.10.36 or later
+If you wish to regenerate the `yacc' parser code in the `intl'
+subdirectory you will need
+
+ * GNU `bison' 2.7 or later
+
You may also need these packages if you upgrade your source tree using
patches, although we try to avoid this.
diff --git a/configure b/configure
index 0cb54ec..c4e6546 100755
--- a/configure
+++ b/configure
@@ -5318,27 +5318,26 @@ $as_echo "no" >&6; }
fi
-# Extract the first word of "bison", so it can be a program name with args.
-set dummy bison; ac_word=$2
+for ac_prog in bison
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BISON+:} false; then :
+if ${ac_cv_prog_BISON+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $BISON in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_BISON="$BISON" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$PATH:/usr/local/bin:/usr/bin:/bin"
-for as_dir in $as_dummy
+ if test -n "$BISON"; then
+ ac_cv_prog_BISON="$BISON" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_BISON="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_prog_BISON="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -5346,11 +5345,9 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_BISON" && ac_cv_path_BISON="no"
- ;;
-esac
fi
-BISON=$ac_cv_path_BISON
+fi
+BISON=$ac_cv_prog_BISON
if test -n "$BISON"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
$as_echo "$BISON" >&6; }
@@ -5360,6 +5357,30 @@ $as_echo "no" >&6; }
fi
+ test -n "$BISON" && break
+done
+
+if test -z "$BISON"; then
+ ac_verc_fail=yes
+else
+ # Found it, now check the version.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $BISON" >&5
+$as_echo_n "checking version of $BISON... " >&6; }
+ ac_prog_version=`$BISON --version 2>&1 | sed -n 's/^.*bison (GNU Bison) \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 2.7*|[3-9].*|[1-9][0-9]*)
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+ BISON=no
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libc-friendly stddef.h" >&5
$as_echo_n "checking for libc-friendly stddef.h... " >&6; }
diff --git a/configure.ac b/configure.ac
index b2c4b1f..82271c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1041,7 +1041,10 @@ if test "$PERL" != no &&
fi
AC_PATH_PROG(INSTALL_INFO, install-info, no,
$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
-AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
+AC_CHECK_PROG_VER(BISON, bison, --version,
+ [bison (GNU Bison) \([0-9]*\.[0-9.]*\)],
+ [2.7*|[3-9].*|[1-9][0-9]*],
+ BISON=no)
AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
AC_TRY_COMPILE(dnl
diff --git a/manual/install.texi b/manual/install.texi
index 1eafb6e..1484081 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -442,6 +442,15 @@ GNU @code{gettext} 0.10.36 or later
@end itemize
@noindent
+If you wish to regenerate the @code{yacc} parser code in the @file{intl}
+subdirectory you will need
+
+@itemize @bullet
+@item
+GNU @code{bison} 2.7 or later
+@end itemize
+
+@noindent
You may also need these packages if you upgrade your source tree using
patches, although we try to avoid this.
--
1.9.3