diff options
Diffstat (limited to 'ld/testsuite/ld-elf/tls_common.exp')
-rw-r--r-- | ld/testsuite/ld-elf/tls_common.exp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/ld/testsuite/ld-elf/tls_common.exp b/ld/testsuite/ld-elf/tls_common.exp index 92240bf..f546e43 100644 --- a/ld/testsuite/ld-elf/tls_common.exp +++ b/ld/testsuite/ld-elf/tls_common.exp @@ -41,17 +41,19 @@ global srcdir global subdir global link_output -if { ![ld_assemble $as $srcdir/$subdir/tls_common.s tmpdir/tls_common.o ] } { +if { ![ld_assemble $as "--elf-stt-common=no $srcdir/$subdir/tls_common.s" tmpdir/tls_commona.o] + || ![ld_assemble $as "--elf-stt-common=yes $srcdir/$subdir/tls_common.s" tmpdir/tls_commonb.o] } { unresolved "tls_common" return } -if { ![ld_simple_link $ld tmpdir/tls_common1.o "-r tmpdir/tls_common.o"] } { +if { ![ld_simple_link $ld tmpdir/tls_common1a.o "-r tmpdir/tls_commona.o"] + || ![ld_simple_link $ld tmpdir/tls_common1b.o "-r tmpdir/tls_commona.o"] } { fail "tls_common" return } -if { ![ld_simple_link $ld tmpdir/tls_common "tmpdir/tls_common1.o"] } { +if { ![ld_simple_link $ld tmpdir/tls_commona "tmpdir/tls_common1a.o"] } { if { [string match "*not supported*" $link_output] || [string match "*unrecognized option*" $link_output] } { unsupported "$ld_options is not supported by this target" @@ -63,7 +65,26 @@ if { ![ld_simple_link $ld tmpdir/tls_common "tmpdir/tls_common1.o"] } { return } -set readelf_output [run_host_cmd "$READELF" "-l --wide tmpdir/tls_common"] +if { ![ld_simple_link $ld tmpdir/tls_commonb "tmpdir/tls_common1b.o"] } { + if { [string match "*not supported*" $link_output] + || [string match "*unrecognized option*" $link_output] } { + unsupported "$ld_options is not supported by this target" + } elseif { [string match "*Warning*alignment*of common symbol*" $link_output] } { + fail "tls_common" + } else { + unresolved "tls_common" + } + return +} + +set readelf_output [run_host_cmd "$READELF" "-l --wide tmpdir/tls_commona"] +if ![regexp ".*TLS.*0x0+ 0x0+4 R .*" $readelf_output] then { + send_log "$readelf_output\n" + fail "tls_common" + return +} + +set readelf_output [run_host_cmd "$READELF" "-l --wide tmpdir/tls_commona"] if ![regexp ".*TLS.*0x0+ 0x0+4 R .*" $readelf_output] then { send_log "$readelf_output\n" fail "tls_common" |