]> git.baikalelectronics.ru Git - kernel.git/commit
kbuild: allow archs to select link dead code/data elimination
authorNicholas Piggin <npiggin@gmail.com>
Wed, 24 Aug 2016 12:29:20 +0000 (22:29 +1000)
committerMichal Marek <mmarek@suse.com>
Fri, 9 Sep 2016 08:47:00 +0000 (10:47 +0200)
commit8a49cc01f3250722858789dbdfa87bad667a379a
tree59cfd4ebc0ea13e799b9e4393740591f9e16985d
parentfe9f59870cd44a9980689cd3cbda7b0515543206
kbuild: allow archs to select link dead code/data elimination

Introduce LD_DEAD_CODE_DATA_ELIMINATION option for architectures to
select to build with -ffunction-sections, -fdata-sections, and link
with --gc-sections. It requires some work (documented) to ensure all
unreferenced entrypoints are live, and requires toolchain and build
verification, so it is made a per-arch option for now.

On a random powerpc64le build, this yelds a significant size saving,
it boots and runs fine, but there is a lot I haven't tested as yet, so
these savings may be reduced if there are bugs in the link.

    text      data        bss        dec   filename
11169741   1180744    1923176 14273661   vmlinux
10445269   1004127    1919707 13369103   vmlinux.dce

~700K text, ~170K data, 6% removed from kernel image size.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Makefile
arch/Kconfig
include/asm-generic/vmlinux.lds.h
include/linux/compiler.h
include/linux/export.h
include/linux/init.h
init/Makefile