2017-08-10 22:50 GMT+09:00 Cao jin <caoj.f...@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.f...@cn.fujitsu.com>:
>>> Signed-off-by: Cao jin <caoj.f...@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
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