diff mbox

fixdep: trivial: typo fix and correction

Message ID 1502198450-7374-1-git-send-email-caoj.fnst@cn.fujitsu.com (mailing list archive)
State New, archived
Headers show

Commit Message

Cao jin Aug. 8, 2017, 1:20 p.m. UTC
Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
---
 scripts/basic/fixdep.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Masahiro Yamada Aug. 9, 2017, 4:05 p.m. UTC | #1
2017-08-08 22:20 GMT+09:00 Cao jin <caoj.fnst@cn.fujitsu.com>:
> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>

Applied to linux-kbuild/fixes.  Thanks!
Cao jin Aug. 10, 2017, 1:50 p.m. UTC | #2
Hi Masahiro-san

On 08/10/2017 12:05 AM, Masahiro Yamada wrote:
> 2017-08-08 22:20 GMT+09:00 Cao jin <caoj.fnst@cn.fujitsu.com>:
>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
> 
> Applied to linux-kbuild/fixes.  Thanks!
> 

I want to ask a question via this thread.

I am tracing how each kernel source file compiled, and I met mounts-y in
init/Makefile, I have trouble in finding the rule which compile
$(mounts-y), but I clearly see the files in $(mounts-y) are compiled in
the output of `make -n vmlinux`, but the files listed in mounts-y are
not listed in obj-y. I think I must miss something, could you give some
hint?
Masahiro Yamada Aug. 11, 2017, 11:31 p.m. UTC | #3
Hi.

2017-08-10 22:50 GMT+09:00 Cao jin <caoj.fnst@cn.fujitsu.com>:
> Hi Masahiro-san
>
> On 08/10/2017 12:05 AM, Masahiro Yamada wrote:
>> 2017-08-08 22:20 GMT+09:00 Cao jin <caoj.fnst@cn.fujitsu.com>:
>>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
>>
>> Applied to linux-kbuild/fixes.  Thanks!
>>
>
> I want to ask a question via this thread.
>
> I am tracing how each kernel source file compiled, and I met mounts-y in
> init/Makefile, I have trouble in finding the rule which compile
> $(mounts-y), but I clearly see the files in $(mounts-y) are compiled in
> the output of `make -n vmlinux`, but the files listed in mounts-y are
> not listed in obj-y. I think I must miss something, could you give some
> hint?
>


The magic is the following line:

scripts/Makefile.lib  line 55

# if $(foo-objs) exists, foo.o is a composite object
multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip
$($(m:.o=-objs)) $($(m:.o=-y))), $(m))))


If foo.o is added to obj-y and foo-objs or foo-y exist,
they are also expanded.





If you see init/Makefile, mounts.o is added to obj-y.

obj-y                          := main.o version.o mounts.o
Cao jin Aug. 12, 2017, 10:49 a.m. UTC | #4
On 08/12/2017 07:31 AM, Masahiro Yamada wrote:
> Hi.
> 
> 2017-08-10 22:50 GMT+09:00 Cao jin <caoj.fnst@cn.fujitsu.com>:
>> Hi Masahiro-san
>>
>> On 08/10/2017 12:05 AM, Masahiro Yamada wrote:
>>> 2017-08-08 22:20 GMT+09:00 Cao jin <caoj.fnst@cn.fujitsu.com>:
>>>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
>>>
>>> Applied to linux-kbuild/fixes.  Thanks!
>>>
>>
>> I want to ask a question via this thread.
>>
>> I am tracing how each kernel source file compiled, and I met mounts-y in
>> init/Makefile, I have trouble in finding the rule which compile
>> $(mounts-y), but I clearly see the files in $(mounts-y) are compiled in
>> the output of `make -n vmlinux`, but the files listed in mounts-y are
>> not listed in obj-y. I think I must miss something, could you give some
>> hint?
>>
> 
> 
> The magic is the following line:
> 
> scripts/Makefile.lib  line 55
> 
> # if $(foo-objs) exists, foo.o is a composite object
> multi-used-y := $(sort $(foreach m,$(obj-y), $(if $(strip
> $($(m:.o=-objs)) $($(m:.o=-y))), $(m))))
> 
> 
> If foo.o is added to obj-y and foo-objs or foo-y exist,
> they are also expanded.
> 
> 
> 
> 
> 
> If you see init/Makefile, mounts.o is added to obj-y.
> 
> obj-y                          := main.o version.o mounts.o
> 
> 

Finally figured out how $(mounts-y) is compiled and how init/mounts.o is
linked, it is a bit complex than I expected, your hint really helps:)
Thanks you very much, Masahiro-san.
diff mbox

Patch

diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
index fff818b..bbf62cb 100644
--- a/scripts/basic/fixdep.c
+++ b/scripts/basic/fixdep.c
@@ -25,7 +25,7 @@ 
  *
  * So we play the same trick that "mkdep" played before. We replace
  * the dependency on autoconf.h by a dependency on every config
- * option which is mentioned in any of the listed prequisites.
+ * option which is mentioned in any of the listed prerequisites.
  *
  * kconfig populates a tree in include/config/ with an empty file
  * for each config symbol and when the configuration is updated
@@ -34,7 +34,7 @@ 
  * the config symbols are rebuilt.
  *
  * So if the user changes his CONFIG_HIS_DRIVER option, only the objects
- * which depend on "include/linux/config/his/driver.h" will be rebuilt,
+ * which depend on "include/config/his/driver.h" will be rebuilt,
  * so most likely only his driver ;-)
  *
  * The idea above dates, by the way, back to Michael E Chastain, AFAIK.
@@ -75,7 +75,7 @@ 
  * and then basically copies the .<target>.d file to stdout, in the
  * process filtering out the dependency on autoconf.h and adding
  * dependencies on include/config/my/option.h for every
- * CONFIG_MY_OPTION encountered in any of the prequisites.
+ * CONFIG_MY_OPTION encountered in any of the prerequisites.
  *
  * It will also filter out all the dependencies on *.ver. We need
  * to make sure that the generated version checksum are globally up