From: Michael Brown Date: Wed, 30 Jul 2025 12:14:21 +0000 (+0100) Subject: [riscv] Place explicitly zero-initialised variables in the .data section X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a814c4605907f68db593344facbf2541c4beedc2;p=thirdparty%2Fipxe.git [riscv] Place explicitly zero-initialised variables in the .data section Variables in the .bss section cannot be relied upon to have zero values during early initialisation, before we have relocated ourselves to somewhere suitable in RAM and zeroed the .bss section. Place any explicitly zero-initialised variables in the .data section rather than in .bss, so that we can rely on their values even during this early initialisation stage. Signed-off-by: Michael Brown --- diff --git a/src/arch/riscv/Makefile.sbi b/src/arch/riscv/Makefile.sbi index d748ef42e..5e5dc9a6b 100644 --- a/src/arch/riscv/Makefile.sbi +++ b/src/arch/riscv/Makefile.sbi @@ -7,6 +7,13 @@ CFLAGS += -mcmodel=medany -fpie LDFLAGS += -pie --no-dynamic-linker -z combreloc +# Place explicitly zero-initialised variables in the .data section +# rather than in .bss, so that we can rely on their values even during +# parsing of the system memory map prior to relocation (and therefore +# prior to explicit zeroing of the .bss section). +# +CFLAGS += -fno-zero-initialized-in-bss + # Linker script # LDSCRIPT = arch/riscv/scripts/sbi.lds