From de525ac18dc32bafc64e78893f343afdd6003028 Mon Sep 17 00:00:00 2001 From: Vivian Wang Date: Mon, 18 Sep 2023 01:52:49 +0800 Subject: [PATCH] firmware: Remove ALIGN in .rela.dyn in linker script The .rela.dyn section should be exactly the size of the relocations, without padding. On RV64, .rela* sections are already aligned and there's no need for padding. On RV32, this adds padding up to 4 bytes, which, if present, confuses the relocation loop into processing an extra entry past the end of .rela*, and it crashes with an invalid memory access. Fixes: 0f20e8adcf42 ("firmware: Support position independent execution") Signed-off-by: Vivian Wang Reviewed-by: Anup Patel --- firmware/fw_base.ldS | 1 - 1 file changed, 1 deletion(-) diff --git a/firmware/fw_base.ldS b/firmware/fw_base.ldS index 3d68484b..88b8dfd9 100644 --- a/firmware/fw_base.ldS +++ b/firmware/fw_base.ldS @@ -49,7 +49,6 @@ .rela.dyn : { PROVIDE(__rel_dyn_start = .); *(.rela*) - . = ALIGN(8); PROVIDE(__rel_dyn_end = .); }