Parcourir la source

Merge #57

57: Surround use of absolute address with "norelax" r=Disasm a=laanwj

This prevents an unsupported `R_RISCV_ALIGN` relocation from being generated by disabling link-time relaxing for the appropriate part.

Fixes #55.

Co-authored-by: Wladimir J. van der Laan <laanwj@protonmail.com>
bors[bot] il y a 4 ans
Parent
commit
8ec323b167

+ 3 - 0
riscv-rt/asm.S

@@ -30,6 +30,8 @@ _start:
 
     // for 64bit
     .if __riscv_xlen == 64
+.option push
+.option norelax // to prevent an unsupported R_RISCV_ALIGN relocation from being generated
 1:
     auipc ra, %pcrel_hi(1f)
     ld ra, %pcrel_lo(1b)(ra)
@@ -37,6 +39,7 @@ _start:
     .align  3
 1:
     .dword _abs_start
+.option pop
     .endif
 
 _abs_start:

BIN
riscv-rt/bin/riscv32i-unknown-none-elf.a


BIN
riscv-rt/bin/riscv32ic-unknown-none-elf.a


BIN
riscv-rt/bin/riscv32im-unknown-none-elf.a


BIN
riscv-rt/bin/riscv32imc-unknown-none-elf.a


BIN
riscv-rt/bin/riscv64i-unknown-none-elf.a


BIN
riscv-rt/bin/riscv64ic-unknown-none-elf.a


BIN
riscv-rt/bin/riscv64im-unknown-none-elf.a


BIN
riscv-rt/bin/riscv64imc-unknown-none-elf.a