Re: [PATCH] fixdep: trivial: typo fix and correction
From: Cao jin
Date: Sat Aug 12 2017 - 06:57:07 EST
On 08/12/2017 07:31 AM, Masahiro Yamada wrote:
> Hi.
>
> 2017-08-10 22:50 GMT+09:00 Cao jin <caoj.fnst@xxxxxxxxxxxxxx>:
>> 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@xxxxxxxxxxxxxx>:
>>>> Signed-off-by: Cao jin <caoj.fnst@xxxxxxxxxxxxxx>
>>>
>>> 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.
--
Sincerely,
Cao jin