diff options
Diffstat (limited to 'scripts/module-lto.lds')
-rw-r--r-- | scripts/module-lto.lds | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/module-lto.lds b/scripts/module-lto.lds new file mode 100644 index 000000000000..f5ee544a877d --- /dev/null +++ b/scripts/module-lto.lds @@ -0,0 +1,22 @@ +/* + * With CONFIG_LTO_CLANG, LLD always enables -fdata-sections and + * -ffunction-sections, which increases the size of the final module. + * Merge the split sections in the final binary. + */ +SECTIONS { + /* + * LLVM may emit .eh_frame with CONFIG_CFI_CLANG despite + * -fno-asynchronous-unwind-tables. Discard the section. + */ + /DISCARD/ : { + *(.eh_frame) + } + + .bss : { *(.bss .bss[.0-9a-zA-Z_]*) } + .data : { *(.data .data[.0-9a-zA-Z_]*) } + .rela.data : { *(.rela.data .rela.data[.0-9a-zA-Z_]*) } + .rela.rodata : { *(.rela.rodata .rela.rodata[.0-9a-zA-Z_]*) } + .rela.text : { *(.rela.text .rela.text[.0-9a-zA-Z_]*) } + .rodata : { *(.rodata .rodata[.0-9a-zA-Z_]*) } + .text : { *(.text .text[.0-9a-zA-Z_]*) } +} |