[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-1085
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-1085-gb5c3968 |
Date: |
Tue, 25 Oct 2011 09:03:15 +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=b5c39684d50deb95373541d46c4a5f0d0d48c613
The branch, master has been updated
via b5c39684d50deb95373541d46c4a5f0d0d48c613 (commit)
from 9579333e603ae57a6b8210f828147cccd53d9276 (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 b5c39684d50deb95373541d46c4a5f0d0d48c613
Author: Stefano Lattarini <address@hidden>
Date: Mon Oct 24 23:18:34 2011 +0200
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 partially-overlapping commit `v1.11-871-geb147a1' (from
the 'testsuite-work' branch), which was motivated by similar
spurious failures experienced when cross-compiling.
Reported by Jim Meyering:
<http://lists.gnu.org/archive/html/automake-patches/2011-10/msg00092.html>
* tests/cond35.test: Provide a dummy `yywrap' function.
* tests/lex3.test: Likewise.
* tests/lexvpath.test: Likewise.
* tests/silent-lex-generic.test: Likewise.
* tests/silent-lex-gcc.test: Likewise.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 39 +++++++++++++++++++++++++++++++++++++++
tests/cond35.test | 6 ++++++
tests/lex3.test | 6 ++++++
tests/lexvpath.test | 5 +++++
tests/silent-lex-gcc.test | 3 +++
tests/silent-lex-generic.test | 3 +++
6 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 8dea9eb..a4b823f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,42 @@
+2011-10-14 Stefano Lattarini <address@hidden>
+
+ 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 partially-overlapping commit `v1.11-871-geb147a1' (from
+ the 'testsuite-work' branch), which was motivated by similar
+ spurious failures experienced when cross-compiling.
+
+ Reported by Jim Meyering:
+
<http://lists.gnu.org/archive/html/automake-patches/2011-10/msg00092.html>
+
+ * tests/cond35.test: Provide a dummy `yywrap' function.
+ * tests/lex3.test: Likewise.
+ * tests/lexvpath.test: Likewise.
+ * tests/silent-lex-generic.test: Likewise.
+ * tests/silent-lex-gcc.test: Likewise.
+
2011-10-18 Stefano Lattarini <address@hidden>
tests: fix spurious failure with FreeBSD make and Yacc in VPATH
diff --git a/tests/cond35.test b/tests/cond35.test
index c3c5f0b..776c9e1 100755
--- a/tests/cond35.test
+++ b/tests/cond35.test
@@ -59,6 +59,12 @@ test `grep tparse.h: Makefile.in | wc -l` = 1
cat > tscan.l << 'END'
%%
"END" return EOF;
+%%
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
cat > tparse.y << 'END'
diff --git a/tests/lex3.test b/tests/lex3.test
index f702864..4714472 100755
--- a/tests/lex3.test
+++ b/tests/lex3.test
@@ -53,6 +53,12 @@ main ()
else
return 1;
}
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
$ACLOCAL
diff --git a/tests/lexvpath.test b/tests/lexvpath.test
index 300a476..65565f6 100755
--- a/tests/lexvpath.test
+++ b/tests/lexvpath.test
@@ -53,6 +53,11 @@ END
cat > foo.c << 'END'
int main () { return 0; }
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+ return 1;
+}
END
$ACLOCAL
diff --git a/tests/silent-lex-gcc.test b/tests/silent-lex-gcc.test
index a55f358..5ab5ecd 100755
--- a/tests/silent-lex-gcc.test
+++ b/tests/silent-lex-gcc.test
@@ -55,6 +55,9 @@ cat > foo.l <<'EOF'
"END" return EOF;
.
%%
+/* Avoid possible link errors. */
+int yywrap (void) { return 1; }
+int main (void) { return 0; }
EOF
cp foo.l sub/bar.l
diff --git a/tests/silent-lex-generic.test b/tests/silent-lex-generic.test
index a619698..582f529 100755
--- a/tests/silent-lex-generic.test
+++ b/tests/silent-lex-generic.test
@@ -55,6 +55,9 @@ cat > foo.l <<'EOF'
"END" return EOF;
.
%%
+/* Avoid possible link errors. */
+int yywrap (void) { return 1; }
+int main (void) { return 0; }
EOF
cp foo.l sub/bar.l
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-1085-gb5c3968,
Stefano Lattarini <=