ld testsuite: change unresolved to unsupported/fail
"unresolved" as a test result means runtest returns an error, which can be confusing when there is no apparent error unless you look in .log files. In particular many tests are skipped without reporting an error if no target C compiler is found, but if a target C compiler is found but won't compile a testcase for some reason we used to mark the test as unresolved. Which is no more worthy of an error than when lacking a C compiler entirely. * testsuite/ld-cdtest/cdtest.exp, * testsuite/ld-checks/checks.exp, * testsuite/ld-elf/binutils.exp, * testsuite/ld-elf/compress.exp, * testsuite/ld-elf/dwarf.exp, * testsuite/ld-elf/exclude.exp, * testsuite/ld-elf/frame.exp, * testsuite/ld-elf/indirect.exp, * testsuite/ld-elf/linux-x86.exp, * testsuite/ld-elf/sec-to-seg.exp, * testsuite/ld-elf/tls_common.exp, * testsuite/ld-elfcomm/elfcomm.exp, * testsuite/ld-elfvers/vers.exp, * testsuite/ld-elfvsb/elfvsb.exp, * testsuite/ld-elfweak/elfweak.exp, * testsuite/ld-ifunc/binutils.exp, * testsuite/ld-mips-elf/mips-elf-flags.exp, * testsuite/ld-misc/defsym.exp, * testsuite/ld-mn10300/mn10300.exp, * testsuite/ld-plugin/lto.exp, * testsuite/ld-plugin/plugin.exp, * testsuite/ld-scripts/align.exp, * testsuite/ld-scripts/assert.exp, * testsuite/ld-scripts/crossref.exp, * testsuite/ld-scripts/defined.exp, * testsuite/ld-scripts/extern.exp, * testsuite/ld-scripts/log2.exp, * testsuite/ld-scripts/map-address.exp, * testsuite/ld-scripts/phdrs.exp, * testsuite/ld-scripts/phdrs2.exp, * testsuite/ld-scripts/script.exp, * testsuite/ld-scripts/section-flags.exp, * testsuite/ld-scripts/sizeof.exp, * testsuite/ld-scripts/weak.exp, * testsuite/ld-selective/selective.exp, * testsuite/ld-sh/sh.exp, * testsuite/ld-shared/shared.exp, * testsuite/ld-srec/srec.exp, * testsuite/ld-tic6x/tic6x.exp, * testsuite/ld-undefined/undefined.exp, * testsuite/ld-undefined/weak-undef.exp, * testsuite/lib/ld-lib.exp: Don't use unresolved except after perror. Instead report "unsupported" or "fail".
This commit is contained in:
parent
f5b2658b0f
commit
5b1f6c9570
46
ld/ChangeLog
46
ld/ChangeLog
@ -1,3 +1,49 @@
|
||||
2021-02-14 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/ld-cdtest/cdtest.exp,
|
||||
* testsuite/ld-checks/checks.exp,
|
||||
* testsuite/ld-elf/binutils.exp,
|
||||
* testsuite/ld-elf/compress.exp,
|
||||
* testsuite/ld-elf/dwarf.exp,
|
||||
* testsuite/ld-elf/exclude.exp,
|
||||
* testsuite/ld-elf/frame.exp,
|
||||
* testsuite/ld-elf/indirect.exp,
|
||||
* testsuite/ld-elf/linux-x86.exp,
|
||||
* testsuite/ld-elf/sec-to-seg.exp,
|
||||
* testsuite/ld-elf/tls_common.exp,
|
||||
* testsuite/ld-elfcomm/elfcomm.exp,
|
||||
* testsuite/ld-elfvers/vers.exp,
|
||||
* testsuite/ld-elfvsb/elfvsb.exp,
|
||||
* testsuite/ld-elfweak/elfweak.exp,
|
||||
* testsuite/ld-ifunc/binutils.exp,
|
||||
* testsuite/ld-mips-elf/mips-elf-flags.exp,
|
||||
* testsuite/ld-misc/defsym.exp,
|
||||
* testsuite/ld-mn10300/mn10300.exp,
|
||||
* testsuite/ld-plugin/lto.exp,
|
||||
* testsuite/ld-plugin/plugin.exp,
|
||||
* testsuite/ld-scripts/align.exp,
|
||||
* testsuite/ld-scripts/assert.exp,
|
||||
* testsuite/ld-scripts/crossref.exp,
|
||||
* testsuite/ld-scripts/defined.exp,
|
||||
* testsuite/ld-scripts/extern.exp,
|
||||
* testsuite/ld-scripts/log2.exp,
|
||||
* testsuite/ld-scripts/map-address.exp,
|
||||
* testsuite/ld-scripts/phdrs.exp,
|
||||
* testsuite/ld-scripts/phdrs2.exp,
|
||||
* testsuite/ld-scripts/script.exp,
|
||||
* testsuite/ld-scripts/section-flags.exp,
|
||||
* testsuite/ld-scripts/sizeof.exp,
|
||||
* testsuite/ld-scripts/weak.exp,
|
||||
* testsuite/ld-selective/selective.exp,
|
||||
* testsuite/ld-sh/sh.exp,
|
||||
* testsuite/ld-shared/shared.exp,
|
||||
* testsuite/ld-srec/srec.exp,
|
||||
* testsuite/ld-tic6x/tic6x.exp,
|
||||
* testsuite/ld-undefined/undefined.exp,
|
||||
* testsuite/ld-undefined/weak-undef.exp,
|
||||
* testsuite/lib/ld-lib.exp: Don't use unresolved except after
|
||||
perror. Instead report "unsupported" or "fail".
|
||||
|
||||
2021-02-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* testsuite/ld-elf/sec64k.exp: Stop readelf from automatically
|
||||
|
@ -41,8 +41,8 @@ if { [which $CXX] == 0 } {
|
||||
if { ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o]
|
||||
|| ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/cdtest-bar.cc tmpdir/cdtest-bar.o]
|
||||
|| ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/cdtest-main.cc tmpdir/cdtest-main.o] } {
|
||||
unresolved $test1
|
||||
unresolved $test2
|
||||
unsupported $test1
|
||||
unsupported $test2
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ proc section_check {} {
|
||||
set ldflags "$LDFLAGS --check-sections -e foo"
|
||||
|
||||
if { ![ld_assemble $as $srcdir/$subdir/asm.s tmpdir/asm.o]} {
|
||||
unresolved $test
|
||||
unsupported $test
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -53,17 +53,17 @@ proc binutils_test { prog_name ld_options test {test_name ""} {readelf_options "
|
||||
}
|
||||
|
||||
if { ![ld_assemble $as $srcdir/$subdir/$test.s tmpdir/$test.o ] } {
|
||||
unresolved "$test_name"
|
||||
unsupported "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ld_link $ld tmpdir/$test "$ld_options -z stack-size=0 tmpdir/$test.o"] } {
|
||||
if { [string match "*not supported*" $link_output]
|
||||
|| [string match "*unrecognized option*" $link_output]
|
||||
|| [string match "*-z relro ignored*" $link_output] } {
|
||||
|| [string match "*-z * ignored*" $link_output] } {
|
||||
unsupported "$ld_options is not supported by this target"
|
||||
} else {
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -72,7 +72,7 @@ proc binutils_test { prog_name ld_options test {test_name ""} {readelf_options "
|
||||
set got [remote_exec host "$READELF $readelf_options --wide tmpdir/$test" "" "/dev/null" "tmpdir/$test.exp"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
@ -134,7 +134,7 @@ proc binutils_test { prog_name ld_options test {test_name ""} {readelf_options "
|
||||
set got [remote_exec host "$READELF $readelf_options --wide tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ send_log "$READELF -S -W tmpdir/$test.o > tmpdir/$test.out\n"
|
||||
set got [remote_exec host "$READELF -S -W tmpdir/$test.o" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then {
|
||||
fail "$test_name"
|
||||
@ -143,7 +143,7 @@ send_log "$READELF -S -W tmpdir/$test.o > tmpdir/$test.out\n"
|
||||
set got [remote_exec host "$READELF -S -W tmpdir/$test.o" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then {
|
||||
fail "$test_name"
|
||||
@ -157,7 +157,7 @@ send_log "$READELF -t -W tmpdir/$test.o > tmpdir/$test.out\n"
|
||||
set got [remote_exec host "$READELF -t -W tmpdir/$test.o" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rt] } then {
|
||||
fail "$test_name"
|
||||
@ -171,7 +171,7 @@ send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n"
|
||||
set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
|
||||
set test_name "Link with zlib compressed debug output 2"
|
||||
@ -180,7 +180,7 @@ send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$te
|
||||
set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [catch {exec cmp tmpdir/normal.out tmpdir/$test.out}] } then {
|
||||
send_log "tmpdir/normal.out tmpdir/$test.out differ.\n"
|
||||
@ -193,7 +193,7 @@ send_log "$READELF -S -W tmpdir/$test' > tmpdir/$test.out\n"
|
||||
set got [remote_exec host "$READELF -S -W tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then {
|
||||
fail "$test_name"
|
||||
@ -207,7 +207,7 @@ send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$te
|
||||
set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out"]] "" "/dev/null"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [catch {exec cmp tmpdir/normal.out tmpdir/$test.out}] } then {
|
||||
send_log "tmpdir/normal.out tmpdir/$test.out differ.\n"
|
||||
@ -220,7 +220,7 @@ send_log "$READELF -S -W tmpdir/$test' > tmpdir/$test.out\n"
|
||||
set got [remote_exec host "$READELF -S -W tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then {
|
||||
fail "$test_name"
|
||||
@ -234,7 +234,7 @@ send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n"
|
||||
set got [remote_exec host [concat sh -c [list "$READELF -w tmpdir/$test > tmpdir/$test.out"]] "" "/dev/null"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [catch {exec cmp tmpdir/normal.out tmpdir/$test.out}] } then {
|
||||
send_log "tmpdir/normal.out tmpdir/$test.out differ.\n"
|
||||
@ -247,7 +247,7 @@ send_log "$READELF -t -W tmpdir/$test > tmpdir/$test.out\n"
|
||||
set got [remote_exec host "$READELF -t -W tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rt] } then {
|
||||
fail "$test_name"
|
||||
|
@ -85,7 +85,7 @@ proc strip_test {} {
|
||||
set prog $strip
|
||||
|
||||
if ![ld_link $ld tmpdir/$test "-shared tmpdir/dwarf1.o"] {
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ proc strip_test {} {
|
||||
catch "exec $NM -D tmpdir/$test > tmpdir/$test.exp" got
|
||||
if ![string match "" $got] then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ proc strip_test {} {
|
||||
catch "exec $NM -D tmpdir/$test > tmpdir/$test.out" got
|
||||
if ![string match "" $got] then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -51,14 +51,14 @@ set test9 "ld don't exclude symbols from archive - --exclude-libs foo:bar"
|
||||
|
||||
if { ![ld_assemble_flags $as $as_opt $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
|
||||
|| ![ld_assemble_flags $as $as_opt $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
|
||||
unresolved $test1
|
||||
unsupported $test1
|
||||
return
|
||||
}
|
||||
|
||||
remote_file host delete "tmpdir/libexclude.a"
|
||||
set catch_output [run_host_cmd "$ar" "cq tmpdir/libexclude.a tmpdir/exclude2.o"]
|
||||
if {![string match "" $catch_output]} {
|
||||
unresolved $test1
|
||||
fail $test1
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ set test2 "read-only .gcc_except_table section"
|
||||
|
||||
if { ![ld_assemble_flags $as $as_opt $srcdir/$subdir/tbss.s tmpdir/tbss.o ]
|
||||
|| ![ld_assemble_flags $as $as_opt $srcdir/$subdir/frame.s tmpdir/frame.o] } {
|
||||
unresolved "$test1"
|
||||
unsupported "$test1"
|
||||
return
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ if { [ld_link $ld tmpdir/frame.so "-z separate-code --shared tmpdir/frame.o tmpd
|
||||
}
|
||||
|
||||
if ![ld_assemble_flags $as $as_opt $srcdir/$subdir/table.s tmpdir/table.o ] {
|
||||
unresolved "$test2"
|
||||
unsupported "$test2"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ if { ![ld_compile $cc_cmd $srcdir/$subdir/indirect1a.c tmpdir/indirect1a.o]
|
||||
|| ![ld_compile "$cc_cmd -fPIC" $srcdir/$subdir/pr19553c.c tmpdir/pr19553c.o]
|
||||
|| ![ld_compile "$cc_cmd -fPIC" $srcdir/$subdir/pr19553b.c tmpdir/pr19553b.o]
|
||||
|| ![ld_compile $cc_cmd $srcdir/$subdir/pr19553a.c tmpdir/pr19553a.o] } {
|
||||
unresolved "Indirect symbol tests"
|
||||
unsupported "Indirect symbol tests"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -84,13 +84,13 @@ proc elfedit_test { options test output } {
|
||||
set got [remote_exec host "$ELFEDIT $options tmpdir/$test" "" "/dev/null"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
send_log "$READELF -n $options tmpdir/$test > tmpdir/$output.out\n"
|
||||
set got [remote_exec host "$READELF -n tmpdir/$test" "" "/dev/null" "tmpdir/$output.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
if { [regexp_diff tmpdir/$output.out $srcdir/$subdir/$output.rd] } then {
|
||||
fail "$test_name"
|
||||
|
@ -29,7 +29,7 @@ if {! [is_elf_format] } {
|
||||
|
||||
if { ! [ld_assemble $as $srcdir/$subdir/sec-to-seg1.s tmpdir/sec-to-seg1.o]
|
||||
|| ! [ld_assemble $as $srcdir/$subdir/sec-to-seg2.s tmpdir/sec-to-seg2.o]} then {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ if { !([istarget *-*-linux*]
|
||||
|
||||
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"
|
||||
unsupported "tls_common"
|
||||
return
|
||||
}
|
||||
|
||||
@ -46,10 +46,8 @@ if { ![ld_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"
|
||||
} elseif { [string match "*warning*alignment*of common symbol*" $link_output] } {
|
||||
fail "tls_common"
|
||||
} else {
|
||||
unresolved "tls_common"
|
||||
fail "tls_common"
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -58,10 +56,8 @@ if { ![ld_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"
|
||||
fail "tls_common"
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ proc test_sort_common {} {
|
||||
}
|
||||
|
||||
if { ![ld_assemble $as $srcdir/$subdir/sort-common.s tmpdir/sort-common.o] } {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -147,7 +147,7 @@ proc stt_common_test { options testname } {
|
||||
set options "$options tmpdir/common1c.o"
|
||||
|
||||
if { ! [ld_link $ld tmpdir/common.exe $options] } {
|
||||
unresolved $testname
|
||||
fail $testname
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -172,15 +172,14 @@ if [istarget nios2*-*-*] {
|
||||
if { ![ld_compile "$CC $CFLAGS -fcommon $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/common1a.c tmpdir/common1a.o]
|
||||
|| ![ld_compile "$CC $CFLAGS -fcommon $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/common1b.c tmpdir/common1b.o]
|
||||
|| ![ld_compile "$CC $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -Wa,--elf-stt-common=yes -fcommon" $srcdir/$subdir/common1b.c tmpdir/common1c.o] } {
|
||||
unresolved $test1
|
||||
unresolved $test1
|
||||
unsupported $test1
|
||||
return
|
||||
}
|
||||
|
||||
set options "-r tmpdir/common1a.o tmpdir/common1b.o"
|
||||
|
||||
if { [ld_link $ld tmpdir/common1.o $options] } {
|
||||
unresolved $test1w1
|
||||
fail $test1w1
|
||||
return
|
||||
}
|
||||
|
||||
@ -208,7 +207,7 @@ if { [dump_common1 $test1c1] } {
|
||||
set options "-r tmpdir/common1b.o tmpdir/common1a.o"
|
||||
|
||||
if { [ld_link $ld tmpdir/common1.o $options] } {
|
||||
unresolved $test1w2
|
||||
fail $test1w2
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ proc test_ar { test lib object expect } {
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
if ![string match "" $exec_output] {
|
||||
verbose -log "$exec_output"
|
||||
unresolved "$test"
|
||||
fail "$test"
|
||||
return
|
||||
}
|
||||
|
||||
@ -493,12 +493,12 @@ proc build_binary { shared pic test source libname other mapfile verexp versymex
|
||||
global NOLTO_CFLAGS
|
||||
|
||||
if ![ld_compile "$CC -S $pic $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/$source $tmpdir/$libname.s] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
if ![ld_assemble $as "$as_options $tmpdir/$libname.s" $tmpdir/$libname.o ] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
@ -589,12 +589,12 @@ proc test_ldfail { test flag source execname other mapfile whyfail } {
|
||||
}
|
||||
|
||||
if ![ld_compile "$CC -S $flag $CFLAGS" $srcdir/$subdir/$source $tmpdir/$execname.s] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
if ![ld_assemble $as "$as_options $tmpdir/$execname.s" $tmpdir/$execname.o ] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
@ -623,7 +623,7 @@ proc test_asfail { test flag source execname whyfail } {
|
||||
global NOLTO_CFLAGS
|
||||
|
||||
if ![ld_compile "$CC -S $flag $CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/$source $tmpdir/$execname.s] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
@ -706,12 +706,12 @@ proc build_exec { test source execname flags solibname verexp versymexp symexp }
|
||||
append cc_cmd " $NOSANITIZE_CFLAGS $NOLTO_CFLAGS"
|
||||
|
||||
if ![ld_compile $cc_cmd $srcdir/$subdir/$source $tmpdir/$execname.s] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
if ![ld_assemble $as "$as_options $tmpdir/$execname.s" $tmpdir/$execname.o ] {
|
||||
unresolved "$test"
|
||||
unsupported "$test"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -238,8 +238,8 @@ proc visibility_run {visibility} {
|
||||
# Compile the main program. Make sure that PLT is used since PLT
|
||||
# is expected.
|
||||
if ![ld_compile "$CC -g $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
|
||||
unresolved "visibility ($visibility) (non PIC)"
|
||||
unresolved "visibility ($visibility)"
|
||||
unsupported "visibility ($visibility) (non PIC)"
|
||||
unsupported "visibility ($visibility)"
|
||||
} else {
|
||||
# The shared library is composed of two files. First compile them
|
||||
# without using -fpic. That should work on an ELF system,
|
||||
@ -249,7 +249,7 @@ proc visibility_run {visibility} {
|
||||
# results. Make sure that PLT is used since PLT is expected.
|
||||
if { ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
|
||||
|| ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
|
||||
unresolved "visibility ($visibility) (non PIC)"
|
||||
unsupported "visibility ($visibility) (non PIC)"
|
||||
} else {
|
||||
# SunOS non PIC shared libraries don't permit some cases of
|
||||
# overriding.
|
||||
@ -338,7 +338,7 @@ proc visibility_run {visibility} {
|
||||
|
||||
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
|
||||
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
|
||||
unresolved "visibility ($visibility)"
|
||||
unsupported "visibility ($visibility)"
|
||||
} else {
|
||||
if { [ string match $visibility "protected" ]
|
||||
|| [ string match $visibility "protected_undef_def" ] } {
|
||||
@ -355,8 +355,8 @@ proc visibility_run {visibility} {
|
||||
} else {
|
||||
# Now do the same tests again, but this time compile main.c PIC.
|
||||
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
|
||||
unresolved "visibility ($visibility) (PIC main, non PIC so)"
|
||||
unresolved "visibility ($visibility) (PIC main)"
|
||||
unsupported "visibility ($visibility) (PIC main, non PIC so)"
|
||||
unsupported "visibility ($visibility) (PIC main)"
|
||||
} else {
|
||||
if { [ remote_file host exists $tmpdir/sh1np.o ]
|
||||
&& [ remote_file host exists $tmpdir/sh2np.o ] } {
|
||||
@ -395,7 +395,7 @@ proc visibility_run {visibility} {
|
||||
|
||||
visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o elfvsb
|
||||
} else {
|
||||
unresolved "visibility (PIC main, non PIC so)"
|
||||
unsupported "visibility (PIC main, non PIC so)"
|
||||
}
|
||||
|
||||
if { [ remote_file host exists $tmpdir/sh1p.o ]
|
||||
@ -408,7 +408,7 @@ proc visibility_run {visibility} {
|
||||
}
|
||||
visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o elfvsb
|
||||
} else {
|
||||
unresolved "visibility ($visibility) (PIC main)"
|
||||
unsupported "visibility ($visibility) (PIC main)"
|
||||
}
|
||||
}}
|
||||
}
|
||||
@ -447,7 +447,7 @@ visibility_run protected_weak
|
||||
visibility_run normal
|
||||
|
||||
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/common.c tmpdir/common.o] } {
|
||||
unresolved "common hidden symbol"
|
||||
unsupported "common hidden symbol"
|
||||
} else {
|
||||
if ![ld_link $ld tmpdir/common "tmpdir/common.o"] {
|
||||
fail "common hidden symbol"
|
||||
@ -457,10 +457,10 @@ if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$sub
|
||||
}
|
||||
|
||||
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } {
|
||||
unresolved "weak hidden symbol"
|
||||
unsupported "weak hidden symbol"
|
||||
} else {
|
||||
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } {
|
||||
unresolved "weak hidden symbol"
|
||||
unsupported "weak hidden symbol"
|
||||
} else {
|
||||
if ![ld_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] {
|
||||
fail "weak hidden symbol"
|
||||
|
@ -394,7 +394,7 @@ if {![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/foo.c $tmpdir/foo.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/bar1b.c $tmpdir/bar1b.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/bar1c.c $tmpdir/bar1c.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/main1.c $tmpdir/main1.o]} then {
|
||||
unresolved "ELF weak"
|
||||
unsupported "ELF weak"
|
||||
} elseif {![ld_link $cc_cmd $tmpdir/libfoo1a.so "$shared $tmpdir/foo1a.o"]
|
||||
|| ![ld_link $cc_cmd $tmpdir/libfoo1b.so "$shared $tmpdir/foo1b.o"]
|
||||
|| ![ld_link $cc_cmd $tmpdir/libbar1a.so "$shared $tmpdir/bar1a.o $tmpdir/libfoo1a.so"]} then {
|
||||
@ -428,7 +428,7 @@ if {![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/size_foo.c $tmpdir/s
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/size_bar.c $tmpdir/size_bar_s.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS $picflag -DSIZE_BIG" $srcdir/$subdir/size_bar.c $tmpdir/size_bar.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS" $srcdir/$subdir/size_main.c $tmpdir/size_main.o]} then {
|
||||
unresolved "ELF weak (size)"
|
||||
unsupported "ELF weak (size)"
|
||||
} else {
|
||||
build_lib "ELF DSO small bar (size)" libsize_bar_s "size_bar_s.o" ""
|
||||
build_lib "ELF DSO foo with small bar (size)" libsize_foo "size_foo.o libsize_bar_s.so" ""
|
||||
@ -444,7 +444,7 @@ if {![ld_compile "$cc_cmd $CFLAGS $picflag" $srcdir/$subdir/alias.c $tmpdir/alia
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS" $srcdir/$subdir/aliasmain.c $tmpdir/aliasmain.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS" $srcdir/$subdir/weakref1.c $tmpdir/weakref1.o]
|
||||
|| ![ld_compile "$cc_cmd $CFLAGS" $srcdir/$subdir/weakref2.c $tmpdir/weakref2.o]} then {
|
||||
unresolved "ELF weak (alias)"
|
||||
unsupported "ELF weak (alias)"
|
||||
} else {
|
||||
build_exec "ELF weak (alias)" alias "aliasmain.o weakref1.o weakref2.o alias.so" "-Wl,-rpath=.,--no-as-needed" alias "" ""
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ proc binutils_test { prog_name ld_options test } {
|
||||
set test_name "$prog_name $ld_options ($test)"
|
||||
|
||||
if { ![ld_assemble $as $srcdir/$subdir/$test.s tmpdir/$test.o ] } {
|
||||
unresolved "$test_name"
|
||||
unsupported "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ proc binutils_test { prog_name ld_options test } {
|
||||
|| [string match "*unrecognized option*" $link_output] } {
|
||||
unsupported "$ld_options is not supported by this target"
|
||||
} else {
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -64,7 +64,7 @@ proc binutils_test { prog_name ld_options test } {
|
||||
set got [remote_exec host "$READELF -l --wide tmpdir/$test" "" "/dev/null" "tmpdir/$test.exp"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ proc binutils_test { prog_name ld_options test } {
|
||||
set got [remote_exec host "$READELF -l --wide tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"]
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -115,7 +115,7 @@ proc good_combination {arglist flags args} {
|
||||
set cmdret [lindex $cmdret 0]
|
||||
if {$cmdret != 0 \
|
||||
|| ![regexp "Flags: *(\[^\n\r\]*)" $output full gotflags]} {
|
||||
unresolved $testname
|
||||
fail $testname
|
||||
} else {
|
||||
set failed 0
|
||||
|
||||
|
@ -20,17 +20,17 @@
|
||||
#
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/start.s tmpdir/start.o] {
|
||||
unresolved "Build start.o"
|
||||
unsupported "Build start.o"
|
||||
return
|
||||
}
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/foo.s tmpdir/foo.o] {
|
||||
unresolved "Build foo.o"
|
||||
unsupported "Build foo.o"
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ar_simple_create $ar "" tmpdir/libfoo.a tmpdir/foo.o] } {
|
||||
unresolved "Build libfoo.a"
|
||||
fail "Build libfoo.a"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -139,23 +139,23 @@ proc i126256-test { } {
|
||||
}
|
||||
|
||||
if { ![ld_compile "$CC -mrelax -fPIC" $srcdir/$subdir/i126256-1.c $tmpdir/i126256-1.o] } {
|
||||
unresolved $testname
|
||||
return
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ld_compile "$CC -mrelax -fPIC" $srcdir/$subdir/i126256-2.c $tmpdir/i126256-2.o] } {
|
||||
unresolved $testname
|
||||
return
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ld_link $ld $tmpdir/i126256-1.so "-shared $tmpdir/i126256-1.o -e 0"]} {
|
||||
unresolved $testname
|
||||
return
|
||||
fail $testname
|
||||
return
|
||||
}
|
||||
|
||||
if { ![ld_link $ld $tmpdir/i126256-2.so "--relax -shared $tmpdir/i126256-2.o $tmpdir/i126256-1.so -e 0"]} {
|
||||
fail $testname
|
||||
return
|
||||
fail $testname
|
||||
return
|
||||
}
|
||||
|
||||
pass $testname
|
||||
|
@ -679,7 +679,7 @@ set testname "Build liblto-11.a"
|
||||
remote_file host delete "tmpdir/liblto-11.a"
|
||||
set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"]
|
||||
if {![string match "" $catch_output]} {
|
||||
unresolved $testname
|
||||
fail $testname
|
||||
restore_notify
|
||||
return
|
||||
}
|
||||
|
@ -25,11 +25,9 @@ if ![check_plugin_api_available] {
|
||||
|
||||
# And a compiler to be available.
|
||||
set can_compile 1
|
||||
set failure_kind "unresolved"
|
||||
if { ![check_compiler_available] } {
|
||||
# Don't fail immediately,
|
||||
set can_compile 0
|
||||
set failure_kind "unsupported"
|
||||
}
|
||||
|
||||
pass "plugin API enabled"
|
||||
@ -286,11 +284,11 @@ set plugin_extra_elf_tests [list \
|
||||
|
||||
if { !$can_compile || $failed_compile } {
|
||||
foreach testitem $plugin_tests {
|
||||
$failure_kind [lindex $testitem 0]
|
||||
unsupported [lindex $testitem 0]
|
||||
}
|
||||
if { [is_elf_format] } {
|
||||
foreach testitem $plugin_extra_elf_tests {
|
||||
$failure_kind [lindex $testitem 0]
|
||||
unsupported [lindex $testitem 0]
|
||||
}
|
||||
}
|
||||
set CFLAGS "$old_CFLAGS"
|
||||
@ -309,7 +307,7 @@ if { [is_elf_format] \
|
||||
if {![ar_simple_create $ar "" "tmpdir/libtext.a" "tmpdir/text.o"] || \
|
||||
![ar_simple_create $ar "" "tmpdir/libempty.a" ""]} {
|
||||
foreach testitem $plugin_lib_tests {
|
||||
unresolved [lindex $testitem 0]
|
||||
unsupported [lindex $testitem 0]
|
||||
}
|
||||
} else {
|
||||
run_ld_link_tests $plugin_lib_tests
|
||||
@ -373,7 +371,7 @@ if [ar_simple_create $ar "--plugin $plugin2_path" "tmpdir/libfunc.a" \
|
||||
}
|
||||
} else {
|
||||
foreach testitem $plugin_src_tests {
|
||||
unresolved [lindex $testitem 0]
|
||||
unsupported [lindex $testitem 0]
|
||||
}
|
||||
}
|
||||
|
||||
@ -393,7 +391,7 @@ if [ar_simple_create $ar "--plugin $plugin4_path" "tmpdir/libpr20070.a" \
|
||||
] \
|
||||
]
|
||||
} else {
|
||||
unresolved "PR ld/20070"
|
||||
unsupported "PR ld/20070"
|
||||
}
|
||||
|
||||
set CFLAGS "$old_CFLAGS"
|
||||
|
@ -22,7 +22,7 @@
|
||||
set testname "align1"
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
set testname "ASSERT"
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/assert.s tmpdir/assert.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -65,8 +65,8 @@ if [istarget tic6x*-*-*] {
|
||||
|
||||
if { ![ld_compile "$CC $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross1.c" tmpdir/cross1.o] \
|
||||
|| ![ld_compile "$CC $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross2.c" tmpdir/cross2.o] } {
|
||||
unresolved $test1
|
||||
unresolved $test2
|
||||
unsupported $test1
|
||||
unsupported $test2
|
||||
set CFLAGS "$old_CFLAGS"
|
||||
set CC "$old_CC"
|
||||
return
|
||||
@ -99,7 +99,7 @@ if [string match "" $exec_output] then {
|
||||
# Check cross references within a single object.
|
||||
|
||||
if { ![ld_compile "$CC $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross3.c" tmpdir/cross3.o] } {
|
||||
unresolved $test2
|
||||
unsupported $test2
|
||||
set CFLAGS "$old_CFLAGS"
|
||||
set CC "$old_CC"
|
||||
return
|
||||
@ -124,14 +124,14 @@ if [string match "" $exec_output] then {
|
||||
# Check cross references for ld -r
|
||||
|
||||
if { ![ld_compile "$CC $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" "$srcdir/$subdir/cross4.c" tmpdir/cross4.o] } {
|
||||
unresolved $test3
|
||||
unsupported $test3
|
||||
set CFLAGS "$old_CFLAGS"
|
||||
set CC "$old_CC"
|
||||
return
|
||||
}
|
||||
|
||||
if ![ld_relocate $ld tmpdir/cross3-partial.o "tmpdir/cross1.o tmpdir/cross4.o"] {
|
||||
unresolved $test3
|
||||
fail $test3
|
||||
set CFLAGS "$old_CFLAGS"
|
||||
set CC "$old_CC"
|
||||
return
|
||||
|
@ -23,7 +23,7 @@ set testname "DEFINED"
|
||||
set prms_id 5699
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/defined.s tmpdir/def.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
set testname "EXTERN"
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/extern.s tmpdir/extern.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
set testname "binary logarithm"
|
||||
|
||||
if {![ld_assemble $as $srcdir/$subdir/log2.s tmpdir/log2.o]} {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ set testname "map addresses"
|
||||
|
||||
# The source file doesn't matter. Pinch one from the sizeof test.
|
||||
if {![ld_assemble $as $srcdir/$subdir/sizeof.s tmpdir/map-address.o]} {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ if { [istarget spu*-*-*] } {
|
||||
}
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/phdrs.s tmpdir/phdrs.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
@ -51,10 +51,6 @@ set ldopt "$ldopt -T $srcdir/$subdir/phdrs.t tmpdir/phdrs.o"
|
||||
if ![ld_link $ld tmpdir/phdrs $ldopt] {
|
||||
fail $testname
|
||||
} else {
|
||||
if {![is_remote host] && [which $objdump] == 0} {
|
||||
unresolved $testname
|
||||
return
|
||||
}
|
||||
set exec_output [run_host_cmd "$objdump" "--private-headers tmpdir/phdrs"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
verbose -log $exec_output
|
||||
|
@ -43,7 +43,7 @@ if { [istarget spu*-*-*] } {
|
||||
}
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/phdrs2.s tmpdir/phdrs2.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
@ -54,11 +54,6 @@ set ldopt "$ldopt -T $srcdir/$subdir/phdrs2.t tmpdir/phdrs2.o"
|
||||
if ![ld_link $ld tmpdir/phdrs2 $ldopt] {
|
||||
fail $testname
|
||||
} else {
|
||||
if {![is_remote host] && [which $objdump] == 0} {
|
||||
unresolved $testname
|
||||
return
|
||||
}
|
||||
|
||||
set exec_output [run_host_cmd "$objdump" "--private-headers tmpdir/phdrs2"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
verbose -log $exec_output
|
||||
|
@ -22,7 +22,7 @@
|
||||
set testname "script"
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/script.s tmpdir/script.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ if { [istarget spu*-*-*] } {
|
||||
|
||||
foreach test {"section-flags-1" "section-flags-2"} {
|
||||
if ![ld_assemble $as $srcdir/$subdir/$test.s tmpdir/$test.o] {
|
||||
unresolved $test
|
||||
unsupported $test
|
||||
} else {
|
||||
if ![ld_link $ldcmd tmpdir/$test \
|
||||
"-T $srcdir/$subdir/$test.t tmpdir/$test.o"] {
|
||||
|
@ -23,7 +23,7 @@
|
||||
set testname "SIZEOF"
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/sizeof.s tmpdir/sizeof.o] {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ setup_xfail hppa64-*-*
|
||||
if {! [ld_assemble $as $srcdir/$subdir/weak1.s tmpdir/weak1.o]
|
||||
|| ! [ld_assemble $as $srcdir/$subdir/weak2.s tmpdir/weak2.o]} then {
|
||||
# It's OK if .weak doesn't work on this target.
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
return
|
||||
}
|
||||
|
||||
@ -57,12 +57,6 @@ set weak_regexp_little \
|
||||
if {! [ld_link $ld tmpdir/weak "$flags -T $srcdir/$subdir/weak.t tmpdir/weak1.o tmpdir/weak2.o"] } then {
|
||||
fail $testname
|
||||
} else {
|
||||
if {![is_remote host] && [which $objdump] == 0} then {
|
||||
unresolved $testname
|
||||
set LDFLAGS "$saved_LDFLAGS"
|
||||
return
|
||||
}
|
||||
|
||||
set exec_output [run_host_cmd "$objdump" "-s tmpdir/weak"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
verbose -log $exec_output
|
||||
|
@ -111,7 +111,7 @@ foreach testitem $seltests {
|
||||
# tests. It might have been a buglet originally; now I think better
|
||||
# leave as is.
|
||||
if { ![ld_compile "$compiler $testflags" $srcdir/$subdir/$testfile $objfile] } {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
continue
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ if ![istarget sh*-*-*] {
|
||||
set testsimple "SH simple relaxing"
|
||||
|
||||
if { ![is_elf_format] } {
|
||||
unresolved $testsimple
|
||||
unsupported $testsimple
|
||||
} elseif { ![ld_assemble $as "-relax $srcdir/$subdir/sh1.s" tmpdir/sh1.o] } {
|
||||
fail $testsimple
|
||||
} elseif { ![ld_link $ld tmpdir/sh1 "-relax tmpdir/sh1.o"] } {
|
||||
@ -56,7 +56,7 @@ if { ![is_elf_format] } {
|
||||
set testsrec "SH relaxing to S-records"
|
||||
|
||||
if { ![remote_file host exists tmpdir/sh1] } {
|
||||
unresolved $testsrec
|
||||
unsupported $testsrec
|
||||
} else {
|
||||
if { [istarget sh*-linux-*] || [istarget sh-*-vxworks] } {
|
||||
# On these "non-embedded" targets, the default ELF and srec start
|
||||
@ -79,7 +79,7 @@ if { ![remote_file host exists tmpdir/sh1] } {
|
||||
if ![string match "" $exec_output] {
|
||||
send_log "$exec_output\n"
|
||||
verbose "$exec_output"
|
||||
unresolved $testsrec
|
||||
fail $testsrec
|
||||
} else {
|
||||
send_log "$objcopy -O srec tmpdir/sh1 tmpdir/sh1.s1\n"
|
||||
verbose "$objcopy -O srec tmpdir/sh1 tmpdir/sh1.s1"
|
||||
@ -87,7 +87,7 @@ if { ![remote_file host exists tmpdir/sh1] } {
|
||||
if ![string match "" $exec_output] {
|
||||
send_log "$exec_output\n"
|
||||
verbose "$exec_output"
|
||||
unresolved $testsrec
|
||||
fail $testsrec
|
||||
} else {
|
||||
send_log "cmp tmpdir/sh1.s1 tmpdir/sh1.s2\n"
|
||||
verbose "cmp tmpdir/sh1.s1 tmpdir/sh1.s2"
|
||||
@ -107,7 +107,7 @@ if { ![remote_file host exists tmpdir/sh1] } {
|
||||
|
||||
set testadjsw8 "SH switch8 adjustment after relax"
|
||||
if { ![is_elf_format] } {
|
||||
unresolved $testadjsw8
|
||||
unsupported $testadjsw8
|
||||
} elseif { ![ld_assemble $as "-relax $srcdir/$subdir/adjsw8.s" tmpdir/adjsw8.o] } {
|
||||
fail $testadjsw8
|
||||
} elseif { ![ld_link $ld tmpdir/adjsw8 "-relax tmpdir/adjsw8.o"] } {
|
||||
@ -145,16 +145,16 @@ if [istarget sh*-*linux*] {
|
||||
|
||||
if {![ld_assemble $as "-relax tmpdir/start.s" tmpdir/start.o] \
|
||||
|| ![ld_compile $CC "-O -mrelax -foptimize-sibling-calls $srcdir/$subdir/sh2.c" tmpdir/sh2.o]} {
|
||||
unresolved $testlink
|
||||
unresolved $testjsr
|
||||
unresolved $testrun
|
||||
unsupported $testlink
|
||||
unsupported $testjsr
|
||||
unsupported $testrun
|
||||
return
|
||||
}
|
||||
|
||||
if ![ld_link $ld tmpdir/sh2 "-relax tmpdir/start.o tmpdir/sh2.o"] {
|
||||
fail $testlink
|
||||
unresolved $testjsr
|
||||
unresolved $testrun
|
||||
unsupported $testjsr
|
||||
unsupported $testrun
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -213,8 +213,8 @@ verbose "Using $picflag to compile PIC code"
|
||||
|
||||
# Compile the main program.
|
||||
if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
|
||||
unresolved "shared (non PIC)"
|
||||
unresolved "shared"
|
||||
unsupported "shared (non PIC)"
|
||||
unsupported "shared"
|
||||
} else {
|
||||
# The shared library is composed of two files. First compile them
|
||||
# without using -fpic. That should work on an ELF system,
|
||||
@ -225,7 +225,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o]
|
||||
global PLT_CFLAGS NOPIE_CFLAGS
|
||||
if { ![ld_compile "$CC $PLT_CFLAGS $NOPIE_CFLAGS $CFLAGS $SHCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
|
||||
|| ![ld_compile "$CC $PLT_CFLAGS $CFLAGS $SHCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
|
||||
unresolved "shared (non PIC)"
|
||||
unsupported "shared (non PIC)"
|
||||
} else { if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
|
||||
shared_test shnp "shared (nonPIC)" mainnp.o sh1np.o sh2np.o xcoff
|
||||
} else {
|
||||
@ -286,7 +286,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o]
|
||||
|
||||
if { ![ld_compile "$CC $CFLAGS $SHCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o]
|
||||
|| ![ld_compile "$CC $CFLAGS $SHCFLAG $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } {
|
||||
unresolved "shared"
|
||||
unsupported "shared"
|
||||
} else {
|
||||
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
|
||||
shared_test shp "shared" mainnp.o sh1p.o sh2p.o xcoff
|
||||
@ -303,8 +303,8 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o]
|
||||
|
||||
# Now do the same tests again, but this time compile main.c PIC.
|
||||
if ![ld_compile "$CC $CFLAGS $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] {
|
||||
unresolved "shared (PIC main, non PIC so)"
|
||||
unresolved "shared (PIC main)"
|
||||
unsupported "shared (PIC main, non PIC so)"
|
||||
unsupported "shared (PIC main)"
|
||||
} else {
|
||||
if { [file exists $tmpdir/sh1np.o ] && [ file exists $tmpdir/sh2np.o ] } {
|
||||
if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
|
||||
@ -333,7 +333,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/m
|
||||
shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o shared
|
||||
}
|
||||
} else {
|
||||
unresolved "shared (PIC main, non PIC so)"
|
||||
unsupported "shared (PIC main, non PIC so)"
|
||||
}
|
||||
|
||||
if { [file exists $tmpdir/sh1p.o ] && [ file exists $tmpdir/sh2p.o ] } {
|
||||
@ -343,7 +343,7 @@ if ![ld_compile "$CC $CFLAGS $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdir/m
|
||||
shared_test shmpp "shared (PIC main)" mainp.o sh1p.o sh2p.o shared
|
||||
}
|
||||
} else {
|
||||
unresolved "shared (PIC main)"
|
||||
unsupported "shared (PIC main)"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -315,7 +315,7 @@ proc run_srec_test { test objs } {
|
||||
if ![string match "" $exec_output] {
|
||||
send_log "$exec_output\n"
|
||||
verbose "$exec_output"
|
||||
unresolved $test
|
||||
fail $test
|
||||
return
|
||||
}
|
||||
|
||||
@ -367,8 +367,8 @@ if { [is_elf_format] \
|
||||
|
||||
if { ![ld_compile $CC $srcdir/$subdir/sr1.c tmpdir/sr1.o] \
|
||||
|| ![ld_compile $CC $srcdir/$subdir/sr2.c tmpdir/sr2.o] } {
|
||||
unresolved $test1
|
||||
unresolved $test2
|
||||
unsupported $test1
|
||||
unsupported $test2
|
||||
set CC "$old_CC"
|
||||
set CXX "$old_CXX"
|
||||
set CXXFLAGS "$old_CXXFLAGS"
|
||||
@ -450,7 +450,7 @@ if { ![is_remote host] && [which $CXX] == 0 } {
|
||||
}
|
||||
|
||||
if ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/sr3.cc tmpdir/sr3.o] {
|
||||
unresolved $test2
|
||||
unsupported $test2
|
||||
set CC "$old_CC"
|
||||
set CXX "$old_CXX"
|
||||
set CXXFLAGS "$old_CXXFLAGS"
|
||||
|
@ -175,7 +175,7 @@ proc check_osabi_tic6x { test_name binary_file } {
|
||||
|
||||
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
|
||||
send_log "$got\n"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
remote_file build delete "dump.out"
|
||||
return
|
||||
}
|
||||
@ -184,7 +184,7 @@ proc check_osabi_tic6x { test_name binary_file } {
|
||||
if { ![regexp "\n\[ \]*OS/ABI:\[ \]*(.+)\n\[ \]*ABI" \
|
||||
[file_contents dump.out] nil osabi] } {
|
||||
verbose "proc check_osabi_tic6x: Readelf failed to extract an ELF header from $binary_file"
|
||||
unresolved "$test_name"
|
||||
fail "$test_name"
|
||||
} elseif { $osabi == $expected_osabi } {
|
||||
pass "$test_name"
|
||||
} else {
|
||||
|
@ -31,9 +31,9 @@ if { ![check_compiler_available] } {
|
||||
untested $testline
|
||||
} elseif { ![ld_compile "$CC -g $NOLTO_CFLAGS" $srcdir/$subdir/undefined.c tmpdir/undefined.o] } {
|
||||
verbose "Unable to compile test file!" 1
|
||||
unresolved $testund
|
||||
unresolved $testfn
|
||||
unresolved $testline
|
||||
unsupported $testund
|
||||
unsupported $testfn
|
||||
unsupported $testline
|
||||
} else {
|
||||
remote_file host delete "tmpdir/undefined"
|
||||
|
||||
@ -177,58 +177,50 @@ if { ![is_elf_format] || ![check_shared_lib_support]} then {
|
||||
setup_xfail tic6x-*-*
|
||||
fail $testname
|
||||
} else {
|
||||
if {![is_remote host] && [which $nm] == 0} then {
|
||||
unresolved "$testname (dyn sym)"
|
||||
} else {
|
||||
set exec_output [run_host_cmd "$nm" "-D tmpdir/fundef.so"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
set exec_output [run_host_cmd "$nm" "-D tmpdir/fundef.so"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
|
||||
if { ($asflags == ""
|
||||
|| ([regexp ".* undef_fun_typed.*" $exec_output]
|
||||
&& [regexp ".* undef_fun_notype.*" $exec_output]))
|
||||
&& [regexp ".* undef_data.*" $exec_output]
|
||||
&& [regexp ".* undef_pfun.*" $exec_output]
|
||||
&& [regexp ".* undef_notype.*" $exec_output]} then {
|
||||
pass "$testname (dyn sym)"
|
||||
} else {
|
||||
fail "$testname (dyn sym)"
|
||||
}
|
||||
if { ($asflags == ""
|
||||
|| ([regexp ".* undef_fun_typed.*" $exec_output]
|
||||
&& [regexp ".* undef_fun_notype.*" $exec_output]))
|
||||
&& [regexp ".* undef_data.*" $exec_output]
|
||||
&& [regexp ".* undef_pfun.*" $exec_output]
|
||||
&& [regexp ".* undef_notype.*" $exec_output]} then {
|
||||
pass "$testname (dyn sym)"
|
||||
} else {
|
||||
fail "$testname (dyn sym)"
|
||||
}
|
||||
|
||||
global READELF
|
||||
if {![is_remote host] && [which $READELF] == 0} then {
|
||||
unresolved "$testname (dyn reloc)"
|
||||
} else {
|
||||
set exec_output [run_host_cmd "$READELF" "-r tmpdir/fundef.so"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
set exec_output [run_host_cmd "$READELF" "-r tmpdir/fundef.so"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
|
||||
# We ought to get two .rel{a}.plt and three .rel{a}.dyn relocs,
|
||||
# except for MIPS targets whose psABI mandates an extra
|
||||
# R_MIPS_NONE relocation, also used to pad n64 relocation
|
||||
# triplets, and S+core targets using an extra R_SCORE_NONE
|
||||
# relocation, so adjust for that.
|
||||
switch -glob $target_triplet {
|
||||
"mips64*-*-openbsd*" {
|
||||
set none_count 6
|
||||
set reloc_count 4
|
||||
}
|
||||
"mips*" -
|
||||
"score*" {
|
||||
set none_count 1
|
||||
set reloc_count 4
|
||||
}
|
||||
"*" {
|
||||
set none_count 0
|
||||
set reloc_count 3
|
||||
}
|
||||
# We ought to get two .rel{a}.plt and three .rel{a}.dyn relocs,
|
||||
# except for MIPS targets whose psABI mandates an extra
|
||||
# R_MIPS_NONE relocation, also used to pad n64 relocation
|
||||
# triplets, and S+core targets using an extra R_SCORE_NONE
|
||||
# relocation, so adjust for that.
|
||||
switch -glob $target_triplet {
|
||||
"mips64*-*-openbsd*" {
|
||||
set none_count 6
|
||||
set reloc_count 4
|
||||
}
|
||||
|
||||
if { ($asflags == "" || [regexp ".* contains 2 .*" $exec_output])
|
||||
&& [regexp ".* contains $reloc_count .*" $exec_output]
|
||||
&& [regexp -all "_NONE" $exec_output] == $none_count } then {
|
||||
pass "$testname (dyn reloc)"
|
||||
} else {
|
||||
fail "$testname (dyn reloc)"
|
||||
"mips*" -
|
||||
"score*" {
|
||||
set none_count 1
|
||||
set reloc_count 4
|
||||
}
|
||||
"*" {
|
||||
set none_count 0
|
||||
set reloc_count 3
|
||||
}
|
||||
}
|
||||
|
||||
if { ($asflags == "" || [regexp ".* contains 2 .*" $exec_output])
|
||||
&& [regexp ".* contains $reloc_count .*" $exec_output]
|
||||
&& [regexp -all "_NONE" $exec_output] == $none_count } then {
|
||||
pass "$testname (dyn reloc)"
|
||||
} else {
|
||||
fail "$testname (dyn reloc)"
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ if { ![is_elf_format] && ![is_pecoff_format] } then {
|
||||
} elseif {![ld_assemble $as $srcdir/$subdir/weak-undef.s \
|
||||
tmpdir/weak-undef.o]} then {
|
||||
# It's OK if .weak doesn't work on this target.
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
} elseif {![ld_link $ld tmpdir/weak-undef \
|
||||
"tmpdir/weak-undef.o -T $srcdir/$subdir/weak-undef.t"]} then {
|
||||
# Weak symbols are broken for non-i386 PE targets.
|
||||
@ -36,8 +36,6 @@ if { ![is_elf_format] && ![is_pecoff_format] } then {
|
||||
setup_xfail *-*-pe*
|
||||
}
|
||||
fail $testname
|
||||
} elseif {![is_remote host] && [which $objdump] == 0} then {
|
||||
unresolved $testname
|
||||
} else {
|
||||
set exec_output [run_host_cmd "$objdump" "-s tmpdir/weak-undef"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
@ -59,8 +57,6 @@ proc undef_weak_so { testname opts passval } {
|
||||
if {![ld_link $ld tmpdir/weak-fundef.so \
|
||||
"$opts tmpdir/weak-fundef.o"]} then {
|
||||
fail $testname
|
||||
} elseif {![is_remote host] && [which $nm] == 0} then {
|
||||
unresolved $testname
|
||||
} else {
|
||||
set exec_output [run_host_cmd "$nm" "-D tmpdir/weak-fundef.so"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
@ -83,8 +79,6 @@ proc undef_weak_exe { testname opts passval } {
|
||||
if {![ld_link $ld tmpdir/weak-fundef \
|
||||
"$opts tmpdir/weak-fundef.o tmpdir/weak-fundef.so"]} then {
|
||||
fail $testname
|
||||
} elseif {![is_remote host] && [which $nm] == 0} then {
|
||||
unresolved $testname
|
||||
} else {
|
||||
set exec_output [run_host_cmd "$nm" "-D tmpdir/weak-fundef"]
|
||||
set exec_output [prune_warnings $exec_output]
|
||||
|
@ -494,7 +494,7 @@ proc run_ld_link_tests { ldtests args } {
|
||||
set binfile tmpdir/[lindex $testitem 6]
|
||||
set cflags [lindex $testitem 7]
|
||||
set objfiles {}
|
||||
set is_unresolved 0
|
||||
set is_unsupported 0
|
||||
set failed 0
|
||||
set maybe_failed 0
|
||||
set ld_output ""
|
||||
@ -523,7 +523,7 @@ proc run_ld_link_tests { ldtests args } {
|
||||
catch "$unbzip2" exec_output
|
||||
if ![string match "" $exec_output] then {
|
||||
send_log "$exec_output\n"
|
||||
set is_unresolved 1
|
||||
set is_unsupported 1
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -531,7 +531,7 @@ proc run_ld_link_tests { ldtests args } {
|
||||
if { [file extension $src_file] == ".c" } {
|
||||
set as_file "tmpdir/$fileroot.s"
|
||||
if ![ld_compile "$CC -S $CFLAGS $cflags" $srcdir/$subdir/$src_file $as_file] {
|
||||
set is_unresolved 1
|
||||
set is_unsupported 1
|
||||
break
|
||||
}
|
||||
} else {
|
||||
@ -551,8 +551,8 @@ proc run_ld_link_tests { ldtests args } {
|
||||
continue
|
||||
}
|
||||
# Catch compiler errors.
|
||||
if { $is_unresolved } {
|
||||
unresolved $testname
|
||||
if { $is_unsupported } {
|
||||
unsupported $testname
|
||||
continue
|
||||
}
|
||||
|
||||
@ -567,6 +567,7 @@ proc run_ld_link_tests { ldtests args } {
|
||||
set ld_output "$exec_output"
|
||||
}
|
||||
|
||||
set is_unresolved 0
|
||||
if { !$failed } {
|
||||
foreach actionlist $actions {
|
||||
set action [lindex $actionlist 0]
|
||||
@ -751,7 +752,7 @@ proc run_ld_link_exec_tests { ldtests args } {
|
||||
}
|
||||
}
|
||||
if { $failed != 0 } {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
continue
|
||||
}
|
||||
|
||||
@ -941,7 +942,7 @@ proc run_cc_link_tests { ldtests } {
|
||||
}
|
||||
}
|
||||
if { $failed != 0 } {
|
||||
unresolved $testname
|
||||
unsupported $testname
|
||||
continue
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user