diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2018-03-05 22:34:03 +0100 |
---|---|---|
committer | Nicolas Pitre <nicolas.pitre@linaro.org> | 2018-03-10 02:19:35 +0100 |
commit | ab42fad00953301c0d25d71340bf194868bd3df9 (patch) | |
tree | 46f891ac455c7ef04014011fde34a509af6c400f /arch/arm/kernel/vmlinux.lds.h | |
parent | ARM: linker script: factor out some common definitions between XIP and non-XIP (diff) | |
download | linux-ab42fad00953301c0d25d71340bf194868bd3df9.tar.xz linux-ab42fad00953301c0d25d71340bf194868bd3df9.zip |
ARM: linker script: factor out stuff for the DISCARD section
Move common entries to vmlinux.lds.h and leave XIP and non-XIP entries
in their respective file. The ARM_NOMMU_KEEP() and ARM_NOMMU_DISCARD()
macros are added to be usable within the definition of ARM_DISCARD macro.
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Tested-by: Chris Brandt <Chris.Brandt@renesas.com>
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.h')
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.h b/arch/arm/kernel/vmlinux.lds.h index 0a86e8a1119e..1258b66487b2 100644 --- a/arch/arm/kernel/vmlinux.lds.h +++ b/arch/arm/kernel/vmlinux.lds.h @@ -17,6 +17,14 @@ #define ARM_EXIT_DISCARD(x) x #endif +#ifdef CONFIG_MMU +#define ARM_MMU_KEEP(x) x +#define ARM_MMU_DISCARD(x) +#else +#define ARM_MMU_KEEP(x) +#define ARM_MMU_DISCARD(x) x +#endif + #define PROC_INFO \ . = ALIGN(4); \ VMLINUX_SYMBOL(__proc_info_begin) = .; \ @@ -38,3 +46,15 @@ *(.hyp.idmap.text) \ VMLINUX_SYMBOL(__hyp_idmap_text_end) = .; +#define ARM_DISCARD \ + *(.ARM.exidx.exit.text) \ + *(.ARM.extab.exit.text) \ + ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text)) \ + ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text)) \ + ARM_EXIT_DISCARD(EXIT_TEXT) \ + ARM_EXIT_DISCARD(EXIT_DATA) \ + EXIT_CALL \ + ARM_MMU_DISCARD(*(.text.fixup)) \ + ARM_MMU_DISCARD(*(__ex_table)) \ + *(.discard) \ + *(.discard.*) |