Avoid allocating and loading the BSS section. $ aarch64-linux-gnu-objdump -Sh u-boot
Before: 10 .bss_start 00000000 00000000000f21d8 00000000000f21d8 001021d8 2**0 CONTENTS, ALLOC, LOAD, DATA 11 .bss 000068f8 00000000000f2200 00000000000f2200 001021d8 2**6 ALLOC 12 .bss_end 00000000 00000000000f8af8 00000000000f8af8 00108af8 2**0 CONTENTS, ALLOC, LOAD, DATA After: 10 .bss_start 00000000 00000000000bf990 00000000000bf990 001021e0 2**0 CONTENTS 11 .bss 000068e8 00000000000bf990 00000000000bf990 001021e0 2**4 CONTENTS 12 .bss_end 00000000 00000000000c6278 00000000000c6278 00108ac8 2**0 CONTENTS Signed-off-by: Marek Vasut <marek.vasut+rene...@mailbox.org> --- Cc: Simon Glass <s...@chromium.org> Cc: Tom Rini <tr...@konsulko.com> --- V2: Replicate arch/arm/cpu/u-boot.lds BSS part verbatim --- arch/arm/cpu/armv8/u-boot.lds | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/arm/cpu/armv8/u-boot.lds b/arch/arm/cpu/armv8/u-boot.lds index fb6a30c922f..ebdc079552d 100644 --- a/arch/arm/cpu/armv8/u-boot.lds +++ b/arch/arm/cpu/armv8/u-boot.lds @@ -151,16 +151,18 @@ SECTIONS . = ALIGN(8); - .bss_start : { + .bss_start __rel_dyn_start (OVERLAY) : { KEEP(*(.__bss_start)); + __bss_base = .; } - .bss : { + .bss __bss_base (OVERLAY) : { *(.bss*) . = ALIGN(8); + __bss_limit = .; } - .bss_end : { + .bss_end __bss_limit (OVERLAY) : { KEEP(*(.__bss_end)); } -- 2.43.0