powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected
authorNicholas Piggin <npiggin@gmail.com>
Wed, 9 May 2018 13:00:01 +0000 (23:00 +1000)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 17 May 2018 13:45:01 +0000 (22:45 +0900)
commit4c1d9bb0b5d3c0b3468ac8e68a05972eb957630f
tree7429c088567c6a097c999ac0ee896b4e1e55f545
parent5d20ee3192a58750ef8cc24b21aad23a82689be0
powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected

This requires further changes to linker script to KEEP some tables
and wildcard compiler generated sections into the right place. This
includes pp32 modifications from Christophe Leroy.

When compiling powernv_defconfig with this option, the resulting
kernel is almost 400kB smaller (and still boots):

    text      data       bss        dec   filename
11827621   4810490   1341080   17979191   vmlinux
11752437   4598858   1338776   17690071   vmlinux.dcde

Mathieu's numbers for custom Mac Mini G4 config has almost 200kB
saving. It also had some increase in vmlinux size for as-yet
unknown reasons.

    text      data       bss        dec   filename
 7461457   2475122   1428064   11364643   vmlinux
 7386425   2364370   1425432   11176227   vmlinux.dcde

Tested-by: Christophe Leroy <christophe.leroy@c-s.fr> [8xx]
Tested-by: Mathieu Malaterre <malat@debian.org> [32-bit powermac]
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
arch/powerpc/Kconfig
arch/powerpc/kernel/vmlinux.lds.S