]> git.baikalelectronics.ru Git - kernel.git/commit
kbuild: Hoist '--orphan-handling' into Kconfig
authorNathan Chancellor <natechancellor@gmail.com>
Thu, 19 Nov 2020 20:46:56 +0000 (13:46 -0700)
committerMasahiro Yamada <masahiroy@kernel.org>
Tue, 1 Dec 2020 13:45:36 +0000 (22:45 +0900)
commit5543d4691f204bff4ac9554583a2da3639c347b0
tree27ef4914a69c9bc3cd88fab6d3a6f6c10d5d91d0
parente0cefb2767edf8adc6e4d970cb666c212daf9532
kbuild: Hoist '--orphan-handling' into Kconfig

Currently, '--orphan-handling=warn' is spread out across four different
architectures in their respective Makefiles, which makes it a little
unruly to deal with in case it needs to be disabled for a specific
linker version (in this case, ld.lld 10.0.1).

To make it easier to control this, hoist this warning into Kconfig and
the main Makefile so that disabling it is simpler, as the warning will
only be enabled in a couple places (main Makefile and a couple of
compressed boot folders that blow away LDFLAGS_vmlinx) and making it
conditional is easier due to Kconfig syntax. One small additional
benefit of this is saving a call to ld-option on incremental builds
because we will have already evaluated it for CONFIG_LD_ORPHAN_WARN.

To keep the list of supported architectures the same, introduce
CONFIG_ARCH_WANT_LD_ORPHAN_WARN, which an architecture can select to
gain this automatically after all of the sections are specified and size
asserted. A special thanks to Kees Cook for the help text on this
config.

Link: https://github.com/ClangBuiltLinux/linux/issues/1187
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
13 files changed:
Makefile
arch/Kconfig
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/boot/compressed/Makefile
arch/arm64/Kconfig
arch/arm64/Makefile
arch/powerpc/Kconfig
arch/powerpc/Makefile
arch/x86/Kconfig
arch/x86/Makefile
arch/x86/boot/compressed/Makefile
init/Kconfig