[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#14501: dependency generation FAIL in t/subobj11a.sh
From: |
Stefano Lattarini |
Subject: |
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 <address@hidden>
> 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 <address@hidden>
> ---
> 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