diff options
author | Masahiro Yamada <masahiroy@kernel.org> | 2024-09-23 09:56:03 +0200 |
---|---|---|
committer | Masahiro Yamada <masahiroy@kernel.org> | 2024-11-04 09:53:09 +0100 |
commit | 654102df2ac2a0d02a416100c3d44ff1dae932ca (patch) | |
tree | 0bb8e0884e86c75ca24de2d4cf03e533f572cf29 /samples/vfs | |
parent | kbuild: check the presence of include/generated/rustc_cfg (diff) | |
download | linux-654102df2ac2a0d02a416100c3d44ff1dae932ca.tar.xz linux-654102df2ac2a0d02a416100c3d44ff1dae932ca.zip |
kbuild: add generic support for built-in boot DTBs
Some architectures embed boot DTBs in vmlinux. A potential issue for
these architectures is a race condition during parallel builds because
Kbuild descends into arch/*/boot/dts/ twice.
One build thread is initiated by the 'dtbs' target, which is a
prerequisite of the 'all' target in the top-level Makefile:
ifdef CONFIG_OF_EARLY_FLATTREE
all: dtbs
endif
For architectures that support the built-in boot dtb, arch/*/boot/dts/
is visited also during the ordinary directory traversal in order to
build obj-y objects that wrap DTBs.
Since these build threads are unaware of each other, they can run
simultaneously during parallel builds.
This commit introduces a generic build rule to scripts/Makefile.vmlinux
to support embedded boot DTBs in a race-free way. Architectures that
want to use this rule need to select CONFIG_GENERIC_BUILTIN_DTB.
After the migration, Makefiles under arch/*/boot/dts/ will be visited
only once to build only *.dtb files.
This change also aims to unify the CONFIG options used for built-in DTBs
support. Currently, different architectures use different CONFIG options
for the same purposes.
With this commit, the CONFIG options will be unified as follows:
- CONFIG_GENERIC_BUILTIN_DTB
This enables the generic rule for built-in boot DTBs. This will be
renamed to CONFIG_BUILTIN_DTB after all architectures migrate to the
generic rule.
- CONFIG_BUILTIN_DTB_NAME
This specifies the path to the embedded DTB.
(relative to arch/*/boot/dts/)
- CONFIG_BUILTIN_DTB_ALL
If this is enabled, all DTB files compiled under arch/*/boot/dts/ are
embedded into vmlinux. Only used by MIPS.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'samples/vfs')
0 files changed, 0 insertions, 0 deletions