diff options
author | Jim Wilson <jimw@sifive.com> | 2018-02-15 10:53:46 -0800 |
---|---|---|
committer | Jim Wilson <jimw@sifive.com> | 2018-02-15 10:53:46 -0800 |
commit | 2a0d98534964649bc6884b7833c6c4089159a6df (patch) | |
tree | f6e5caa134ac16c4d58efa8ae98f7f67f0266b06 /ld | |
parent | 49ded53def53ae60926433b924db9525aae1e631 (diff) | |
download | fsf-binutils-gdb-2a0d98534964649bc6884b7833c6c4089159a6df.zip fsf-binutils-gdb-2a0d98534964649bc6884b7833c6c4089159a6df.tar.gz fsf-binutils-gdb-2a0d98534964649bc6884b7833c6c4089159a6df.tar.bz2 |
RISC-V: Give error for ignored pcrel_lo addend.
bfd/
* elfnn-riscv.c (riscv_elf_relocate_section): Use bfd_reloc_dangerous
when pcrel_lo reloc has an addend. Use reloc_dangerous callback for
bfd_reloc_dangerous. Use einfo instead of warning callback for errors.
Add %X%P to error messages.
ld/
* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Run pcrel-lo-addend test.
* testsuite/ld-riscv-elf/pcrel-lo-addend.d: New.
* testsuite/ld-riscv-elf/pcrel-lo-addend.s: New.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-riscv-elf/pcrel-lo-addend.d | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-riscv-elf/pcrel-lo-addend.s | 17 |
4 files changed, 29 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index c8a967a..a1d0049 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2018-02-15 Jim Wilson <jimw@sifive.com> + + * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Run pcrel-lo-addend test. + * testsuite/ld-riscv-elf/pcrel-lo-addend.d: New. + * testsuite/ld-riscv-elf/pcrel-lo-addend.s: New. + 2018-02-14 H.J. Lu <hongjiu.lu@intel.com> PR ld/22842 diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp index 2b6a1d7..cd11680 100644 --- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp +++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp @@ -22,6 +22,7 @@ if [istarget "riscv*-*-*"] { run_dump_test "c-lui" run_dump_test "disas-jalr" + run_dump_test "pcrel-lo-addend" # The following tests require shared library support. if ![check_shared_lib_support] { diff --git a/ld/testsuite/ld-riscv-elf/pcrel-lo-addend.d b/ld/testsuite/ld-riscv-elf/pcrel-lo-addend.d new file mode 100644 index 0000000..bd61b4b --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/pcrel-lo-addend.d @@ -0,0 +1,5 @@ +#name: %pcrel_lo with an addend +#source: pcrel-lo-addend.s +#as: -march=rv32ic +#ld: -melf32lriscv +#error: .*dangerous relocation: %pcrel_lo with addend diff --git a/ld/testsuite/ld-riscv-elf/pcrel-lo-addend.s b/ld/testsuite/ld-riscv-elf/pcrel-lo-addend.s new file mode 100644 index 0000000..50cdccc --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/pcrel-lo-addend.s @@ -0,0 +1,17 @@ + .text + .globl _start +_start: + auipc ra, %pcrel_hi(tdata) + addi ra, ra, %pcrel_lo(.text) + lb t1, 0(ra) +foo: + auipc ra, %pcrel_hi(tdata) + addi ra, ra, %pcrel_lo(.text+12) + lb t2, 1(ra) + + .data +tdata: + .byte 0xff + .byte 0x00 + .byte 0xf0 + .byte 0x0f |