* elfxx-mips.c (sort_dynamic_relocs): Sort relocations against the
	same symbol by increasing r_offset.
	(sort_dynamic_relocs_64): Likewise.  Fix comparisons between very
	large and very small symbol indexes.

ld/testsuite/
	* ld-mips-elf/tlslib-o32-hidden.got: Sort relocations against the
	same symbol in order of increasing r_offset.
	* ld-mips-elf/tls-multi-got-1.got: Likewise.
	* ld-mips-elf/tls-hidden3.r: Likewise.
	* ld-mips-elf/tls-hidden4.r: Likewise.
This commit is contained in:
Richard Sandiford
2006-10-19 13:47:10 +00:00
parent 6a4837657a
commit 6870500c04
7 changed files with 48 additions and 16 deletions

View File

@ -7,7 +7,7 @@ Relocation section '\.rel\.dyn' at offset .* contains 6 entries:
# is that there is exactly one entry per GOT TLS slot.
#
00090020 0000002f R_MIPS_TLS_TPREL3
0009002c 0000002f R_MIPS_TLS_TPREL3
00090024 0000002f R_MIPS_TLS_TPREL3
00090028 0000002f R_MIPS_TLS_TPREL3
0009002c 0000002f R_MIPS_TLS_TPREL3
00090030 .*03 R_MIPS_REL32 00000000 undef

View File

@ -7,13 +7,13 @@ Relocation section '\.rel\.dyn' at offset .* contains .* entries:
# important thing is that there is exactly one entry per GOT TLS slot
# and that the addresses match those in the .got dump.
#
001d00d4 0000002f R_MIPS_TLS_TPREL3
001d00d8 0000002f R_MIPS_TLS_TPREL3
001d00d0 0000002f R_MIPS_TLS_TPREL3
001d00cc 0000002f R_MIPS_TLS_TPREL3
001c4088 0000002f R_MIPS_TLS_TPREL3
001c408c 0000002f R_MIPS_TLS_TPREL3
001c4080 0000002f R_MIPS_TLS_TPREL3
001c4084 0000002f R_MIPS_TLS_TPREL3
001c4088 0000002f R_MIPS_TLS_TPREL3
001c408c 0000002f R_MIPS_TLS_TPREL3
001d00cc 0000002f R_MIPS_TLS_TPREL3
001d00d0 0000002f R_MIPS_TLS_TPREL3
001d00d4 0000002f R_MIPS_TLS_TPREL3
001d00d8 0000002f R_MIPS_TLS_TPREL3
.* R_MIPS_REL32 .*
#pass

View File

@ -4,14 +4,14 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
001495b0 R_MIPS_TLS_DTPMOD32 \*ABS\*
0013f928 R_MIPS_TLS_DTPMOD32 \*ABS\*
001495bc R_MIPS_TLS_DTPMOD32 tlsvar_gd
001495c0 R_MIPS_TLS_DTPREL32 tlsvar_gd
001495b0 R_MIPS_TLS_DTPMOD32 \*ABS\*
0013f934 R_MIPS_TLS_DTPMOD32 tlsvar_gd
0013f938 R_MIPS_TLS_DTPREL32 tlsvar_gd
001495b8 R_MIPS_TLS_TPREL32 tlsvar_ie
001495bc R_MIPS_TLS_DTPMOD32 tlsvar_gd
001495c0 R_MIPS_TLS_DTPREL32 tlsvar_gd
0013f930 R_MIPS_TLS_TPREL32 tlsvar_ie
001495b8 R_MIPS_TLS_TPREL32 tlsvar_ie
00143f5c R_MIPS_REL32 sym_1_9526
#...
00139bb0 R_MIPS_REL32 sym_2_8654

View File

@ -4,9 +4,9 @@
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
00000000 R_MIPS_NONE \*ABS\*
000403bc R_MIPS_TLS_DTPMOD32 \*ABS\*
000403b4 R_MIPS_TLS_DTPMOD32 \*ABS\*
000403b0 R_MIPS_TLS_TPREL32 \*ABS\*
000403b4 R_MIPS_TLS_DTPMOD32 \*ABS\*
000403bc R_MIPS_TLS_DTPMOD32 \*ABS\*
Contents of section .got: