Add reloc sort test

* ld-powerpc/relocsort.s, * ld-powerpc/relocsort.d: New test.
	* ld-powerpc/powerpc.exp: Run it.
This commit is contained in:
Alan Modra 2015-08-27 16:05:54 +09:30
parent 2e57ce7b14
commit 1cb0b71f5a
4 changed files with 62 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2015-08-27 Alan Modra <amodra@gmail.com>
* ld-powerpc/relocsort.s, * ld-powerpc/relocsort.d: New test.
* ld-powerpc/powerpc.exp: Run it.
2015-08-26 Nick Clifton <nickc@redhat.com>
PR ld/18401

View File

@ -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"

View File

@ -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

View File

@ -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