Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d20ee31 authored by Nicholas Piggin's avatar Nicholas Piggin Committed by Masahiro Yamada
Browse files

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: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent 6ca8d943
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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