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 -- Best Regards Masahiro Yamada -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html