[PATCH] RISC-V: create new frag after alignment.
Lifang Xia
lifang_xia@c-sky.com
Thu Jan 20 06:26:18 GMT 2022
From: Lifang Xia <lifang_xia@linux.alibaba.com>
PR 28793:
The alignment may be removed in linker. We need to create new frag after
alignment to prevent the assembler from computing static offsets.
gas/
* config/tc-riscv.c (riscv_frag_align_code): Create new frag.
---
gas/config/tc-riscv.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 390aaf1710b..25908597436 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -3913,6 +3913,12 @@ riscv_frag_align_code (int n)
riscv_mapping_state (MAP_INSN, worst_case_bytes);
+ /* We need to start a new frag after the alignment which may be removed by
+ the linker, to prevent the assembler from computing static offsets.
+ This is necessary to get correct EH info. */
+ frag_wane (frag_now);
+ frag_new (0);
+
return true;
}
--
2.17.1
More information about the Binutils
mailing list