fw_base: Put data in .data rather than .text
authorJessica Clarke <jrtc27@jrtc27.com>
Sun, 11 Jul 2021 02:28:20 +0000 (03:28 +0100)
committerAnup Patel <anup@brainfault.org>
Sun, 11 Jul 2021 12:03:30 +0000 (17:33 +0530)
The -N linker option is supposed to make .text writable, but GNU ld and
LLD differ in interpreting what that means. GNU ld will happily let you
have relocations in it, but LLD will see that the input section is
read-only (even though the output section is writable) and give an
error. It's unclear if either of them intend to have that behaviour in
this edge case, but regardless there's no reason not to just put the
data in a writable .data section.

Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
firmware/fw_base.S

index a1213e3..928ca91 100644 (file)
@@ -506,6 +506,7 @@ _skip_trap_exit_rv32_hyp:
        /* We don't expect to reach here hence just hang */
        j       _start_hang
 
+       .data
        .align 3
 #ifdef FW_PIC
 _runtime_offset: