summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivian Wang <[email protected]>2023-09-18 01:52:49 +0800
committerAnup Patel <[email protected]>2023-10-06 09:21:21 +0530
commitde525ac18dc32bafc64e78893f343afdd6003028 (patch)
tree13663a64c8c7237d9d0ecd621d98d1959d1885fa
parent3669153e06cbae66da28b685c29c8e622d547263 (diff)
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 <[email protected]> Reviewed-by: Anup Patel <[email protected]>
-rw-r--r--firmware/fw_base.ldS1
1 files changed, 0 insertions, 1 deletions
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 = .);
}