automake-commit
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]