GNU bug report logs - #14501
dependency generation FAIL in t/subobj11a.sh

Previous Next

Package: automake;

Reported by: Peter Rosin <peda <at> lysator.liu.se>

Date: Wed, 29 May 2013 07:44:01 UTC

Severity: minor

Tags: patch

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 14501 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Peter Rosin <peda <at> lysator.liu.se>
Cc: 14501 <at> debbugs.gnu.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>
Subject: Re: bug#14501: dependency generation FAIL in t/subobj11a.sh
Date: Thu, 30 May 2013 10:44:29 +0200
On 05/30/2013 09:28 AM, Peter Rosin wrote:
> On 2013-05-29 11:23, Stefano Lattarini wrote:
>> On 05/29/2013 09:48 AM, Peter Rosin wrote:
>>> On 2013-05-29 09:41, Peter Rosin wrote:
>>>> Hi!
>>>>
>>>> On Automake master (baf8a1c22acce0908), t/subobj11a.sh fails
>>>> on MSYS/MSVC (depmode=msvc7msys), like this:
>>>>
>>>> + make quux
>>>> src/.deps/foo.Po:1: *** target pattern contains no `%'.  Stop.
>>>>
>>>>
>>>> It appears that the generated foo.Po is broken. Adding a
>>>> 	cat "$depdir"/foo.Po
>>>> just before the $MAKE quux invocation reveals that the originally
>>>> generated foo.Po has this single line content:
>>>>
>>>> src/foo.obj : \
>>>>
>>>> Notice the trailing backslash.
>>>>
>> And I assume this, by itself, doesn't cause any problem to make,
>> correct?
> 
> Not that I have seen, no.  But it feels fishy all the same.
> 
>>>> When the testcase then adds a
>>>> line of its own, the trailing backslash makes it blow up.
>>>
>>> I forgot to mention that adding an empty line before the other
>>> added line, e.g. with
>>>
>>> echo >> "$depdir"/foo.Po
>>>
>>> works around the problem and makes the test pass.
>>>
>> I think we should go this way, yes.  After all, albeit the trailing
>> '\' in the .Po file looks strange, it's not causing any problem in
>> practice, and it's only our hacky editing of said .Po that is
>> triggering the failure.  So let's fix this editing and live happy.
>>
>> Any patch that does so (and adds brief a comment explaining why we
>> need the extra 'echo') can be considered pre-approved.
> 
> So, I think the below is a better fix.  Ok for micro?
> 
> Cheers,
> Peter
> 
> 
> 
> From 2131bd330a167d37274ee9b179d3885e090d0839 Mon Sep 17 00:00:00 2001
> From: Peter Rosin <peda <at> lysator.liu.se>
> Date: Thu, 30 May 2013 09:26:45 +0200
> Subject: [PATCH] depcomp: make sure the depfile ends nicely for depmode=msvc7
>
Or even "depcmp: avoid trailing backslash in depfile for depmode=msvc7",
maybe?

> When compiling a file without any dependencies (no #includes), the
> msvc7 depmode (and consequently msvc7msys) generates a depfile
> Makefile fragment with the last line ending with a backslash. This
> is less robust than needed.
> 
> Fixes automake bug#14501.
> 
> * lib/depcomp (msvc7): Finish off the depfile Makefile fragment with
> an empty line.
> (scriptversion): Update.
> 
> Signed-off-by: Peter Rosin <peda <at> lysator.liu.se>
> ---
>  lib/depcomp |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/lib/depcomp b/lib/depcomp
> index 06b0882..4ebd5b3 100755
> --- a/lib/depcomp
> +++ b/lib/depcomp
> @@ -1,7 +1,7 @@
>  #! /bin/sh
>  # depcomp - compile a program generating dependencies as side-effects
>  
> -scriptversion=2012-10-18.11; # UTC
> +scriptversion=2013-05-30.07; # UTC
>  
>  # Copyright (C) 1999-2013 Free Software Foundation, Inc.
>  
> @@ -552,6 +552,7 @@ $ {
>    G
>    p
>  }' >> "$depfile"
> +  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
>    rm -f "$tmpdepfile"
>    ;;
>  
ACK, with either your original subject line or with the one I suggested
(as you prefer).

Thanks,
  Stefano




This bug report was last modified 12 years and 73 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.