aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2017-10-12 13:38:20 +0100
committerNick Clifton <nickc@redhat.com>2017-10-12 13:38:20 +0100
commit1d75a8e26e6def4f492c84a5f678e41ddebda799 (patch)
tree6267e270216389a3d3aa3ee8ab114ea7cdcb3c4e /ld
parent9f8575350f980aa6da8c488c6aa30862620eaa1f (diff)
downloadfsf-binutils-gdb-1d75a8e26e6def4f492c84a5f678e41ddebda799.zip
fsf-binutils-gdb-1d75a8e26e6def4f492c84a5f678e41ddebda799.tar.gz
fsf-binutils-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/ChangeLog6
-rw-r--r--ld/testsuite/ld-aarch64/pcrel_pic_defined.d21
-rw-r--r--ld/testsuite/ld-aarch64/pcrel_pic_undefined.d21
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