[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, yl-work-for-master, updated
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, yl-work-for-master, updated. v1.11-1913-g682d5ce |
Date: |
Sun, 12 Feb 2012 16:23:01 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".
http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=682d5ce5382ab50d63eaf9fe373a1370bb435b6f
The branch, yl-work-for-master has been updated
via 682d5ce5382ab50d63eaf9fe373a1370bb435b6f (commit)
via e0906b7e17bc34b1183d273ca0571c10d5619c08 (commit)
via 0b34421dc2d78a163ce9eaca41348dd672c302ed (commit)
from e6c40d4bba3155a8dd2406806a7be51d3ac73ed0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 682d5ce5382ab50d63eaf9fe373a1370bb435b6f
Author: Stefano Lattarini <address@hidden>
Date: Sun Feb 12 17:16:54 2012 +0100
tests: workaround for shells with broken 'set -e'
* tests/yacc-cxx.test: Some versions of the BSD shell wrongly bail
out when the 'errexit' shell flag is active if the left-hand
command in a "&&" list fails and such list is the *last* command
of a "for" or "while" loop or of an "if" construct. Work around
this issue.
* tests/check12.test: Likewise.
commit e0906b7e17bc34b1183d273ca0571c10d5619c08
Author: Stefano Lattarini <address@hidden>
Date: Sun Feb 12 17:02:33 2012 +0100
tests: avoid spurious failure with non-bison yacc
Issue revealed by a failure on NetBSD 5.1.
* tests/suffix10.tap (Makefile.am): Adjust the rule generating
the '.y' files so that such files won't use bison-only features.
commit 0b34421dc2d78a163ce9eaca41348dd672c302ed
Author: Stefano Lattarini <address@hidden>
Date: Sun Feb 12 16:37:44 2012 +0100
tests: fix spurious failures due to missing 'yywrap()' function
The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
the "lex library" expected to provide a 'yywrap' function (function
which is required to link most lex-generated programs). On the
contrary, when all the link attempts (i.e., with '-ll' and '-lfl')
fail, configure declares that no lex library is needed, and simply
proceeds with the configuration process -- only for the build to
possibly fail later, at make time.
This behaviour is intended; the Autoconf manual reads:
You are encouraged to use Flex in your sources, since it is
both more pleasant to use than plain Lex and the C source it
produces is portable. In order to ensure portability, however,
you must either provide a function 'yywrap' or, if you don't use
it (e.g., your scanner has no '#include'-like feature), simply
include a '%noyywrap' statement in the scanner's source.
This AC_PROG_LEX behaviour is causing some spurious failures of
the Automake testsuite in environments which lack a proper library
providing 'yywrap' (this happens for example on Fedora-based
systems). The proper workaround is to simply provide a fall-back
implementation of 'yywrap' in our lexers.
See also similar commits 'v1.11-546-gca0ba5d' (24-10-2011),
'v1.11-1085-gb5c3968' (24-10-2011) and 'v1.11-871-geb147a1'
(25-05-2011).
* tests/lex-clean.test: Provide a dummy 'yywrap' function.
* tests/lex-line.test: Likewise.
* tests/lex-nodist.test: Likewise.
* tests/lex-depend.test: Likewise.
* tests/lex-clean-cxx.test: Move the dummy 'yywrap' function
from the main '.cc' file into the '.lxx' file, so that it won't
be subject to the namespace declaration in the '.cc' file (which
was causing a spurious link error in systems without a default
"lex library").
-----------------------------------------------------------------------
Summary of changes:
tests/check12.test | 5 ++---
tests/lex-clean-cxx.test | 9 +++++----
tests/lex-clean.test | 6 ++++++
tests/lex-depend.test | 5 +++++
tests/lex-line.test | 6 ++++++
tests/lex-nodist.test | 6 ++++++
tests/suffix10.tap | 2 +-
tests/yacc-cxx.test | 1 +
8 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/tests/check12.test b/tests/check12.test
index 88235f8..92e4a69 100755
--- a/tests/check12.test
+++ b/tests/check12.test
@@ -140,9 +140,7 @@ for vpath in : false; do
test -f test-suite.log
test -f a.log
test -f b.log
- else
- :
- fi
+ else :; fi
grep 'check-local succeeded :-)' local.log
cp -f config.status config-status.sav
@@ -179,6 +177,7 @@ for vpath in : false; do
grep '^FAIL: b$' test-suite.log
grep '^b\.test: exit status: 1$' test-suite.log
grep '^a\.test' test-suite.log && Exit 1
+ : For shells with busted 'set -e'.
else :; fi
CHECKLOCAL_EXIT_STATUS=1 $MAKE check && Exit 1
diff --git a/tests/lex-clean-cxx.test b/tests/lex-clean-cxx.test
index ba7e367..6ca8071 100755
--- a/tests/lex-clean-cxx.test
+++ b/tests/lex-clean-cxx.test
@@ -58,16 +58,17 @@ cat > parsefoo.lxx << 'END'
%%
"GOOD" return EOF;
.
+%%
+int yywrap (void)
+{
+ return 1;
+}
END
cp parsefoo.lxx parsebar.ll
cat > mainfoo.cc << 'END'
// This file should contain valid C++ but invalid C.
using namespace std;
-int yywrap (void)
-{
- return 1;
-}
int main (int argc, char **argv)
{
extern int yylex (void);
diff --git a/tests/lex-clean.test b/tests/lex-clean.test
index 5bcb5c1..6f03887 100755
--- a/tests/lex-clean.test
+++ b/tests/lex-clean.test
@@ -64,6 +64,12 @@ int main (void)
{
return yylex ();
}
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
$ACLOCAL
diff --git a/tests/lex-depend.test b/tests/lex-depend.test
index 13d5554..2ef27da 100755
--- a/tests/lex-depend.test
+++ b/tests/lex-depend.test
@@ -55,6 +55,11 @@ int main (void)
printf("%s\n", MESSAGE);
return 0;
}
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
cat > my-hdr.h <<'END'
diff --git a/tests/lex-line.test b/tests/lex-line.test
index 27958c8..a7e1640 100755
--- a/tests/lex-line.test
+++ b/tests/lex-line.test
@@ -70,6 +70,12 @@ int main ()
;
return 0;
}
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
cp zardoz.l dir/quux.l
diff --git a/tests/lex-nodist.test b/tests/lex-nodist.test
index 5948400..092e089 100755
--- a/tests/lex-nodist.test
+++ b/tests/lex-nodist.test
@@ -65,6 +65,12 @@ int main ()
{
return yylex ();
}
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
$ACLOCAL
diff --git a/tests/suffix10.tap b/tests/suffix10.tap
index 2d66f3b..1b812cb 100755
--- a/tests/suffix10.tap
+++ b/tests/suffix10.tap
@@ -42,7 +42,7 @@ libfoo_la_SOURCES = foo.x_
&& echo 'void yyerror (char *s) {}' \
&& echo '%}' \
&& echo '%%' \
- && echo 'WORD: "foo";' \
+ && echo 'foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};' \
&& echo '%%' \
## Account for VPATH issues on weaker make implementations.
&& cat `test -f '$<' || echo $(srcdir)/`$<; \
diff --git a/tests/yacc-cxx.test b/tests/yacc-cxx.test
index a805087..430fe06 100755
--- a/tests/yacc-cxx.test
+++ b/tests/yacc-cxx.test
@@ -93,6 +93,7 @@ test -f foo4-parse4.output
for i in 1 2 3 4; do
echo a | ./foo$i
echo b | ./foo$i && Exit 1
+ : For shells with busted 'set -e'.
done
# The Yacc-derived C++ sources must be shipped.
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, yl-work-for-master, updated. v1.11-1913-g682d5ce,
Stefano Lattarini <=