kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selectable if enabled
Architectures that are capable can select HAVE_LD_DEAD_CODE_DATA_ELIMINATION to enable selection of that option (as an EXPERT kernel option). Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
6ca8d9433d
commit
5d20ee3192
15
arch/Kconfig
15
arch/Kconfig
|
@ -596,21 +596,6 @@ config CC_STACKPROTECTOR_AUTO
|
|||
|
||||
endchoice
|
||||
|
||||
config LD_DEAD_CODE_DATA_ELIMINATION
|
||||
bool
|
||||
help
|
||||
Select this if the architecture wants to do dead code and
|
||||
data elimination with the linker by compiling with
|
||||
-ffunction-sections -fdata-sections and linking with
|
||||
--gc-sections.
|
||||
|
||||
This requires that the arch annotates or otherwise protects
|
||||
its external entry points from being discarded. Linker scripts
|
||||
must also merge .text.*, .data.*, and .bss.* correctly into
|
||||
output sections. Care must be taken not to pull in unrelated
|
||||
sections (e.g., '.text.init'). Typically '.' in section names
|
||||
is used to distinguish them from label names / C identifiers.
|
||||
|
||||
config HAVE_ARCH_WITHIN_STACK_FRAMES
|
||||
bool
|
||||
help
|
||||
|
|
27
init/Kconfig
27
init/Kconfig
|
@ -1038,6 +1038,33 @@ config CC_OPTIMIZE_FOR_SIZE
|
|||
|
||||
endchoice
|
||||
|
||||
config HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
bool
|
||||
help
|
||||
This requires that the arch annotates or otherwise protects
|
||||
its external entry points from being discarded. Linker scripts
|
||||
must also merge .text.*, .data.*, and .bss.* correctly into
|
||||
output sections. Care must be taken not to pull in unrelated
|
||||
sections (e.g., '.text.init'). Typically '.' in section names
|
||||
is used to distinguish them from label names / C identifiers.
|
||||
|
||||
config LD_DEAD_CODE_DATA_ELIMINATION
|
||||
bool "Dead code and data elimination (EXPERIMENTAL)"
|
||||
depends on HAVE_LD_DEAD_CODE_DATA_ELIMINATION
|
||||
depends on EXPERT
|
||||
help
|
||||
Select this if the architecture wants to do dead code and
|
||||
data elimination with the linker by compiling with
|
||||
-ffunction-sections -fdata-sections, and linking with
|
||||
--gc-sections.
|
||||
|
||||
This can reduce on disk and in-memory size of the kernel
|
||||
code and static data, particularly for small configs and
|
||||
on small systems. This has the possibility of introducing
|
||||
silently broken kernel if the required annotations are not
|
||||
present. This option is not well tested yet, so use at your
|
||||
own risk.
|
||||
|
||||
config SYSCTL
|
||||
bool
|
||||
|
||||
|
|
Loading…
Reference in a new issue