Re: kbuild: prevent make from deleting _shipped files

From: Arnaud Lacombe
Date: Sun Jul 31 2011 - 14:37:46 EST


Hi,

On Sun, Jul 31, 2011 at 1:37 PM, Peter Foley <pefoley2@xxxxxxxxxxx> wrote:
> On Sun, 31 Jul 2011, Arnaud Lacombe wrote:
>
>> Hi,
>>
>> On Sun, Jul 31, 2011 at 1:08 PM, Peter Foley <pefoley2@xxxxxxxxxxx> wrote:
>> > On Sun, 31 Jul 2011, Arnaud Lacombe wrote:
>> >
>> >> Hi,
>> >>
>> >> On Sun, Jul 31, 2011 at 12:21 PM, Arnaud Lacombe <lacombar@xxxxxxxxx> wrote:
>> >> > Hi,
>> >> >
>> >> > On Sun, Jul 31, 2011 at 11:37 AM, Peter Foley <pefoley2@xxxxxxxxxxx> wrote:
>> >> >> commit 7373f4f (kbuild: add implicit rules for parser generation)
>> >> >> created a implicit rule chain (%.c: %.c_shipped: %.y). This causes make to delete the _shipped files
>> >> >> because it considers them intermediate files. Mark the _shipped files PRECIOUS
>> >> >> to prevent make from deleting them.
>> >> >>
>> >> >> Signed-off-by: Peter Foley <pefoley2@xxxxxxxxxxx>
>> >> > What make are you using, and what command triggers the issue ?
>> >> >
>> >> > Those rules should only be visible on parser regeneration (ie.
>> >> > REGENERATE_PARSERS defined). make 3.82 does not seem to trigger the
>> >> > issue:
>> >> >
>> >> > % make -v
>> >> > GNU Make 3.82
>> >> >
>> >> > % make REGENERATE_PARSERS=y defconfig
>> >> >  HOSTCC  scripts/basic/fixdep
>> >> >  HOSTCC  scripts/kconfig/conf.o
>> >> >  SHIPPED scripts/kconfig/zconf.tab.c
>> >> >  SHIPPED scripts/kconfig/zconf.lex.c
>> >> >  SHIPPED scripts/kconfig/zconf.hash.c
>> >> >  HOSTCC  scripts/kconfig/zconf.tab.o
>> >> >  HOSTLD  scripts/kconfig/conf
>> >> > *** Default configuration is based on 'x86_64_defconfig'
>> >> > [...]
>> >> >
>> >> > The shipped file are still there:
>> >> >
>> >> > % ls scripts/kconfig/*_shipped
>> >> > scripts/kconfig/zconf.hash.c_shipped
>> >> > scripts/kconfig/zconf.lex.c_shipped
>> >> > scripts/kconfig/zconf.tab.c_shipped
>> >> >
>> >> a bare make-3.81 from ftp.gnu.org built on a Fedora 14 behave the same.
>> >>
>> >> I definitively needs enlightenment on this one :)
>> >>
>> >> Thanks,
>> >>  - Arnaud
>> >
>> > The problem only appears when the parsers are actually rebuilt.
>> > rm scripts/kconfig/*_shipped
>> ^^^^^
>>
>> This is why. You do not (or at least no longer) need to remove the
>> *_shipped files before regenerating them.
>>
>>  - Arnaud
>
> Ok, I deleted the _shipped files as a easy way to force regeneration but
> touching the source files works just as well.
> Please disregard this patch.
>
I think it is still valuable, especially when _shipped files are
created, we want make to keep them. Could you update the changelog to
mention in which case this is happening and re-send ?

Thanks,
- Arnaud
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/