aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-sparc
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-sparc')
-rw-r--r--ld/testsuite/ld-sparc/sparc.exp28
-rw-r--r--ld/testsuite/ld-sparc/tlsg64.sd3
-rw-r--r--ld/testsuite/ld-sparc/tlssunbin64.dd270
-rw-r--r--ld/testsuite/ld-sparc/tlssunbin64.rd129
-rw-r--r--ld/testsuite/ld-sparc/tlssunbin64.sd5
-rw-r--r--ld/testsuite/ld-sparc/tlssunbin64.td8
-rw-r--r--ld/testsuite/ld-sparc/tlssunnopic64.dd78
-rw-r--r--ld/testsuite/ld-sparc/tlssunnopic64.rd99
-rw-r--r--ld/testsuite/ld-sparc/tlssunnopic64.sd6
-rw-r--r--ld/testsuite/ld-sparc/tlssunpic64.dd210
-rw-r--r--ld/testsuite/ld-sparc/tlssunpic64.rd138
-rw-r--r--ld/testsuite/ld-sparc/tlssunpic64.sd12
-rw-r--r--ld/testsuite/ld-sparc/tlssunpic64.td8
13 files changed, 959 insertions, 35 deletions
diff --git a/ld/testsuite/ld-sparc/sparc.exp b/ld/testsuite/ld-sparc/sparc.exp
index c157823..64ec260 100644
--- a/ld/testsuite/ld-sparc/sparc.exp
+++ b/ld/testsuite/ld-sparc/sparc.exp
@@ -37,50 +37,50 @@ if { !([istarget "sparc*-*-elf*"]
# readelf: Apply readelf options on result. Compare with regex (last arg).
set sparctests {
- {"TLS -fpic -shared transitions" "-shared -melf32_sparc"
+ {"32-bit: TLS -fpic -shared transitions" "-shared -melf32_sparc"
"--32 -K PIC" {tlssunpic32.s tlspic.s}
{{readelf -WSsrl tlssunpic32.rd} {objdump -drj.text tlssunpic32.dd}
{objdump -sj.got tlssunpic32.sd} {objdump -sj.tdata tlssunpic32.td}}
"libtlssunpic32.so"}
- {"Helper shared library" "-shared -melf32_sparc"
+ {"32-bit: Helper shared library" "-shared -melf32_sparc"
"--32 -K PIC" {tlslib.s} {} "libtlslib32.so"}
- {"Another helper shared library" "-shared -melf32_sparc"
+ {"32-bit: Another helper shared library" "-shared -melf32_sparc"
"--32 -K PIC" {tlssunbinpic32.s} {} "libtlssunbinpic32.so"}
- {"TLS -fpic and -fno-pic exec transitions"
+ {"32-bit: TLS -fpic and -fno-pic exec transitions"
"-melf32_sparc tmpdir/libtlslib32.so tmpdir/tlssunbinpic32.o"
"--32" {tlssunbin32.s}
{{readelf -WSsrl tlssunbin32.rd} {objdump -drj.text tlssunbin32.dd}
{objdump -sj.got tlssunbin32.sd} {objdump -sj.tdata tlssunbin32.td}}
"tlssunbin32"}
- {"TLS -fno-pic -shared" "-shared -melf32_sparc"
+ {"32-bit: TLS -fno-pic -shared" "-shared -melf32_sparc"
"--32" {tlssunnopic32.s tlsnopic.s}
{{readelf -WSsrl tlssunnopic32.rd} {objdump -drj.text tlssunnopic32.dd}
{objdump -sj.got tlssunnopic32.sd}} "libtlssunnopic32.so"}
- {"TLS in debug sections" "-melf32_sparc"
+ {"32-bit: TLS in debug sections" "-melf32_sparc"
"--32" {tlsg32.s}
{{objdump -sj.debug_foobar tlsg32.sd}} "tlsg32"}
}
set sparc64tests {
- {"TLS -fpic -shared transitions" "-shared -melf64_sparc"
+ {"64-bit: TLS -fpic -shared transitions" "-shared -melf64_sparc"
"--64 -Av9 -K PIC" {tlssunpic64.s tlspic.s}
{{readelf -WSsrl tlssunpic64.rd} {objdump -drj.text tlssunpic64.dd}
{objdump -sj.got tlssunpic64.sd} {objdump -sj.tdata tlssunpic64.td}}
"libtlssunpic64.so"}
- {"Helper shared library" "-shared -melf64_sparc"
+ {"64-bit: Helper shared library" "-shared -melf64_sparc"
"--64 -Av9 -K PIC" {tlslib.s} {} "libtlslib64.so"}
- {"Another helper shared library" "-shared -melf64_sparc"
+ {"64-bit: Another helper shared library" "-shared -melf64_sparc"
"--64 -Av9 -K PIC" {tlssunbinpic64.s} {} "libtlssunbinpic64.so"}
- {"TLS -fpic and -fno-pic exec transitions"
+ {"64-bit: TLS -fpic and -fno-pic exec transitions"
"-melf64_sparc tmpdir/libtlslib64.so tmpdir/tlssunbinpic64.o"
"--64 -Av9" {tlssunbin64.s}
{{readelf -WSsrl tlssunbin64.rd} {objdump -drj.text tlssunbin64.dd}
{objdump -sj.got tlssunbin64.sd} {objdump -sj.tdata tlssunbin64.td}}
"tlssunbin64"}
- {"TLS -fno-pic -shared" "-shared -melf64_sparc"
+ {"64-bit: TLS -fno-pic -shared" "-shared -melf64_sparc"
"--64 -Av9" {tlssunnopic64.s tlsnopic.s}
{{readelf -WSsrl tlssunnopic64.rd} {objdump -drj.text tlssunnopic64.dd}
{objdump -sj.got tlssunnopic64.sd}} "libtlssunnopic64.so"}
- {"TLS in debug sections" "-melf64_sparc"
+ {"64-bit: TLS in debug sections" "-melf64_sparc"
"--64 -Av9" {tlsg64.s}
{{objdump -sj.debug_foobar tlsg64.sd}} "tlsg64"}
}
@@ -88,4 +88,6 @@ set sparc64tests {
if { ![istarget "sparc64-*-elf*"] } {
run_ld_link_tests $sparctests
}
-# run_ld_link_tests $sparc64tests
+if { ![istarget "sparc-*-elf*"] } {
+ run_ld_link_tests $sparc64tests
+}
diff --git a/ld/testsuite/ld-sparc/tlsg64.sd b/ld/testsuite/ld-sparc/tlsg64.sd
index 6768fa1..4181dde 100644
--- a/ld/testsuite/ld-sparc/tlsg64.sd
+++ b/ld/testsuite/ld-sparc/tlsg64.sd
@@ -7,5 +7,4 @@
.*: +file format elf64-sparc
Contents of section .debug_foobar:
-# FIXME
-#pass
+ 0+ 0+ 0+18 .*
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.dd b/ld/testsuite/ld-sparc/tlssunbin64.dd
index 9a5dad9..0585ae6 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin64.dd
@@ -7,5 +7,271 @@
.*: +file format elf64-sparc
Disassembly of section .text:
-# FIXME
-#pass
+
+0+101000 <fn2-0x8>:
+ +101000: 81 c3 e0 08 retl *
+ +101004: ae 03 c0 17 add %o7, %l7, %l7
+
+0+101008 <fn2>:
+ +101008: 9d e3 bf 60 save %sp, -160, %sp
+ +10100c: 2f 00 04 04 sethi %hi\(0x101000\), %l7
+ +101010: 7f ff ff fc call 101000 <.*>
+ +101014: ae 05 e2 f8 add %l7, 0x2f8, %l7 ! 1012f8 <.*>
+ +101018: 01 00 00 00 nop *
+ +10101c: 01 00 00 00 nop *
+ +101020: 01 00 00 00 nop *
+ +101024: 01 00 00 00 nop *
+ +101028: 23 00 00 00 sethi %hi\(0\), %l1
+ +10102c: 01 00 00 00 nop *
+ +101030: a4 04 60 20 add %l1, 0x20, %l2
+ +101034: 01 00 00 00 nop *
+ +101038: d0 5d c0 12 ldx \[ %l7 \+ %l2 \], %o0
+ +10103c: 01 00 00 00 nop *
+ +101040: 90 01 c0 08 add %g7, %o0, %o0
+ +101044: 01 00 00 00 nop *
+ +101048: 01 00 00 00 nop *
+ +10104c: 01 00 00 00 nop *
+ +101050: 01 00 00 00 nop *
+ +101054: 01 00 00 00 nop *
+ +101058: 11 00 00 00 sethi %hi\(0\), %o0
+ +10105c: 92 02 20 10 add %o0, 0x10, %o1 ! 10 <.*>
+ +101060: d0 5d c0 09 ldx \[ %l7 \+ %o1 \], %o0
+ +101064: 90 01 c0 08 add %g7, %o0, %o0
+ +101068: 01 00 00 00 nop *
+ +10106c: 01 00 00 00 nop *
+ +101070: 01 00 00 00 nop *
+ +101074: 01 00 00 00 nop *
+ +101078: 01 00 00 00 nop *
+ +10107c: 21 00 00 00 sethi %hi\(0\), %l0
+ +101080: aa 1c 3f 60 xor %l0, -160, %l5
+ +101084: 90 01 c0 15 add %g7, %l5, %o0
+ +101088: 01 00 00 00 nop *
+ +10108c: 01 00 00 00 nop *
+ +101090: 01 00 00 00 nop *
+ +101094: 01 00 00 00 nop *
+ +101098: 01 00 00 00 nop *
+ +10109c: 01 00 00 00 nop *
+ +1010a0: 11 00 00 00 sethi %hi\(0\), %o0
+ +1010a4: 92 1a 3f 80 xor %o0, -128, %o1
+ +1010a8: 90 01 c0 09 add %g7, %o1, %o0
+ +1010ac: 01 00 00 00 nop *
+ +1010b0: 01 00 00 00 nop *
+ +1010b4: 01 00 00 00 nop *
+ +1010b8: 01 00 00 00 nop *
+ +1010bc: 01 00 00 00 nop *
+ +1010c0: 01 00 00 00 nop *
+ +1010c4: 11 00 00 00 sethi %hi\(0\), %o0
+ +1010c8: 92 1a 3f a0 xor %o0, -96, %o1
+ +1010cc: 90 01 c0 09 add %g7, %o1, %o0
+ +1010d0: 01 00 00 00 nop *
+ +1010d4: 01 00 00 00 nop *
+ +1010d8: 01 00 00 00 nop *
+ +1010dc: 01 00 00 00 nop *
+ +1010e0: 01 00 00 00 nop *
+ +1010e4: 01 00 00 00 nop *
+ +1010e8: 01 00 00 00 nop *
+ +1010ec: 01 00 00 00 nop *
+ +1010f0: 01 00 00 00 nop *
+ +1010f4: 01 00 00 00 nop *
+ +1010f8: 01 00 00 00 nop *
+ +1010fc: 01 00 00 00 nop *
+ +101100: 90 10 00 00 mov %g0, %o0
+ +101104: 01 00 00 00 nop *
+ +101108: 27 00 00 00 sethi %hi\(0\), %l3
+ +10110c: 01 00 00 00 nop *
+ +101110: a8 1c ff 80 xor %l3, -128, %l4
+ +101114: 01 00 00 00 nop *
+ +101118: aa 01 c0 14 add %g7, %l4, %l5
+ +10111c: 01 00 00 00 nop *
+ +101120: 25 00 00 00 sethi %hi\(0\), %l2
+ +101124: 01 00 00 00 nop *
+ +101128: a6 1c bf 86 xor %l2, -122, %l3
+ +10112c: 01 00 00 00 nop *
+ +101130: ec 11 c0 13 lduh \[ %g7 \+ %l3 \], %l6
+ +101134: 01 00 00 00 nop *
+ +101138: 01 00 00 00 nop *
+ +10113c: 01 00 00 00 nop *
+ +101140: 01 00 00 00 nop *
+ +101144: 01 00 00 00 nop *
+ +101148: 27 00 00 00 sethi %hi\(0\), %l3
+ +10114c: 01 00 00 00 nop *
+ +101150: 25 00 00 00 sethi %hi\(0\), %l2
+ +101154: 01 00 00 00 nop *
+ +101158: a8 1c ff a0 xor %l3, -96, %l4
+ +10115c: 90 10 00 00 mov %g0, %o0
+ +101160: a6 1c bf a5 xor %l2, -91, %l3
+ +101164: aa 01 c0 14 add %g7, %l4, %l5
+ +101168: ec 09 c0 13 ldub \[ %g7 \+ %l3 \], %l6
+ +10116c: 01 00 00 00 nop *
+ +101170: 01 00 00 00 nop *
+ +101174: 01 00 00 00 nop *
+ +101178: 01 00 00 00 nop *
+ +10117c: 23 00 00 00 sethi %hi\(0\), %l1
+ +101180: 01 00 00 00 nop *
+ +101184: a4 04 60 10 add %l1, 0x10, %l2
+ +101188: 01 00 00 00 nop *
+ +10118c: e4 5d c0 12 ldx \[ %l7 \+ %l2 \], %l2
+ +101190: 01 00 00 00 nop *
+ +101194: a4 01 c0 12 add %g7, %l2, %l2
+ +101198: 01 00 00 00 nop *
+ +10119c: 01 00 00 00 nop *
+ +1011a0: 01 00 00 00 nop *
+ +1011a4: 01 00 00 00 nop *
+ +1011a8: 17 00 00 00 sethi %hi\(0\), %o3
+ +1011ac: 96 1a ff 60 xor %o3, -160, %o3
+ +1011b0: 94 10 00 0b mov %o3, %o2
+ +1011b4: 98 01 c0 0a add %g7, %o2, %o4
+ +1011b8: 01 00 00 00 nop *
+ +1011bc: 01 00 00 00 nop *
+ +1011c0: 01 00 00 00 nop *
+ +1011c4: 01 00 00 00 nop *
+ +1011c8: 29 00 00 00 sethi %hi\(0\), %l4
+ +1011cc: a2 1d 3f 80 xor %l4, -128, %l1
+ +1011d0: a6 10 00 11 mov %l1, %l3
+ +1011d4: a6 01 c0 13 add %g7, %l3, %l3
+ +1011d8: 01 00 00 00 nop *
+ +1011dc: 01 00 00 00 nop *
+ +1011e0: 01 00 00 00 nop *
+ +1011e4: 01 00 00 00 nop *
+ +1011e8: 13 00 00 00 sethi %hi\(0\), %o1
+ +1011ec: 96 1a 7f a0 xor %o1, -96, %o3
+ +1011f0: 90 10 00 0b mov %o3, %o0
+ +1011f4: 96 01 c0 08 add %g7, %o0, %o3
+ +1011f8: 01 00 00 00 nop *
+ +1011fc: 01 00 00 00 nop *
+ +101200: 01 00 00 00 nop *
+ +101204: 01 00 00 00 nop *
+ +101208: 17 00 00 00 sethi %hi\(0\), %o3
+ +10120c: 96 02 e0 08 add %o3, 8, %o3 ! 8 <.*>
+ +101210: d4 5d c0 0b ldx \[ %l7 \+ %o3 \], %o2
+ +101214: d8 59 c0 0a ldx \[ %g7 \+ %o2 \], %o4
+ +101218: 01 00 00 00 nop *
+ +10121c: 01 00 00 00 nop *
+ +101220: 01 00 00 00 nop *
+ +101224: 01 00 00 00 nop *
+ +101228: 17 00 00 00 sethi %hi\(0\), %o3
+ +10122c: 96 1a ff 90 xor %o3, -112, %o3
+ +101230: 94 10 00 0b mov %o3, %o2
+ +101234: d8 29 c0 0a stb %o4, \[ %g7 \+ %o2 \]
+ +101238: 01 00 00 00 nop *
+ +10123c: 01 00 00 00 nop *
+ +101240: 01 00 00 00 nop *
+ +101244: 01 00 00 00 nop *
+ +101248: 1b 00 00 00 sethi %hi\(0\), %o5
+ +10124c: 96 1b 7f b0 xor %o5, -80, %o3
+ +101250: 94 10 00 0b mov %o3, %o2
+ +101254: d8 49 c0 0a ldsb \[ %g7 \+ %o2 \], %o4
+ +101258: 01 00 00 00 nop *
+ +10125c: 01 00 00 00 nop *
+ +101260: 01 00 00 00 nop *
+ +101264: 01 00 00 00 nop *
+ +101268: 81 cf e0 08 rett %i7 \+ 8
+ +10126c: 01 00 00 00 nop *
+#...
+
+0+102000 <_start>:
+ +102000: 9d e3 bf 60 save %sp, -160, %sp
+ +102004: 23 00 00 00 sethi %hi\(0\), %l1
+ +102008: 25 00 08 08 sethi %hi\(0x202000\), %l2
+ +10200c: a2 14 60 00 mov %l1, %l1
+ +102010: a4 14 a3 08 or %l2, 0x308, %l2
+ +102014: a3 2c 70 20 sllx %l1, 0x20, %l1
+ +102018: a8 04 40 12 add %l1, %l2, %l4
+ +10201c: 01 00 00 00 nop *
+ +102020: 01 00 00 00 nop *
+ +102024: 01 00 00 00 nop *
+ +102028: 01 00 00 00 nop *
+ +10202c: 17 00 00 00 sethi %hi\(0\), %o3
+ +102030: 96 02 e0 18 add %o3, 0x18, %o3 ! 18 <.*>
+ +102034: d4 5d 00 0b ldx \[ %l4 \+ %o3 \], %o2
+ +102038: 98 01 c0 0a add %g7, %o2, %o4
+ +10203c: 01 00 00 00 nop *
+ +102040: 01 00 00 00 nop *
+ +102044: 01 00 00 00 nop *
+ +102048: 01 00 00 00 nop *
+ +10204c: 17 00 00 00 sethi %hi\(0\), %o3
+ +102050: 9a 1a ff d4 xor %o3, -44, %o5
+ +102054: 94 10 00 0d mov %o5, %o2
+ +102058: 98 01 c0 0a add %g7, %o2, %o4
+ +10205c: 01 00 00 00 nop *
+ +102060: 01 00 00 00 nop *
+ +102064: 01 00 00 00 nop *
+ +102068: 01 00 00 00 nop *
+ +10206c: 17 00 00 00 sethi %hi\(0\), %o3
+ +102070: 9a 1a ff f4 xor %o3, -12, %o5
+ +102074: a4 10 00 0d mov %o5, %l2
+ +102078: a4 01 c0 12 add %g7, %l2, %l2
+ +10207c: 01 00 00 00 nop *
+ +102080: 01 00 00 00 nop *
+ +102084: 01 00 00 00 nop *
+ +102088: 01 00 00 00 nop *
+ +10208c: 17 00 00 00 sethi %hi\(0\), %o3
+ +102090: 9a 1a ff fc xor %o3, -4, %o5
+ +102094: a4 10 00 0d mov %o5, %l2
+ +102098: e4 41 c0 12 ldsw \[ %g7 \+ %l2 \], %l2
+ +10209c: 01 00 00 00 nop *
+ +1020a0: 01 00 00 00 nop *
+ +1020a4: 01 00 00 00 nop *
+ +1020a8: 01 00 00 00 nop *
+ +1020ac: 17 00 00 00 sethi %hi\(0\), %o3
+ +1020b0: 9a 1a ff b4 xor %o3, -76, %o5
+ +1020b4: a4 10 00 0d mov %o5, %l2
+ +1020b8: a4 01 c0 12 add %g7, %l2, %l2
+ +1020bc: 01 00 00 00 nop *
+ +1020c0: 01 00 00 00 nop *
+ +1020c4: 01 00 00 00 nop *
+ +1020c8: 01 00 00 00 nop *
+ +1020cc: 17 00 00 00 sethi %hi\(0\), %o3
+ +1020d0: 9a 1a ff fc xor %o3, -4, %o5
+ +1020d4: a4 10 00 0d mov %o5, %l2
+ +1020d8: e2 29 c0 12 stb %l1, \[ %g7 \+ %l2 \]
+ +1020dc: 01 00 00 00 nop *
+ +1020e0: 01 00 00 00 nop *
+ +1020e4: 01 00 00 00 nop *
+ +1020e8: 01 00 00 00 nop *
+ +1020ec: 23 00 00 00 sethi %hi\(0\), %l1
+ +1020f0: 01 00 00 00 nop *
+ +1020f4: a4 1c 7f 64 xor %l1, -156, %l2
+ +1020f8: 01 00 00 00 nop *
+ +1020fc: a6 01 c0 12 add %g7, %l2, %l3
+ +102100: 01 00 00 00 nop *
+ +102104: 01 00 00 00 nop *
+ +102108: 01 00 00 00 nop *
+ +10210c: 01 00 00 00 nop *
+ +102110: 11 00 00 00 sethi %hi\(0\), %o0
+ +102114: 90 1a 3f e6 xor %o0, -26, %o0
+ +102118: 90 01 c0 08 add %g7, %o0, %o0
+ +10211c: 01 00 00 00 nop *
+ +102120: 01 00 00 00 nop *
+ +102124: 01 00 00 00 nop *
+ +102128: 01 00 00 00 nop *
+ +10212c: 23 00 00 00 sethi %hi\(0\), %l1
+ +102130: 9a 1c 7f a5 xor %l1, -91, %o5
+ +102134: 92 01 c0 0d add %g7, %o5, %o1
+ +102138: 01 00 00 00 nop *
+ +10213c: 01 00 00 00 nop *
+ +102140: 01 00 00 00 nop *
+ +102144: 01 00 00 00 nop *
+ +102148: 23 00 00 00 sethi %hi\(0\), %l1
+ +10214c: 9a 1c 7f 68 xor %l1, -152, %o5
+ +102150: d2 59 c0 0d ldx \[ %g7 \+ %o5 \], %o1
+ +102154: 01 00 00 00 nop *
+ +102158: 01 00 00 00 nop *
+ +10215c: 01 00 00 00 nop *
+ +102160: 01 00 00 00 nop *
+ +102164: 11 00 00 00 sethi %hi\(0\), %o0
+ +102168: 90 1a 3f eb xor %o0, -21, %o0
+ +10216c: d2 29 c0 08 stb %o1, \[ %g7 \+ %o0 \]
+ +102170: 01 00 00 00 nop *
+ +102174: 01 00 00 00 nop *
+ +102178: 01 00 00 00 nop *
+ +10217c: 01 00 00 00 nop *
+ +102180: 15 00 00 00 sethi %hi\(0\), %o2
+ +102184: 98 1a bf ab xor %o2, -85, %o4
+ +102188: da 69 c0 0c ldstub \[ %g7 \+ %o4 \], %o5
+ +10218c: 01 00 00 00 nop *
+ +102190: 01 00 00 00 nop *
+ +102194: 01 00 00 00 nop *
+ +102198: 01 00 00 00 nop *
+ +10219c: 81 c7 e0 08 ret
+ +1021a0: 81 e8 00 00 restore
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.rd b/ld/testsuite/ld-sparc/tlssunbin64.rd
index dee8c33..ae1f1cc 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.rd
+++ b/ld/testsuite/ld-sparc/tlssunbin64.rd
@@ -4,5 +4,130 @@
#readelf: -WSsrl
#target: sparc*-*-*
-# FIXME
-#pass
+There are 15 section headers, starting at offset 0x[0-9a-f]+:
+
+Section Headers:
+ +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+ +\[ 0\] +NULL +0+ 0+ 0+ 00 +0 +0 +0
+ +\[ 1\] .interp +.*
+ +\[ 2\] .hash +.*
+ +\[ 3\] .dynsym +.*
+ +\[ 4\] .dynstr +.*
+ +\[ 5\] .rela.dyn +.*
+ +\[ 6\] .text +PROGBITS +0+101000 0+1000 0+11a4 00 +AX +0 +0 4096
+ +\[ 7\] .tdata +PROGBITS +0+2021a4 0+21a4 0+0060 00 WAT +0 +0 +4
+ +\[ 8\] .tbss +NOBITS +0+202204 0+2204 0+40 00 WAT +0 +0 +4
+ +\[ 9\] .dynamic +DYNAMIC +0+202208 0+2208 0+100 10 +WA +4 +0 +8
+ +\[10\] .got +PROGBITS +0+202308 0+2308 0+28 08 +WA +0 +0 +8
+ +\[11\] .plt +.*
+ +\[12\] .shstrtab +.*
+ +\[13\] .symtab +.*
+ +\[14\] .strtab +.*
+#...
+
+Elf file type is EXEC \(Executable file\)
+Entry point 0x102000
+There are 6 program headers, starting at offset [0-9]+
+
+Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+ +PHDR +0x0+40 0x0+100040 0x0+100040 0x0+150 0x0+150 R E 0x8
+ +INTERP +0x0+190 0x0+100190 0x0+100190 0x0+19 0x0+19 R +0x1
+.*Requesting program interpreter.*
+ +LOAD +0x0+ 0x0+100000 0x0+100000 0x0+21a4 0x0+21a4 R E 0x100000
+ +LOAD +0x0+21a4 0x0+2021a4 0x0+2021a4 0x0+25c 0x0+25c RWE 0x100000
+ +DYNAMIC +0x0+2208 0x0+202208 0x0+202208 0x0+100 0x0+100 RW +0x8
+ +TLS +0x0+21a4 0x0+2021a4 0x0+2021a4 0x0+60 0x0+a0 R +0x4
+#...
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+0+202310 +0+10000004f R_SPARC_TLS_TPOFF64 +0+ +sG5 \+ 0
+0+202318 +0+30000004f R_SPARC_TLS_TPOFF64 +0+ +sG2 \+ 0
+0+202320 +0+70000004f R_SPARC_TLS_TPOFF64 +0+ +sG6 \+ 0
+0+202328 +0+80000004f R_SPARC_TLS_TPOFF64 +0+ +sG1 \+ 0
+
+Symbol table '.dynsym' contains 11 entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+ +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +1: 0+ +0 TLS +GLOBAL DEFAULT +UND sG5
+ +2: 0+202208 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +3: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+ +4: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
+ +5: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+ +6: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +7: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
+ +8: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+ +9: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +10: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+
+Symbol table '.symtab' contains 68 entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+ +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
+ +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
+ +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +7 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL +DEFAULT +7 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +7 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL +DEFAULT +7 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +7 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL +DEFAULT +7 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL +DEFAULT +7 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL +DEFAULT +7 sl8
+ +[0-9]+: 0+80 +0 TLS +LOCAL +DEFAULT +8 bl1
+ +[0-9]+: 0+84 +0 TLS +LOCAL +DEFAULT +8 bl2
+ +[0-9]+: 0+88 +0 TLS +LOCAL +DEFAULT +8 bl3
+ +[0-9]+: 0+8c +0 TLS +LOCAL +DEFAULT +8 bl4
+ +[0-9]+: 0+90 +0 TLS +LOCAL +DEFAULT +8 bl5
+ +[0-9]+: 0+94 +0 TLS +LOCAL +DEFAULT +8 bl6
+ +[0-9]+: 0+98 +0 TLS +LOCAL +DEFAULT +8 bl7
+ +[0-9]+: 0+9c +0 TLS +LOCAL +DEFAULT +8 bl8
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +7 sg8
+ +[0-9]+: 0+7c +0 TLS +GLOBAL DEFAULT +8 bg8
+ +[0-9]+: 0+74 +0 TLS +GLOBAL DEFAULT +8 bg6
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG5
+ +[0-9]+: 0+68 +0 TLS +GLOBAL DEFAULT +8 bg3
+ +[0-9]+: 0+202208 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+08 +0 TLS +GLOBAL DEFAULT +7 sg3
+ +[0-9]+: 0+48 +0 TLS +GLOBAL HIDDEN +7 sh3
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2
+ +[0-9]+: 0+0c +0 TLS +GLOBAL DEFAULT +7 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +7 sg5
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
+ +[0-9]+: 0+70 +0 TLS +GLOBAL DEFAULT +8 bg5
+ +[0-9]+: 0+ +0 FUNC +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+58 +0 TLS +GLOBAL HIDDEN +7 sh7
+ +[0-9]+: 0+5c +0 TLS +GLOBAL HIDDEN +7 sh8
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +7 sg1
+ +[0-9]+: 0+102000 +0 FUNC +GLOBAL DEFAULT +6 _start
+ +[0-9]+: 0+4c +0 TLS +GLOBAL HIDDEN +7 sh4
+ +[0-9]+: 0+78 +0 TLS +GLOBAL DEFAULT +8 bg7
+ +[0-9]+: 0+50 +0 TLS +GLOBAL HIDDEN +7 sh5
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG6
+ +[0-9]+: 0+101008 +0 FUNC +GLOBAL DEFAULT +6 fn2
+ +[0-9]+: 0+04 +0 TLS +GLOBAL DEFAULT +7 sg2
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1
+ +[0-9]+: 0+40 +0 TLS +GLOBAL HIDDEN +7 sh1
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +7 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +7 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: 0+202308 +0 OBJECT +GLOBAL +HIDDEN +10 _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+ +[0-9]+: 0+44 +0 TLS +GLOBAL HIDDEN +7 sh2
+ +[0-9]+: 0+54 +0 TLS +GLOBAL HIDDEN +7 sh6
+ +[0-9]+: 0+64 +0 TLS +GLOBAL DEFAULT +8 bg2
+ +[0-9]+: 0+60 +0 TLS +GLOBAL DEFAULT +8 bg1
+ +[0-9]+: 0+6c +0 TLS +GLOBAL DEFAULT +8 bg4
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.sd b/ld/testsuite/ld-sparc/tlssunbin64.sd
index c57fc10..73a87e0 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.sd
+++ b/ld/testsuite/ld-sparc/tlssunbin64.sd
@@ -7,5 +7,6 @@
.*: +file format elf64-sparc
Contents of section .got:
-# FIXME
-#pass
+ 202308 0+ 0+202208 0+ 0+ .*
+ 202318 0+ 0+ 0+ 0+ .*
+ 202328 0+ 0+ +.*
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.td b/ld/testsuite/ld-sparc/tlssunbin64.td
index 57b5afa..f7eef83 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.td
+++ b/ld/testsuite/ld-sparc/tlssunbin64.td
@@ -7,5 +7,9 @@
.*: +file format elf64-sparc
Contents of section .tdata:
-# FIXME
-#pass
+ 2021a4 00000011 00000012 00000013 00000014 .*
+ 2021b4 00000015 00000016 00000017 00000018 .*
+ 2021c4 00000041 00000042 00000043 00000044 .*
+ 2021d4 00000045 00000046 00000047 00000048 .*
+ 2021e4 00000101 00000102 00000103 00000104 .*
+ 2021f4 00000105 00000106 00000107 00000108 .*
diff --git a/ld/testsuite/ld-sparc/tlssunnopic64.dd b/ld/testsuite/ld-sparc/tlssunnopic64.dd
index 742449e..4443a94 100644
--- a/ld/testsuite/ld-sparc/tlssunnopic64.dd
+++ b/ld/testsuite/ld-sparc/tlssunnopic64.dd
@@ -8,5 +8,81 @@
.*: +file format elf64-sparc
Disassembly of section .text:
-# FIXME
+
+0+1000 <fn3>:
+ +1000: 9d e3 bf 60 save %sp, -160, %sp
+ +1004: 23 00 00 00 sethi %hi\(0\), %l1
+ +1008: 25 00 00 00 sethi %hi\(0\), %l2
+ +100c: a2 14 60 00 mov %l1, %l1
+ +1010: a4 14 a0 00 mov %l2, %l2
+ +1014: a3 2c 70 20 sllx %l1, 0x20, %l1
+ +1018: a2 04 40 12 add %l1, %l2, %l1
+ +101c: 01 00 00 00 nop *
+ +1020: 01 00 00 00 nop *
+ +1024: 01 00 00 00 nop *
+ +1028: 01 00 00 00 nop *
+ +102c: 17 00 00 00 sethi %hi\(0\), %o3
+ +1030: 96 02 e0 18 add %o3, 0x18, %o3 ! 18 <.*>
+ +1034: d4 5c 40 0b ldx \[ %l1 \+ %o3 \], %o2
+ +1038: 98 01 c0 0a add %g7, %o2, %o4
+ +103c: 01 00 00 00 nop *
+ +1040: 01 00 00 00 nop *
+ +1044: 01 00 00 00 nop *
+ +1048: 01 00 00 00 nop *
+ +104c: 11 00 00 00 sethi %hi\(0\), %o0
+ +1050: 90 02 20 20 add %o0, 0x20, %o0 ! 20 <.*>
+ +1054: d0 5c 40 08 ldx \[ %l1 \+ %o0 \], %o0
+ +1058: d0 01 c0 08 ld \[ %g7 \+ %o0 \], %o0
+ +105c: 01 00 00 00 nop *
+ +1060: 01 00 00 00 nop *
+ +1064: 01 00 00 00 nop *
+ +1068: 01 00 00 00 nop *
+ +106c: 11 00 00 00 sethi %hi\(0\), %o0
+ +1070: 90 02 20 28 add %o0, 0x28, %o0 ! 28 <.*>
+ +1074: d0 5c 40 08 ldx \[ %l1 \+ %o0 \], %o0
+ +1078: 90 01 c0 08 add %g7, %o0, %o0
+ +107c: 01 00 00 00 nop *
+ +1080: 01 00 00 00 nop *
+ +1084: 01 00 00 00 nop *
+ +1088: 01 00 00 00 nop *
+ +108c: 1b 00 00 00 sethi %hi\(0\), %o5
+ +1090: 92 03 60 30 add %o5, 0x30, %o1 ! 30 <.*>
+ +1094: d4 5c 40 09 ldx \[ %l1 \+ %o1 \], %o2
+ +1098: d6 29 c0 0a stb %o3, \[ %g7 \+ %o2 \]
+ +109c: 01 00 00 00 nop *
+ +10a0: 01 00 00 00 nop *
+ +10a4: 01 00 00 00 nop *
+ +10a8: 01 00 00 00 nop *
+ +10ac: 11 00 00 00 sethi %hi\(0\), %o0
+ +10b0: 90 02 20 08 add %o0, 8, %o0 ! 8 <.*>
+ +10b4: d0 5c 40 08 ldx \[ %l1 \+ %o0 \], %o0
+ +10b8: 90 01 c0 08 add %g7, %o0, %o0
+ +10bc: 01 00 00 00 nop *
+ +10c0: 01 00 00 00 nop *
+ +10c4: 01 00 00 00 nop *
+ +10c8: 01 00 00 00 nop *
+ +10cc: 1b 00 00 00 sethi %hi\(0\), %o5
+ +10d0: 92 03 60 10 add %o5, 0x10, %o1 ! 10 <.*>
+ +10d4: d4 5c 40 09 ldx \[ %l1 \+ %o1 \], %o2
+ +10d8: d6 29 c0 0a stb %o3, \[ %g7 \+ %o2 \]
+ +10dc: 01 00 00 00 nop *
+ +10e0: 01 00 00 00 nop *
+ +10e4: 01 00 00 00 nop *
+ +10e8: 01 00 00 00 nop *
+ +10ec: 15 00 00 00 sethi %hi\(0\), %o2
+ +10f0: 98 1a a0 00 xor %o2, 0, %o4
+ +10f4: 90 01 c0 0c add %g7, %o4, %o0
+ +10f8: 01 00 00 00 nop *
+ +10fc: 01 00 00 00 nop *
+ +1100: 01 00 00 00 nop *
+ +1104: 01 00 00 00 nop *
+ +1108: 15 00 00 00 sethi %hi\(0\), %o2
+ +110c: 94 1a a0 00 xor %o2, 0, %o2
+ +1110: d4 01 c0 0a ld \[ %g7 \+ %o2 \], %o2
+ +1114: 01 00 00 00 nop *
+ +1118: 01 00 00 00 nop *
+ +111c: 01 00 00 00 nop *
+ +1120: 01 00 00 00 nop *
+ +1124: 81 cf e0 08 rett %i7 \+ 8
+ +1128: 01 00 00 00 nop *
#pass
diff --git a/ld/testsuite/ld-sparc/tlssunnopic64.rd b/ld/testsuite/ld-sparc/tlssunnopic64.rd
index cbfd4aa..c12918e 100644
--- a/ld/testsuite/ld-sparc/tlssunnopic64.rd
+++ b/ld/testsuite/ld-sparc/tlssunnopic64.rd
@@ -5,5 +5,100 @@
#readelf: -WSsrl
#target: sparc-*-*
-# FIXME
-#pass
+There are 13 section headers, starting at offset 0x[0-9a-f]+:
+
+Section Headers:
+ +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+ +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+ +\[ 1\] .hash +.*
+ +\[ 2\] .dynsym +.*
+ +\[ 3\] .dynstr +.*
+ +\[ 4\] .rela.dyn +.*
+ +\[ 5\] .text +PROGBITS +0+1000 0+1000 0+1000 0+ +AX +0 +0 4096
+ +\[ 6\] .tbss +NOBITS +0+102000 0+2000 0+24 0+ WAT +0 +0 +4
+ +\[ 7\] .dynamic +DYNAMIC +0+102000 0+2000 0+100 10 +WA +3 +0 +8
+ +\[ 8\] .got +PROGBITS +0+102100 0+2100 0+38 08 +WA +0 +0 +8
+ +\[ 9\] .plt +.*
+ +\[10\] .shstrtab +.*
+ +\[11\] .symtab +.*
+ +\[12\] .strtab +.*
+#...
+Elf file type is DYN \(Shared object file\)
+Entry point 0x1000
+There are 4 program headers, starting at offset [0-9a-f]+
+
+Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000
+ +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+200 0x0+200 RWE 0x100000
+ +DYNAMIC +0x0+2000 0x0+102000 0x0+102000 0x0+100 0x0+100 RW +0x8
+ +TLS +0x0+2000 0x0+102000 0x0+102000 0x0+ 0x0+24 R +0x4
+#...
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+0+1004 +0+300000022 R_SPARC_HH22 +0+102100 +\.got \+ 102100
+0+1008 +0+300000024 R_SPARC_LM22 +0+102100 +\.got \+ 102100
+0+100c +0+300000023 R_SPARC_HM10 +0+102100 +\.got \+ 102100
+0+1010 +0+30000000c R_SPARC_LO10 +0+102100 +\.got \+ 102100
+0+10ec +0+48 R_SPARC_TLS_LE_HIX22 +0+9
+0+10f0 +0+49 R_SPARC_TLS_LE_LOX10 +0+9
+0+1108 +0+48 R_SPARC_TLS_LE_HIX22 +0+1c
+0+110c +0+49 R_SPARC_TLS_LE_LOX10 +0+1c
+0+102108 +0+4f R_SPARC_TLS_TPOFF64 +0+
+0+102110 +0+4f R_SPARC_TLS_TPOFF64 +0+4
+0+102128 +0+4f R_SPARC_TLS_TPOFF64 +0+14
+0+102130 +0+4f R_SPARC_TLS_TPOFF64 +0+18
+0+102118 +0+90000004f R_SPARC_TLS_TPOFF64 +0+ +sg1 \+ 0
+0+102120 +0+b0000004f R_SPARC_TLS_TPOFF64 +0+ +sg2 \+ 0
+
+Symbol table '.dynsym' contains 14 entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+ +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +4: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +5: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +6: 0+102000 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +7: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3
+ +8: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
+ +9: 0+ +0 TLS +GLOBAL DEFAULT +UND sg1
+ +10: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +11: 0+ +0 TLS +GLOBAL DEFAULT +UND sg2
+ +12: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +13: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+
+Symbol table '.symtab' contains 31 entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+ +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
+ +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
+ +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
+ +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
+ +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
+ +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
+ +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
+ +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
+ +[0-9]+: 0+ +0 TLS +LOCAL +DEFAULT +6 bl1
+ +[0-9]+: 0+4 +0 TLS +LOCAL +DEFAULT +6 bl2
+ +[0-9]+: 0+8 +0 TLS +LOCAL +DEFAULT +6 bl3
+ +[0-9]+: 0+c +0 TLS +LOCAL +DEFAULT +6 bl4
+ +[0-9]+: 0+10 +0 TLS +LOCAL +DEFAULT +6 bl5
+ +[0-9]+: 0+1c +0 TLS +LOCAL +HIDDEN +6 sh3
+ +[0-9]+: 0+20 +0 TLS +LOCAL +HIDDEN +6 sh4
+ +[0-9]+: 0+14 +0 TLS +LOCAL +HIDDEN +6 sh1
+ +[0-9]+: 0+102100 +0 OBJECT +LOCAL +HIDDEN +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+18 +0 TLS +LOCAL +HIDDEN +6 sh2
+ +[0-9]+: 0+102000 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sg1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +UND sg2
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
diff --git a/ld/testsuite/ld-sparc/tlssunnopic64.sd b/ld/testsuite/ld-sparc/tlssunnopic64.sd
index b288764..423b90c 100644
--- a/ld/testsuite/ld-sparc/tlssunnopic64.sd
+++ b/ld/testsuite/ld-sparc/tlssunnopic64.sd
@@ -8,5 +8,7 @@
.*: file format elf64-sparc
Contents of section \.got:
-# FIXME
-#pass
+ 102100 0+ 0+102000 0+ 0+ .*
+ 102110 0+ 0+ 0+ 0+ .*
+ 102120 0+ 0+ 0+ 0+ .*
+ 102130 0+ 0+ .*
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.dd b/ld/testsuite/ld-sparc/tlssunpic64.dd
index a1f97d9..0b41b68 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic64.dd
@@ -8,5 +8,213 @@
.*: +file format elf64-sparc
Disassembly of section .text:
-# FIXME
+
+0+1000 <fn1-0x8>:
+ +1000: 81 c3 e0 08 retl *
+ +1004: ae 03 c0 17 add %o7, %l7, %l7
+
+0+1008 <fn1>:
+ +1008: 9d e3 bf 60 save %sp, -160, %sp
+ +100c: 2f 00 04 04 sethi %hi\(0x101000\), %l7
+ +1010: 7f ff ff fc call 1000 <.*>
+ +1014: ae 05 e1 80 add %l7, 0x180, %l7 ! 101180 <.*>
+ +1018: 01 00 00 00 nop *
+ +101c: 01 00 00 00 nop *
+ +1020: 01 00 00 00 nop *
+ +1024: 01 00 00 00 nop *
+ +1028: 23 00 00 00 sethi %hi\(0\), %l1
+ +102c: 01 00 00 00 nop *
+ +1030: a4 04 60 58 add %l1, 0x58, %l2
+ +1034: 01 00 00 00 nop *
+ +1038: 90 05 c0 12 add %l7, %l2, %o0
+ +103c: 01 00 00 00 nop *
+ +1040: 40 04 04 d0 call [0-9a-f]+ <__tls_get_addr@plt>
+ +1044: 01 00 00 00 nop *
+ +1048: 01 00 00 00 nop *
+ +104c: 01 00 00 00 nop *
+ +1050: 01 00 00 00 nop *
+ +1054: 01 00 00 00 nop *
+ +1058: 11 00 00 00 sethi %hi\(0\), %o0
+ +105c: 92 02 20 78 add %o0, 0x78, %o1 ! 78 <.*>
+ +1060: d0 5d c0 09 ldx \[ %l7 \+ %o1 \], %o0
+ +1064: 90 01 c0 08 add %g7, %o0, %o0
+ +1068: 01 00 00 00 nop *
+ +106c: 01 00 00 00 nop *
+ +1070: 01 00 00 00 nop *
+ +1074: 01 00 00 00 nop *
+ +1078: 01 00 00 00 nop *
+ +107c: 19 00 00 00 sethi %hi\(0\), %o4
+ +1080: 98 03 20 08 add %o4, 8, %o4 ! 8 <.*>
+ +1084: 90 05 c0 0c add %l7, %o4, %o0
+ +1088: 40 04 04 be call [0-9a-f]+ <__tls_get_addr@plt>
+ +108c: 01 00 00 00 nop *
+ +1090: 01 00 00 00 nop *
+ +1094: 01 00 00 00 nop *
+ +1098: 01 00 00 00 nop *
+ +109c: 01 00 00 00 nop *
+ +10a0: 11 00 00 00 sethi %hi\(0\), %o0
+ +10a4: 90 02 20 18 add %o0, 0x18, %o0 ! 18 <.*>
+ +10a8: d0 5d c0 08 ldx \[ %l7 \+ %o0 \], %o0
+ +10ac: 90 01 c0 08 add %g7, %o0, %o0
+ +10b0: 01 00 00 00 nop *
+ +10b4: 01 00 00 00 nop *
+ +10b8: 01 00 00 00 nop *
+ +10bc: 01 00 00 00 nop *
+ +10c0: 01 00 00 00 nop *
+ +10c4: 19 00 00 00 sethi %hi\(0\), %o4
+ +10c8: 98 03 20 80 add %o4, 0x80, %o4 ! 80 <.*>
+ +10cc: 90 05 c0 0c add %l7, %o4, %o0
+ +10d0: 40 04 04 ac call [0-9a-f]+ <__tls_get_addr@plt>
+ +10d4: 01 00 00 00 nop *
+ +10d8: 01 00 00 00 nop *
+ +10dc: 01 00 00 00 nop *
+ +10e0: 01 00 00 00 nop *
+ +10e4: 01 00 00 00 nop *
+ +10e8: 11 00 00 00 sethi %hi\(0\), %o0
+ +10ec: 90 02 20 90 add %o0, 0x90, %o0 ! 90 <.*>
+ +10f0: d0 5d c0 08 ldx \[ %l7 \+ %o0 \], %o0
+ +10f4: 90 01 c0 08 add %g7, %o0, %o0
+ +10f8: 01 00 00 00 nop *
+ +10fc: 01 00 00 00 nop *
+ +1100: 01 00 00 00 nop *
+ +1104: 01 00 00 00 nop *
+ +1108: 01 00 00 00 nop *
+ +110c: 19 00 00 00 sethi %hi\(0\), %o4
+ +1110: 98 03 20 38 add %o4, 0x38, %o4 ! 38 <.*>
+ +1114: 90 05 c0 0c add %l7, %o4, %o0
+ +1118: 40 04 04 9a call [0-9a-f]+ <__tls_get_addr@plt>
+ +111c: 01 00 00 00 nop *
+ +1120: 01 00 00 00 nop *
+ +1124: 01 00 00 00 nop *
+ +1128: 01 00 00 00 nop *
+ +112c: 01 00 00 00 nop *
+ +1130: 11 00 00 00 sethi %hi\(0\), %o0
+ +1134: 90 02 20 48 add %o0, 0x48, %o0 ! 48 <.*>
+ +1138: d0 5d c0 08 ldx \[ %l7 \+ %o0 \], %o0
+ +113c: 90 01 c0 08 add %g7, %o0, %o0
+ +1140: 01 00 00 00 nop *
+ +1144: 01 00 00 00 nop *
+ +1148: 01 00 00 00 nop *
+ +114c: 01 00 00 00 nop *
+ +1150: 01 00 00 00 nop *
+ +1154: 23 00 00 00 sethi %hi\(0\), %l1
+ +1158: 01 00 00 00 nop *
+ +115c: a4 04 60 28 add %l1, 0x28, %l2
+ +1160: 01 00 00 00 nop *
+ +1164: 90 05 c0 12 add %l7, %l2, %o0
+ +1168: 01 00 00 00 nop *
+ +116c: 40 04 04 85 call [0-9a-f]+ <__tls_get_addr@plt>
+ +1170: 01 00 00 00 nop *
+ +1174: 27 00 00 00 sethi %hi\(0\), %l3
+ +1178: 01 00 00 00 nop *
+ +117c: a8 1c e0 20 xor %l3, 0x20, %l4
+ +1180: 01 00 00 00 nop *
+ +1184: aa 02 00 14 add %o0, %l4, %l5
+ +1188: 01 00 00 00 nop *
+ +118c: 25 00 00 00 sethi %hi\(0\), %l2
+ +1190: 01 00 00 00 nop *
+ +1194: a6 1c a0 26 xor %l2, 0x26, %l3
+ +1198: 01 00 00 00 nop *
+ +119c: ec 12 00 13 lduh \[ %o0 \+ %l3 \], %l6
+ +11a0: 01 00 00 00 nop *
+ +11a4: 01 00 00 00 nop *
+ +11a8: 01 00 00 00 nop *
+ +11ac: 01 00 00 00 nop *
+ +11b0: 13 00 00 00 sethi %hi\(0\), %o1
+ +11b4: 27 00 00 00 sethi %hi\(0\), %l3
+ +11b8: 94 02 60 28 add %o1, 0x28, %o2
+ +11bc: 25 00 00 00 sethi %hi\(0\), %l2
+ +11c0: 90 05 c0 0a add %l7, %o2, %o0
+ +11c4: a8 1c e0 40 xor %l3, 0x40, %l4
+ +11c8: 40 04 04 6e call [0-9a-f]+ <__tls_get_addr@plt>
+ +11cc: a6 1c a0 45 xor %l2, 0x45, %l3
+ +11d0: ea 5a 00 14 ldx \[ %o0 \+ %l4 \], %l5
+ +11d4: ac 02 00 13 add %o0, %l3, %l6
+ +11d8: 01 00 00 00 nop *
+ +11dc: 01 00 00 00 nop *
+ +11e0: 01 00 00 00 nop *
+ +11e4: 01 00 00 00 nop *
+ +11e8: 13 00 00 00 sethi %hi\(0\), %o1
+ +11ec: 27 00 00 00 sethi %hi\(0\), %l3
+ +11f0: 94 02 60 28 add %o1, 0x28, %o2
+ +11f4: 25 00 00 00 sethi %hi\(0\), %l2
+ +11f8: 90 05 c0 0a add %l7, %o2, %o0
+ +11fc: a8 1c e0 63 xor %l3, 0x63, %l4
+ +1200: 40 04 04 60 call [0-9a-f]+ <__tls_get_addr@plt>
+ +1204: a6 1c a0 64 xor %l2, 0x64, %l3
+ +1208: aa 02 00 14 add %o0, %l4, %l5
+ +120c: ec 02 00 13 ld \[ %o0 \+ %l3 \], %l6
+ +1210: 01 00 00 00 nop *
+ +1214: 01 00 00 00 nop *
+ +1218: 01 00 00 00 nop *
+ +121c: 01 00 00 00 nop *
+ +1220: 23 00 00 00 sethi %hi\(0\), %l1
+ +1224: 01 00 00 00 nop *
+ +1228: a4 04 60 78 add %l1, 0x78, %l2
+ +122c: 01 00 00 00 nop *
+ +1230: e4 5d c0 12 ldx \[ %l7 \+ %l2 \], %l2
+ +1234: 01 00 00 00 nop *
+ +1238: a4 01 c0 12 add %g7, %l2, %l2
+ +123c: 01 00 00 00 nop *
+ +1240: 01 00 00 00 nop *
+ +1244: 01 00 00 00 nop *
+ +1248: 01 00 00 00 nop *
+ +124c: 17 00 00 00 sethi %hi\(0\), %o3
+ +1250: 96 02 e0 18 add %o3, 0x18, %o3 ! 18 <.*>
+ +1254: d4 5d c0 0b ldx \[ %l7 \+ %o3 \], %o2
+ +1258: 98 01 c0 0a add %g7, %o2, %o4
+ +125c: 01 00 00 00 nop *
+ +1260: 01 00 00 00 nop *
+ +1264: 01 00 00 00 nop *
+ +1268: 01 00 00 00 nop *
+ +126c: 23 00 00 00 sethi %hi\(0\), %l1
+ +1270: a4 04 60 90 add %l1, 0x90, %l2 ! 90 <.*>
+ +1274: e4 5d c0 12 ldx \[ %l7 \+ %l2 \], %l2
+ +1278: a4 01 c0 12 add %g7, %l2, %l2
+ +127c: 01 00 00 00 nop *
+ +1280: 01 00 00 00 nop *
+ +1284: 01 00 00 00 nop *
+ +1288: 01 00 00 00 nop *
+ +128c: 23 00 00 00 sethi %hi\(0\), %l1
+ +1290: a4 04 60 48 add %l1, 0x48, %l2 ! 48 <.*>
+ +1294: e4 5d c0 12 ldx \[ %l7 \+ %l2 \], %l2
+ +1298: a4 01 c0 12 add %g7, %l2, %l2
+ +129c: 01 00 00 00 nop *
+ +12a0: 01 00 00 00 nop *
+ +12a4: 01 00 00 00 nop *
+ +12a8: 01 00 00 00 nop *
+ +12ac: 23 00 00 00 sethi %hi\(0\), %l1
+ +12b0: a4 04 60 50 add %l1, 0x50, %l2 ! 50 <.*>
+ +12b4: e4 5d c0 12 ldx \[ %l7 \+ %l2 \], %l2
+ +12b8: e4 59 c0 12 ldx \[ %g7 \+ %l2 \], %l2
+ +12bc: 01 00 00 00 nop *
+ +12c0: 01 00 00 00 nop *
+ +12c4: 01 00 00 00 nop *
+ +12c8: 01 00 00 00 nop *
+ +12cc: 17 00 00 00 sethi %hi\(0\), %o3
+ +12d0: 98 02 e0 20 add %o3, 0x20, %o4 ! 20 <.*>
+ +12d4: da 5d c0 0c ldx \[ %l7 \+ %o4 \], %o5
+ +12d8: e4 29 c0 0d stb %l2, \[ %g7 \+ %o5 \]
+ +12dc: 01 00 00 00 nop *
+ +12e0: 01 00 00 00 nop *
+ +12e4: 01 00 00 00 nop *
+ +12e8: 01 00 00 00 nop *
+ +12ec: 17 00 00 00 sethi %hi\(0\), %o3
+ +12f0: 98 02 e0 68 add %o3, 0x68, %o4 ! 68 <.*>
+ +12f4: da 5d c0 0c ldx \[ %l7 \+ %o4 \], %o5
+ +12f8: e4 71 c0 0d stx %l2, \[ %g7 \+ %o5 \]
+ +12fc: 01 00 00 00 nop *
+ +1300: 01 00 00 00 nop *
+ +1304: 01 00 00 00 nop *
+ +1308: 01 00 00 00 nop *
+ +130c: 17 00 00 00 sethi %hi\(0\), %o3
+ +1310: 98 02 e0 70 add %o3, 0x70, %o4 ! 70 <.*>
+ +1314: da 5d c0 0c ldx \[ %l7 \+ %o4 \], %o5
+ +1318: e4 21 c0 0d st %l2, \[ %g7 \+ %o5 \]
+ +131c: 01 00 00 00 nop *
+ +1320: 01 00 00 00 nop *
+ +1324: 01 00 00 00 nop *
+ +1328: 01 00 00 00 nop *
+ +132c: 81 cf e0 08 rett %i7 \+ 8
+ +1330: 01 00 00 00 nop *
#pass
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.rd b/ld/testsuite/ld-sparc/tlssunpic64.rd
index 9d56f70..6b395a9 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.rd
+++ b/ld/testsuite/ld-sparc/tlssunpic64.rd
@@ -5,5 +5,139 @@
#readelf: -WSsrl
#target: sparc*-*-*
-# FIXME
-#pass
+There are 15 section headers, starting at offset 0x[0-9a-f]+:
+
+Section Headers:
+ +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+ +\[ 0\] +NULL +0+ 0+ 0+ 0+ +0 +0 +0
+ +\[ 1\] .hash +.*
+ +\[ 2\] .dynsym +.*
+ +\[ 3\] .dynstr +.*
+ +\[ 4\] .rela.dyn +.*
+ +\[ 5\] .rela.plt +.*
+ +\[ 6\] .text +PROGBITS +0+1000 0+1000 0+1000 0+ +AX +0 +0 4096
+ +\[ 7\] .tdata +PROGBITS +0+102000 0+2000 0+60 0+ WAT +0 +0 +4
+ +\[ 8\] .tbss +NOBITS +0+102060 0+2060 0+20 0+ WAT +0 +0 +4
+ +\[ 9\] .dynamic +DYNAMIC +0+102060 0+2060 0+130 10 +WA +3 +0 +8
+ +\[10\] .got +PROGBITS +0+102190 0+2190 0+98 08 +WA +0 +0 +8
+ +\[11\] .plt +.*
+ +\[12\] .shstrtab +.*
+ +\[13\] .symtab +.*
+ +\[14\] .strtab +.*
+#...
+
+Elf file type is DYN \(Shared object file\)
+Entry point 0x1000
+There are 4 program headers, starting at offset [0-9]+
+
+Program Headers:
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+ +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000
+ +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+3a0 0x0+3a0 RWE 0x100000
+ +DYNAMIC +0x0+2060 0x0+102060 0x0+102060 0x0+130 0x0+130 RW +0x8
+ +TLS +0x0+2000 0x0+102000 0x0+102000 0x0+60 0x0+80 R +0x4
+#...
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 14 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+0+102198 +0+4b R_SPARC_TLS_DTPMOD64 +0+
+0+1021a8 +0+4f R_SPARC_TLS_TPOFF64 +0+24
+0+1021b0 +0+4f R_SPARC_TLS_TPOFF64 +0+30
+0+1021b8 +0+4b R_SPARC_TLS_DTPMOD64 +0+
+0+1021c8 +0+4b R_SPARC_TLS_DTPMOD64 +0+
+0+1021d8 +0+4f R_SPARC_TLS_TPOFF64 +0+64
+0+1021f8 +0+4f R_SPARC_TLS_TPOFF64 +0+50
+0+102200 +0+4f R_SPARC_TLS_TPOFF64 +0+70
+0+102210 +0+4b R_SPARC_TLS_DTPMOD64 +0+
+0+102220 +0+4f R_SPARC_TLS_TPOFF64 +0+44
+0+1021e0 +0+b0000004f R_SPARC_TLS_TPOFF64 +0+10 +sg5 \+ 0
+0+1021e8 +0+e0000004b R_SPARC_TLS_DTPMOD64 +0+ +sg1 \+ 0
+0+1021f0 +0+e0000004d R_SPARC_TLS_DTPOFF64 +0+ +sg1 \+ 0
+0+102208 +0+110000004f R_SPARC_TLS_TPOFF64 +0+4 +sg2 \+ 0
+
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+0+102380 +0+d00000015 R_SPARC_JMP_SLOT +0+ +__tls_get_addr \+ 0
+
+Symbol table '.dynsym' contains 22 entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+ +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[0-9]+: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +7 sg8
+ +[0-9]+: 0+102060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +7 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +7 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +7 sg5
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +7 sg1
+ +[0-9]+: 0+1008 +0 FUNC +GLOBAL DEFAULT +6 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +7 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +7 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +7 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
+
+Symbol table '.symtab' contains 55 entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+ +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 *
+ +[0-9]+: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 *
+ +[0-9]+: 0+20 +0 TLS +LOCAL +DEFAULT +7 sl1
+ +[0-9]+: 0+24 +0 TLS +LOCAL +DEFAULT +7 sl2
+ +[0-9]+: 0+28 +0 TLS +LOCAL +DEFAULT +7 sl3
+ +[0-9]+: 0+2c +0 TLS +LOCAL +DEFAULT +7 sl4
+ +[0-9]+: 0+30 +0 TLS +LOCAL +DEFAULT +7 sl5
+ +[0-9]+: 0+34 +0 TLS +LOCAL +DEFAULT +7 sl6
+ +[0-9]+: 0+38 +0 TLS +LOCAL +DEFAULT +7 sl7
+ +[0-9]+: 0+3c +0 TLS +LOCAL +DEFAULT +7 sl8
+ +[0-9]+: 0+60 +0 TLS +LOCAL +HIDDEN +8 sH1
+ +[0-9]+: 0+48 +0 TLS +LOCAL +HIDDEN +7 sh3
+ +[0-9]+: 0+64 +0 TLS +LOCAL +HIDDEN +8 sH2
+ +[0-9]+: 0+78 +0 TLS +LOCAL +HIDDEN +8 sH7
+ +[0-9]+: 0+58 +0 TLS +LOCAL +HIDDEN +7 sh7
+ +[0-9]+: 0+5c +0 TLS +LOCAL +HIDDEN +7 sh8
+ +[0-9]+: 0+6c +0 TLS +LOCAL +HIDDEN +8 sH4
+ +[0-9]+: 0+4c +0 TLS +LOCAL +HIDDEN +7 sh4
+ +[0-9]+: 0+68 +0 TLS +LOCAL +HIDDEN +8 sH3
+ +[0-9]+: 0+50 +0 TLS +LOCAL +HIDDEN +7 sh5
+ +[0-9]+: 0+70 +0 TLS +LOCAL +HIDDEN +8 sH5
+ +[0-9]+: 0+74 +0 TLS +LOCAL +HIDDEN +8 sH6
+ +[0-9]+: 0+7c +0 TLS +LOCAL +HIDDEN +8 sH8
+ +[0-9]+: 0+40 +0 TLS +LOCAL +HIDDEN +7 sh1
+ +[0-9]+: 0+102190 +0 OBJECT +LOCAL HIDDEN +ABS _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+44 +0 TLS +LOCAL +HIDDEN +7 sh2
+ +[0-9]+: 0+54 +0 TLS +LOCAL +HIDDEN +7 sh6
+ +[0-9]+: 0+1c +0 TLS +GLOBAL DEFAULT +7 sg8
+ +[0-9]+: 0+102060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC
+ +[0-9]+: 0+8 +0 TLS +GLOBAL DEFAULT +7 sg3
+ +[0-9]+: 0+c +0 TLS +GLOBAL DEFAULT +7 sg4
+ +[0-9]+: 0+10 +0 TLS +GLOBAL DEFAULT +7 sg5
+ +[0-9]+: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _PROCEDURE_LINKAGE_TABLE_
+ +[0-9]+: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr
+ +[0-9]+: 0+ +0 TLS +GLOBAL DEFAULT +7 sg1
+ +[0-9]+: 0+1008 +0 FUNC +GLOBAL DEFAULT +6 fn1
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start
+ +[0-9]+: 0+4 +0 TLS +GLOBAL DEFAULT +7 sg2
+ +[0-9]+: 0+14 +0 TLS +GLOBAL DEFAULT +7 sg6
+ +[0-9]+: 0+18 +0 TLS +GLOBAL DEFAULT +7 sg7
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata
+ +[0-9]+: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.sd b/ld/testsuite/ld-sparc/tlssunpic64.sd
index 83d4092..9061c2e 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.sd
+++ b/ld/testsuite/ld-sparc/tlssunpic64.sd
@@ -8,5 +8,13 @@
.*: +file format elf64-sparc
Contents of section .got:
-# FIXME
-#pass
+ 102190 00000000 00102060 00000000 00000000 .*
+ 1021a0 00000000 00000020 00000000 00000000 .*
+ 1021b0 00000000 00000000 00000000 00000000 .*
+ 1021c0 00000000 00000000 00000000 00000000 .*
+ 1021d0 00000000 00000060 00000000 00000000 .*
+ 1021e0 00000000 00000000 00000000 00000000 .*
+ 1021f0 00000000 00000000 00000000 00000000 .*
+ 102200 00000000 00000000 00000000 00000000 .*
+ 102210 00000000 00000000 00000000 00000040 .*
+ 102220 00000000 00000000 .*
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.td b/ld/testsuite/ld-sparc/tlssunpic64.td
index 77f6507..1e82d2b 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.td
+++ b/ld/testsuite/ld-sparc/tlssunpic64.td
@@ -8,5 +8,9 @@
.*: +file format elf64-sparc
Contents of section .tdata:
-# FIXME
-#pass
+ 102000 00000011 00000012 00000013 00000014 .*
+ 102010 00000015 00000016 00000017 00000018 .*
+ 102020 00000041 00000042 00000043 00000044 .*
+ 102030 00000045 00000046 00000047 00000048 .*
+ 102040 00000101 00000102 00000103 00000104 .*
+ 102050 00000105 00000106 00000107 00000108 .*