On Saturday 16 April 2011, Jim Meyering wrote: > Hi, > Hi Jim, thanks for the report.
> I've just run "make check" on Fedora 15. > Here's one problem, from the log below: > > sed: can't read /:$/d: No such file or directory > > Here's the obvious fix (though it does not make that > particular test pass, because it has another problem): > > From f74ec115dce4ae864b6a20606c75faa127b670cb Mon Sep 17 00:00:00 2001 > From: Jim Meyering <meyer...@redhat.com> > Date: Sat, 16 Apr 2011 11:55:46 +0200 > Subject: [PATCH] depcomp: correct invalid sed invocation > > * lib/depcomp: Insert missing -e before '/:$/d'. > Otherwise, that use of sed would treat '/:$/d' as a file name. > > Copyright (C) 2010, 2011 Free Software Foundation, Inc. > --- > ChangeLog | 8 +++++++- > lib/depcomp | 4 ++-- > 2 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index 1464f06..e9f9968 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,9 @@ > +2011-04-16 Jim Meyering <meyer...@redhat.com> > + > + depcomp: correct invalid sed invocation > + * lib/depcomp: Insert missing -e before '/:$/d'. > + Otherwise, that use of sed would treat '/:$/d' as a file name. > + > 2011-04-14 Stefano Lattarini <stefano.lattar...@gmail.com> > > maintainer check: quote literal `$' in Makefile rule > @@ -4475,7 +4481,7 @@ > > ----- > > -Copyright (C) 2010 Free Software Foundation, Inc. > +Copyright (C) 2010, 2011 Free Software Foundation, Inc. > > Copying and distribution of this file, with or without modification, are > permitted provided the copyright notice and this notice are preserved. > diff --git a/lib/depcomp b/lib/depcomp > index 6149451..9825d56 100755 > --- a/lib/depcomp > +++ b/lib/depcomp > @@ -1,7 +1,7 @@ > #! /bin/sh > # depcomp - compile a program generating dependencies as side-effects > > -scriptversion=2011-04-11-10; # UTC > +scriptversion=2011-04-16.09; # UTC > > # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, > # 2011 Free Software Foundation, Inc. > @@ -170,7 +170,7 @@ gcc) > ## to the object. Take care to not repeat it in the output. > ## Some versions of the HPUX 10.20 sed can't process this invocation > ## correctly. Breaking it into two sed invocations is a workaround. > - sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" '/:$/d' \ > + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ > | sed -e 's/$/ :/' >> "$depfile" > rm -f "$tmpdepfile" > ;; > -- > 1.7.5.rc1.228.g86d60b > > The patch is fine IMHO, I'll apply it in your name ASAP (adding a reference to this bug report). Thanks. > > ============================================== > GNU Automake 1.11a: tests/test-suite.log > ============================================== > > 8 of 1025 tests failed. (24 tests were not run). > > .. contents:: :depth: 2 > > FAIL: cond35.test (exit: 2) > =========================== > > ... [CUT] ... > > + ./configure > checking for a BSD-compatible install... /p/bin/install -c > checking whether build environment is sane... yes > checking for a thread-safe mkdir -p... /p/bin/mkdir -p > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking for gcc... gcc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking for style of include used by make... GNU > checking dependency style of gcc... gcc3 > checking for flex... flex > checking lex output file root... lex.yy > checking lex library... none needed > This seems like an autoconf bug: configure fails to determine the required flag to link in the lex library ... > checking whether yytext is a pointer... no > checking for bison... bison -y > checking that generated files are newer than configure... done > configure: creating ./config.status > config.status: creating Makefile > config.status: executing depfiles commands > + make > /bin/sh ./ylwrap tparse.y y.tab.c tparse.c y.tab.h tparse.h y.output > tparse.output -- bison -y -d > updating tparse.h > make all-am > > ... [CUT] ... > > gcc -g -O2 -o ta ta.o tscan.o tparse.o > tscan.o: In function `yylex': > /h/j/w/co/automake/tests/cond35.dir/tscan.c:805: undefined reference to > `yywrap' > collect2: ld returned 1 exit status > ... so we get this link error. Would you mind to report this bug to the autoconf mailing list? Or I'll do that eventually if you don't have time. > make[1]: *** [ta] Error 1 > make[1]: Leaving directory `/h/j/w/co/automake/tests/cond35.dir' > make: *** [all] Error 2 > + exit_status=2 > + set +e > + cd /h/j/w/co/automake/tests > + case $exit_status,$keep_testdirs in > + test 0 '!=' 0 > + echo 'cond35: exit 2' > cond35: exit 2 > + exit 2 > > FAIL: lex3.test (exit: 2) > FAIL: lexvpath.test (exit: 2) > FAIL: silent-lex-gcc.test (exit: 1) > FAIL: silent-lex-generic.test (exit: 1) > These tests fail for the same reason. > FAIL: self-check-cleanup.test (exit: 1) > ======================================= > > ... [CUT] ... > > + ls -l > total 84 > -rw-------. 1 meyering meyering 82 Apr 16 11:42 configure.in > Why this trailing dot in the permission string? > > -rw-------. 1 meyering meyering 18583 Apr 16 11:42 defs > -rw-------. 1 meyering meyering 5972 Apr 16 11:42 defs-static > -rwx------. 1 meyering meyering 20330 Apr 16 11:42 depcomp > d---------. 2 meyering meyering 4096 Apr 16 11:42 dir > ----------. 1 meyering meyering 0 Apr 16 11:42 file > lrwxrwxrwx. 1 meyering meyering 4 Apr 16 11:42 foo -> defs > -rwx------. 1 meyering meyering 13998 Apr 16 11:42 install-sh > -rwx------. 1 meyering meyering 11419 Apr 16 11:42 missing > + grep '^---------- .*file' > OK, spurious failure caused by the trailing dot in the permission string. I'll fix it by relaxing the regexp. > > + ls -l file > + exit_status=1 > + set +e > + cd /h/j/w/co/automake/tests > + case $exit_status,$keep_testdirs in > + test 0 '!=' 0 > + echo 'self-check-cleanup: exit 1' > self-check-cleanup: exit 1 > + exit 1 > > FAIL: self-check-dir.test (exit: 1) > =================================== > > + this=S_dir > + outcome=: > + pwd > /h/j/w/co/automake/tests > + rm -f S_dir.tmp > ++ pwd > + /bin/zsh -c ' > . ./defs || Exit 1 > : > S_dir.tmp > case `pwd` in '\''/h/j/w/co/automake/tests'\''/S_dir.dir);; *) Exit 1;; esac > ' S_dir.test > /h/j/w/co/automake/tests:/h/j/bin/perl:/h/j/bin:/p/p/git/bin:/p/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local:/usr/local/bin > +./defs:567> set -e > +./defs:569> pwd > /h/j/w/co/automake/tests/zsh.dir > +zsh:3> : > +zsh:4> pwd > +zsh:4> case /h/j/w/co/automake/tests/zsh.dir > (/h/j/w/co/automake/tests/S_dir.dir) > +zsh:4> case /h/j/w/co/automake/tests/zsh.dir (*) > +zsh:4> Exit 1 > +Exit:2> set +e > +Exit:3> exit 1 > +Exit:4> exit 1 > +zsh:4> exit_status=1 > +zsh:4> set +e > +zsh:4> cd /h/j/w/co/automake/tests > +zsh:4> case 1, (0,) > +zsh:4> test 0 '!=' 0 > +zsh:4> echo 'zsh: exit 1' > zsh: exit 1 > +zsh:4> exit 1 > + outcome=false > + test -f S_dir.tmp > + false > > FAIL: self-check-me.test (exit: 1) > ================================== > > + : /bin/zsh > + /bin/zsh -c '. ./defs && echo me=$me' foo-bar-.test > + grep '^me=foo-bar-$' > +./defs:567> set -e > +./defs:569> pwd > +zsh:1> echo 'me=zsh' > +zsh:1> exit_status=0 > +zsh:1> set +e > +zsh:1> cd /h/j/w/co/automake/tests > +zsh:1> case 0, (0,) > +zsh:1> find zsh.dir -type d ! -perm -700 -exec chmod u+rwx '{}' ';' > +zsh:1> rm -rf zsh.dir > +zsh:1> test 0 '!=' 0 > +zsh:1> echo 'zsh: exit 0' > +zsh:1> exit 0 > These failures are due to a known incompatibity in how Zsh handles $0. Anyway, currenty the automake testsuite does not support being run by Zsh, so these failures is not worth worrying about yet. Thanks, Stefano