Merge branch 'branch-2.6' into maint

* origin/branch-2.6:
  maint: post-release administrivia
  version 2.6.5
  regen
  tests: syntax-check
  tests: beware of compilers that do not support POSIXLY_CORRECT
  gnulib: update

Conflicts:
	NEWS
	src/parse-gram.c
	src/parse-gram.h
This commit is contained in:
Akim Demaille
2012-11-08 09:20:48 +01:00
7 changed files with 63 additions and 9 deletions

View File

@@ -1 +1 @@
2.6.4 2.6.5

2
NEWS
View File

@@ -51,7 +51,7 @@ GNU Bison NEWS
The reductions are now explicitly represented as transitions to other The reductions are now explicitly represented as transitions to other
diamond shaped nodes. diamond shaped nodes.
* Noteworthy changes in release ?.? (????-??-??) [?] * Noteworthy changes in release 2.6.5 (2012-11-07) [stable]
We consider compiler warnings about Bison generated parsers to be bugs. We consider compiler warnings about Bison generated parsers to be bugs.
Rather than working around them in your own project, please consider Rather than working around them in your own project, please consider

View File

@@ -114,6 +114,7 @@ fi
BISON_TEST_FOR_WORKING_C_COMPILER BISON_TEST_FOR_WORKING_C_COMPILER
BISON_TEST_FOR_WORKING_CXX_COMPILER BISON_TEST_FOR_WORKING_CXX_COMPILER
BISON_C_COMPILER_POSIXLY_CORRECT
AC_ARG_ENABLE([yacc], AC_ARG_ENABLE([yacc],
[AC_HELP_STRING([--disable-yacc], [AC_HELP_STRING([--disable-yacc],

View File

@@ -25,3 +25,47 @@ AC_DEFUN([BISON_TEST_FOR_WORKING_C_COMPILER], [
[], [],
[AC_MSG_FAILURE([cannot compile a simple C program])]) [AC_MSG_FAILURE([cannot compile a simple C program])])
]) ])
# BISON_CHECK_WITH_POSIXLY_CORRECT(CODE)
# --------------------------------------
# Run the Autoconf CODE with POSIXLY_CORRECT set to 1, and restored to
# its initial value afterwards.
AC_DEFUN([BISON_CHECK_WITH_POSIXLY_CORRECT],
[gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
xx) gl_had_POSIXLY_CORRECT=exported ;;
x) gl_had_POSIXLY_CORRECT=yes ;;
*) gl_had_POSIXLY_CORRECT= ;;
esac
POSIXLY_CORRECT=1
export POSIXLY_CORRECT
$1
case $gl_had_POSIXLY_CORRECT in
exported) ;;
yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;;
*) AS_UNSET([POSIXLY_CORRECT]) ;;
esac
])
# BISON_C_COMPILER_POSIXLY_CORRECT
# --------------------------------
# Whether the compiler supports -g in POSIXLY_CORRECT mode. clang-2.9
# on OS X does not, because "clang-mp-2.9 -o test -g test.c" launches
# "/usr/bin/dsymutil test -o test.dSYM" which fails with "error:
# unable to open executable '-o'".
#
# Sets C_COMPILER_POSIXLY_CORRECT to true/false.
AC_DEFUN([BISON_C_COMPILER_POSIXLY_CORRECT],
[AC_CACHE_CHECK([whether $CC supports POSIXLY_CORRECT=1],
[bison_cv_cc_supports_posixly_correct],
[BISON_CHECK_WITH_POSIXLY_CORRECT(
[AC_LANG_PUSH([C])
AC_LINK_IFELSE([AC_LANG_PROGRAM],
[bison_cv_cc_supports_posixly_correct=yes],
[bison_cv_cc_supports_posixly_correct=no])
AC_LANG_POP([C])])])
case $bison_cv_cc_supports_posixly_correct in
yes) AC_SUBST([C_COMPILER_POSIXLY_CORRECT], [true]) ;;
no) AC_SUBST([C_COMPILER_POSIXLY_CORRECT], [false]);;
esac
])

View File

@@ -75,7 +75,7 @@ AT_CLEANUP
# AT_TEST(SKELETON-NAME, DIRECTIVES) # AT_TEST(SKELETON-NAME, DIRECTIVES)
# ---------------------------------- # ----------------------------------
# Check the the initial location is correct. # Check that the initial location is correct.
m4_pushdef([AT_TEST], m4_pushdef([AT_TEST],
[AT_SETUP([Initial location: $1 $2]) [AT_SETUP([Initial location: $1 $2])

View File

@@ -79,3 +79,13 @@ LIBS="$abs_top_builddir/lib/libbison.a @LIBS@ @INTLLIBS@"
: ${XSLTPROC='@XSLTPROC@'} : ${XSLTPROC='@XSLTPROC@'}
: ${PERL='@PERL@'} : ${PERL='@PERL@'}
# Don't just check if $POSIXLY_CORRECT is set, as Bash, when launched
# as /bin/sh, sets the shell variable POSIXLY_CORRECT to y, but not
# the environment variable.
: ${C_COMPILER_POSIXLY_CORRECT='@C_COMPILER_POSIXLY_CORRECT@'}
if env | grep '^POSIXLY_CORRECT=' >/dev/null; then
POSIXLY_CORRECT_IS_EXPORTED=true
else
POSIXLY_CORRECT_IS_EXPORTED=false
fi

View File

@@ -468,11 +468,7 @@ m4_define([AT_BISON_CHECK_WARNINGS_],
[[# Defining POSIXLY_CORRECT causes bison to complain if options are [[# Defining POSIXLY_CORRECT causes bison to complain if options are
# added after the grammar file name, so skip these checks in that # added after the grammar file name, so skip these checks in that
# case. # case.
# if test "$POSIXLY_CORRECT_IS_EXPORTED" = false; then
# Don't just check if $POSIXLY_CORRECT is set, as Bash, when launched
# as /bin/sh, sets the shell variable POSIXLY_CORRECT to y, but not
# the environment variable.
if env | grep '^POSIXLY_CORRECT=' >/dev/null; then :; else
]AT_SAVE_SPECIAL_FILES[ ]AT_SAVE_SPECIAL_FILES[
# To avoid expanding it repeatedly, store specified stdout. # To avoid expanding it repeatedly, store specified stdout.
@@ -597,7 +593,10 @@ m4_define([AT_QUELL_VALGRIND],
# otherwise pass "-c"; this is a hack. The default SOURCES is OUTPUT # otherwise pass "-c"; this is a hack. The default SOURCES is OUTPUT
# with trailing .o removed, and ".c" appended. # with trailing .o removed, and ".c" appended.
m4_define([AT_COMPILE], m4_define([AT_COMPILE],
[AT_CHECK(m4_join([ ], [AT_CHECK([case $POSIXLY_CORRECT_IS_EXPORTED:$C_COMPILER_POSIXLY_CORRECT in
true:false) echo 'cannot compile properly with POSIXLY_CORRECT' && exit 77;;
esac])
AT_CHECK(m4_join([ ],
[$CC $CFLAGS $CPPFLAGS], [$CC $CFLAGS $CPPFLAGS],
[m4_bmatch([$1], [[.]], [-c], [$LDFLAGS])], [m4_bmatch([$1], [[.]], [-c], [$LDFLAGS])],
[-o $1], [-o $1],