automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: automake 1.7.2b, tests/depcomp3.test and DJGPP


From: Alexandre Duret-Lutz
Subject: Re: automake 1.7.2b, tests/depcomp3.test and DJGPP
Date: Tue, 18 Feb 2003 21:59:42 +0100
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu)

>>> "Richard" == Richard Dawe <address@hidden> writes:

 Richard> Some of the tests fail, because they use DESTDIR.

Huh?  What's wrong with DESTDIR?

 Richard> On further examination of the depcomp3 failure, it
 Richard> appears the problem is that gcc 3.2.1 (3.x perhaps?)
 Richard> can generate multiple-line dependencies containing
 Richard> MS-DOS-style paths:

 Richard> bash-2.04$ gcc -M src/sub.c
 Richard> sub.o: src/sub.c c:/djgpp/lib/gcc-lib/djgpp/3.21/djgpp.ver \
 Richard>   c:/djgpp/include/sys/version.h src/foo.h

[...]

 Richard> bash-2.04$ cat src/.deps/sub.Po
 Richard> src/sub.o: src/sub.c c:/djgpp/lib/gcc-lib/djgpp/3.21/djgpp.ver \
 Richard> src/sub.o: /djgpp/include/sys/version.h src/foo.h
 Richard> src/sub.c :
 Richard> c:/djgpp/lib/gcc-lib/djgpp/3.21/djgpp.ver :
 Richard> /djgpp/include/sys/version.h :
 Richard> src/foo.h :

 Richard> One solution that seems to work is to join the lines
 Richard> together from the output of the
 Richard> compiler/pre-processor. 

Unfortunately this won't work with those compilers that output
dependencies as follow.

src/sub.o: src/sub.c
src/sub.o: src/sub.h

How about requiring the target to be at least two letters?  (Not
that I find this particularly cunning, but I can't think of
anything else right now.)

--- lib/depcomp 17 Feb 2003 14:55:22 -0000      1.35.2.5
+++ lib/depcomp 18 Feb 2003 20:37:13 -0000
@@ -315,7 +315,11 @@
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  "$@" $dashmflag | sed 's:^[^:]*\:[   ]*:'"$object"'\: :' > "$tmpdepfile"
+  # Require at least to characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*..[^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
   tr ' ' '

 Richard> Note that I did not run the test suite again, after
 Richard> applying the patch. The test suite takes 1-1.5 hours
 Richard> and maybe this isn't the right fix.

It take the same amount of time here.  Unfortunately.

As I can't afford a faster box (sight) I've learnt to run the 
testsuite with keywords: 
  make TESTS="`grep -l dashmstdout *.test | tr '\n' ' '`" check

(Only two tests, depcomp3.test and pr307.test, exercize dashmstdout.)
-- 
Alexandre Duret-Lutz





reply via email to

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