]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
arm: Discard unwanted sections in linker script
authorSam Edwards <cfsworks@gmail.com>
Sat, 15 Mar 2025 22:18:03 +0000 (15:18 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 2 Apr 2025 20:33:50 +0000 (14:33 -0600)
There are a handful of sections that are not useful in the U-Boot output
binary. At present, the linker script moves these to the end of the
binary, after the _image_binary_end marker symbol, so that they don't
get loaded.

The linker script syntax supports discarding sections that shouldn't be
included in the output. Switch to this instead, to make the intention
clearer and reduce the ELF sections that have to be handled later in the
build. This is also consistent with the other architectures' linker
scripts.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
arch/arm/cpu/u-boot.lds

index 63e82a09fad5d2bab779118bada9890e4a2febe2..817e7a983ae624c4a0ec31daaea757d1351ad191 100644 (file)
@@ -181,14 +181,14 @@ SECTIONS
                __bss_end = .;
        }
 
-       .dynsym _image_binary_end : { *(.dynsym) }
-       .dynbss : { *(.dynbss) }
-       .dynstr : { *(.dynstr*) }
-       .dynamic : { *(.dynamic*) }
-       .plt : { *(.plt*) }
-       .interp : { *(.interp*) }
-       .gnu.hash : { *(.gnu.hash) }
-       .gnu : { *(.gnu*) }
-       .ARM.exidx : { *(.ARM.exidx*) }
-       .gnu.linkonce.armexidx : { *(.gnu.linkonce.armexidx.*) }
+       /DISCARD/ : { *(.dynsym) }
+       /DISCARD/ : { *(.dynbss) }
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu.hash) }
+       /DISCARD/ : { *(.gnu*) }
+       /DISCARD/ : { *(.ARM.exidx*) }
+       /DISCARD/ : { *(.gnu.linkonce.armexidx.*) }
 }