[PATCH 19/24] alpha: discard .eh_frame and the relocation sections
From: Matt Turner
Date: Tue Sep 01 2026 - 12:17:19 EST
gcc emits .eh_frame for Alpha even though the kernel builds with
-fno-asynchronous-unwind-tables, and nothing in the kernel consumes it:
the stack trace code scans the stack for text addresses rather than
unwinding DWARF. It was allocated in the loaded image, so dropping it
shrinks vmlinux by about 1.1MB for a Marvel SMP configuration.
The .rela* sections are equally useless, as the kernel image is not
relocatable. The linker was already dropping their contents.
Both were being placed as orphan sections, which is what drew attention
to them.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Matt Turner <mattst88@xxxxxxxxx>
---
arch/alpha/kernel/vmlinux.lds.S | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git ./arch/alpha/kernel/vmlinux.lds.S ./arch/alpha/kernel/vmlinux.lds.S
index 95704e64b6a6..c44941d3b874 100644
--- ./arch/alpha/kernel/vmlinux.lds.S
+++ ./arch/alpha/kernel/vmlinux.lds.S
@@ -76,5 +76,16 @@ SECTIONS
MODINFO
ELF_DETAILS
+ /*
+ * gcc emits .eh_frame for Alpha even with
+ * -fno-asynchronous-unwind-tables, and the kernel has no DWARF
+ * unwinder to consume it. The relocation sections are likewise
+ * useless as the kernel image is not relocatable.
+ */
+ /DISCARD/ : {
+ *(.eh_frame)
+ *(.rela .rela*)
+ }
+
DISCARDS
}
--
2.54.0