From: Sam Ravnborg <sam@ravnborg.org>
To: Chris Wright <chrisw@osdl.org>
Cc: Sam Ravnborg <sam@ravnborg.org>, linux-kernel@vger.kernel.org
Subject: Re: kbuild will remove .c files
Date: Wed, 3 Mar 2004 22:07:15 +0100 [thread overview]
Message-ID: <20040303210715.GA2229@mars.ravnborg.org> (raw)
In-Reply-To: <20040303123406.G21045@build.pdx.osdl.net>
On Wed, Mar 03, 2004 at 12:34:06PM -0800, Chris Wright wrote:
> I added a new config to my kernel, and hadn't done a bk -r get in quite
> a while. Turns out the subdir relevant to the config item hits the make
> builtin to get the file (since it had been missing), but then kbuild
> assembles, links, links, and finally removes the .c file. This will
> be done everytime, since the .c file is now gone. While a preemptive
> bk -r get is the obvious solution here (or even a after the fact bk get
> $missing.c), is this a possible very small buglet in kbuild?
>
> Here's some relevant output:
>
> get net/irda/irlan/SCCS/s.irlan_client.c
> net/irda/irlan/irlan_client.c 1.8: 565 lines
> CC net/irda/irlan/irlan_client.s
> as -o net/irda/irlan/irlan_client.o net/irda/irlan/irlan_client.s
> LD net/irda/irlan/irlan.o
> LD net/irda/irlan/built-in.o
> rm net/irda/irlan/irlan_client.c
What happens here is that make resort to a chained rule to create the
irlan.o file.
The chain goes from SCCS/%.c -> %.c -> %.s -> %.o
The two files %.c and %.s is considered intermidiate files, and make
guarantees that intermidiate files that did not exist when
make was called, does not exists when make exists.
This is reported by make with the "rm ..." line.
See info make -> Implicit rules - > Chained rules
The reason why you see this is that there is no implicit rule from SCCS/%.c -> %.c
wich is because kbuild does not 'know' of SCCS/* - but make uses some build-in
rule for this.
Two questions pops up though.
First my make documentatin say the make would use "rm -f ...",not "rm".
What make version do you use?
Also I would expect to see irlan_client.s to be deleted also - did you miss that?
It may show up a bit later.
Sam
next prev parent reply other threads:[~2004-03-03 21:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-03 20:34 kbuild will remove .c files Chris Wright
2004-03-03 21:07 ` Sam Ravnborg [this message]
2004-03-03 21:38 ` Chris Wright
[not found] <1vLk4-6uK-23@gated-at.bofh.it>
[not found] ` <1vLWC-7h0-1@gated-at.bofh.it>
2004-03-03 22:35 ` Pascal Schmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040303210715.GA2229@mars.ravnborg.org \
--to=sam@ravnborg.org \
--cc=chrisw@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.