[PATCH 1/3] firmware: Remove ALIGN in .rela.dyn in linker script
Vivian Wang
dramforever at live.com
Sun Sep 17 10:52:49 PDT 2023
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 <dramforever at live.com>
---
firmware/fw_base.ldS | 1 -
1 file changed, 1 deletion(-)
diff --git a/firmware/fw_base.ldS b/firmware/fw_base.ldS
index 3d68484..88b8dfd 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 = .);
}
--
2.41.0
More information about the opensbi
mailing list