This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Add reloc sort test
- From: Alan Modra <amodra at gmail dot com>
- To: binutils at sourceware dot org
- Date: Thu, 27 Aug 2015 23:23:23 +0930
- Subject: Add reloc sort test
- Authentication-results: sourceware.org; auth=none
One of the tests I used when looking at ld -r reloc sorting, tidied
a bit for the testsuite.
* ld-powerpc/relocsort.s, * ld-powerpc/relocsort.d: New test.
* ld-powerpc/powerpc.exp: Run it.
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
index 0b53c0b..4211063 100644
--- a/ld/testsuite/ld-powerpc/powerpc.exp
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -287,6 +287,7 @@ if [ supports_ppc64 ] then {
run_dump_test "tocvar"
run_dump_test "tocnovar"
run_dump_test "tlsld"
+ run_dump_test "relocsort"
}
run_dump_test "tlsld32"
diff --git a/ld/testsuite/ld-powerpc/relocsort.d b/ld/testsuite/ld-powerpc/relocsort.d
new file mode 100644
index 0000000..a32e725
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/relocsort.d
@@ -0,0 +1,30 @@
+#source: relocsort.s
+#as: -a64
+#ld: -r -melf64ppc
+#readelf: -r --wide
+
+.* contains 23 entries:
+.*
+0+0 +[0-9a-f]+ R_PPC64_GOT_TLSGD16 +0+0 x \+ 0
+0+0 +[0-9a-f]+ R_PPC64_NONE +0
+0+0 +[0-9a-f]+ R_PPC64_ADDR32 +1
+0+0 +[0-9a-f]+ R_PPC64_ADDR24 +2
+0+0 +[0-9a-f]+ R_PPC64_ADDR16 +3
+0+0 +[0-9a-f]+ R_PPC64_ADDR16_LO +4
+0+0 +[0-9a-f]+ R_PPC64_ADDR16_HI +5
+0+0 +[0-9a-f]+ R_PPC64_ADDR16_HA +6
+0+0 +[0-9a-f]+ R_PPC64_ADDR14 +7
+0+0 +[0-9a-f]+ R_PPC64_ADDR14_BRTAKEN +8
+0+0 +[0-9a-f]+ R_PPC64_ADDR14_BRNTAKE +9
+0+4 +[0-9a-f]+ R_PPC64_REL24 +0+0 __tls_get_addr \+ 0
+0+4 +[0-9a-f]+ R_PPC64_TLSGD +0+0 x \+ 0
+0+8 +[0-9a-f]+ R_PPC64_REL24 +a
+0+8 +[0-9a-f]+ R_PPC64_REL14 +b
+0+8 +[0-9a-f]+ R_PPC64_REL14_BRTAKEN +c
+0+8 +[0-9a-f]+ R_PPC64_REL14_BRNTAKEN +d
+0+8 +[0-9a-f]+ R_PPC64_GOT16 +e
+0+8 +[0-9a-f]+ R_PPC64_GOT16_LO +f
+0+8 +[0-9a-f]+ R_PPC64_GOT16_HI +10
+0+8 +[0-9a-f]+ R_PPC64_GOT16_HA +11
+0+8 +[0-9a-f]+ R_PPC64_NONE +12
+0+8 +[0-9a-f]+ R_PPC64_COPY +13
diff --git a/ld/testsuite/ld-powerpc/relocsort.s b/ld/testsuite/ld-powerpc/relocsort.s
new file mode 100644
index 0000000..8e05d69
--- /dev/null
+++ b/ld/testsuite/ld-powerpc/relocsort.s
@@ -0,0 +1,26 @@
+# Deliberately create out-of-order relocs to test that ld -r sorts them.
+ .text
+ .long 0, 0, 0
+ .reloc 4, R_PPC64_REL24, __tls_get_addr
+ .reloc 4, R_PPC64_TLSGD, x
+ .reloc 0, R_PPC64_GOT_TLSGD16, x
+ .reloc 0, R_PPC64_NONE, 0
+ .reloc 0, R_PPC64_ADDR32, 1
+ .reloc 0, R_PPC64_ADDR24, 2
+ .reloc 8, R_PPC64_REL24, 10
+ .reloc 8, R_PPC64_REL14, 11
+ .reloc 8, R_PPC64_REL14_BRTAKEN, 12
+ .reloc 0, R_PPC64_ADDR16, 3
+ .reloc 0, R_PPC64_ADDR16_LO, 4
+ .reloc 0, R_PPC64_ADDR16_HI, 5
+ .reloc 0, R_PPC64_ADDR16_HA, 6
+ .reloc 0, R_PPC64_ADDR14, 7
+ .reloc 8, R_PPC64_REL14_BRNTAKEN, 13
+ .reloc 8, R_PPC64_GOT16, 14
+ .reloc 8, R_PPC64_GOT16_LO, 15
+ .reloc 8, R_PPC64_GOT16_HI, 16
+ .reloc 8, R_PPC64_GOT16_HA, 17
+ .reloc 8, R_PPC64_NONE, 18
+ .reloc 8, R_PPC64_COPY, 19
+ .reloc 0, R_PPC64_ADDR14_BRTAKEN, 8
+ .reloc 0, R_PPC64_ADDR14_BRNTAKEN, 9
--
Alan Modra
Australia Development Lab, IBM