diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-11-07 17:31:46 +0100 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-11-18 03:38:58 +0100 |
commit | f7adc3124da019878186f1ebe98a13a1af041afd (patch) | |
tree | 5519de53ba24c13fd6591efb49b861756178238c /samples | |
parent | kbuild: /bin/pwd -> pwd (diff) | |
download | linux-f7adc3124da019878186f1ebe98a13a1af041afd.tar.xz linux-f7adc3124da019878186f1ebe98a13a1af041afd.zip |
kbuild: create built-in.o automatically if parent directory wants it
"obj-y += foo/" syntax requires Kbuild to visit the "foo" subdirectory
and link built-in.o from that directory. This means foo/Makefile is
responsible for creating built-in.o even if there is no object to
link (in this case, built-in.o is an empty archive).
We have had several fixups like commit 4b024242e8a4 ("kbuild: Fix
linking error built-in.o no such file or directory"), then ended up
with a complex condition as follows:
ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),)
builtin-target := $(obj)/built-in.o
endif
We still have more cases not covered by the above, so we need to add
obj- := dummy.o
in several places just for creating empty built-in.o.
A key point is, the parent Makefile knows whether built-in.o is needed
or not. If a subdirectory needs to create built-in.o, its parent can
tell the fact when descending.
If non-empty $(need-builtin) flag is passed from the parent, built-in.o
should be created. $(obj-y) should be still checked to support the
single target "%/". All of ugly tricks will go away.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'samples')
0 files changed, 0 insertions, 0 deletions