--- /dev/null
+#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
--- /dev/null
+# 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