diff options
author | Nick Clifton <nickc@redhat.com> | 2017-10-12 13:38:20 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2017-10-12 13:38:20 +0100 |
commit | 1d75a8e26e6def4f492c84a5f678e41ddebda799 (patch) | |
tree | 6267e270216389a3d3aa3ee8ab114ea7cdcb3c4e /ld | |
parent | 9f8575350f980aa6da8c488c6aa30862620eaa1f (diff) | |
download | gdb-1d75a8e26e6def4f492c84a5f678e41ddebda799.zip gdb-1d75a8e26e6def4f492c84a5f678e41ddebda799.tar.gz gdb-1d75a8e26e6def4f492c84a5f678e41ddebda799.tar.bz2 |
Force the AArch64 linker backend to refuse to link when it encounters unresoleable relocations.
* reloc.c (enum bfd_reloc_status): Start values at 2.
* bfd-in2.h: Regenerate.
* elfnn-aarch64.c (aarch64_relocate): Invert sense of function, so
that a TRUE return indicates success. Compare the result of
calling _bfd_aarch64_elf_put_addend against bfd_reloc_ok.
(build_one_stub): Change sense of tests against aarch64_relocate
return value.
(elfNN_aarch64_tls_relax): Return bfd_reloc_notsupported, rather
than FALSE, when an error is detected.
(elfNN_aarch64_final_link_relocate): Likewise.
* testsuite/ld-aarch64/pcrel_pic_defined.d: Expect errors not
warnings. Expect errors about unsupported relocations.
* testsuite/ld-aarch64/pcrel_pic_undefined.d: Likewise.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/pcrel_pic_defined.d | 21 | ||||
-rw-r--r-- | ld/testsuite/ld-aarch64/pcrel_pic_undefined.d | 21 |
3 files changed, 34 insertions, 14 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 80049e0..85353b6 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2017-10-12 Nick Clifton <nickc@redhat.com> + + * testsuite/ld-aarch64/pcrel_pic_defined.d: Expect errors not + warnings. Expect errors about unsupported relocations. + * testsuite/ld-aarch64/pcrel_pic_undefined.d: Likewise. + 2017-10-12 H.J. Lu <hongjiu.lu@intel.com> * testsuite/ld-elf/pr22269b.d: Expect warning of diff --git a/ld/testsuite/ld-aarch64/pcrel_pic_defined.d b/ld/testsuite/ld-aarch64/pcrel_pic_defined.d index 743e810..a611e31 100644 --- a/ld/testsuite/ld-aarch64/pcrel_pic_defined.d +++ b/ld/testsuite/ld-aarch64/pcrel_pic_defined.d @@ -1,10 +1,17 @@ #name: PC-Rel relocation against defined #source: pcrel.s #ld: -shared -e0 -defsym global_a=0x1000 -defsym global_b=0x2000 -#warning: .*: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_ADR_PREL_PG_HI21_NC against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_ADR_PREL_LO21 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_LD_PREL_LO19 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_PREL16 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_PREL32 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_PREL64 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_ADR_PREL_PG_HI21_NC against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_ADR_PREL_LO21 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_LD_PREL_LO19 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_PREL16 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_PREL32 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_PREL64 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation diff --git a/ld/testsuite/ld-aarch64/pcrel_pic_undefined.d b/ld/testsuite/ld-aarch64/pcrel_pic_undefined.d index f7f048d..b5d6372 100644 --- a/ld/testsuite/ld-aarch64/pcrel_pic_undefined.d +++ b/ld/testsuite/ld-aarch64/pcrel_pic_undefined.d @@ -1,10 +1,17 @@ #name: PC-Rel relocation against undefined #source: pcrel.s #ld: -shared -e0 -defsym global_b=0x2000 -#warning: .*: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_ADR_PREL_PG_HI21_NC against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_ADR_PREL_LO21 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_LD_PREL_LO19 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_PREL16 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_PREL32 against symbol `global_a.*bind externally.*fPIC.* -#warning: .*: relocation R_AARCH64_PREL64 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_ADR_PREL_PG_HI21_NC against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_ADR_PREL_LO21 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_LD_PREL_LO19 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_PREL16 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_PREL32 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation +#error: .*: relocation R_AARCH64_PREL64 against symbol `global_a.*bind externally.*fPIC.* +#error: .*: dangerous relocation: unsupported relocation |