aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-elf/shared.exp
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-elf/shared.exp')
-rw-r--r--ld/testsuite/ld-elf/shared.exp325
1 files changed, 162 insertions, 163 deletions
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index 3cdac45..52baadd 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -21,13 +21,6 @@
# Exclude non-ELF targets.
-# The following tests require running the executable generated by ld,
-# or enough of a build environment to create a fully linked executable.
-# This is not commonly available when testing a cross-built linker.
-if ![isnative] {
- return
-}
-
if ![is_elf_format] {
return
}
@@ -38,6 +31,7 @@ if { [which $CC] == 0 } {
}
# Add -ldl to extralibs if needed
+set extralibs ""
if { ![istarget *-*-freebsd*]} {
set extralibs "-ldl"
}
@@ -55,7 +49,7 @@ set build_tests {
{"Build warn libbar.so"
"-shared" "-fPIC"
{beginwarn.c end.c} {{readelf {-S --wide} libbarw.rd}} "libbarw.so"
- "C" "^.*\\\): warning: function foo is deprecated$"}
+ "c" {^.*\): warning: function foo is deprecated$} }
{"Build hidden libbar.so"
"-shared" "-fPIC"
{begin.c endhidden.c} {} "libbarh.so"}
@@ -283,156 +277,156 @@ set build_tests {
run_cc_link_tests $build_tests
-set run_tests {
- {"Run normal with libfoo.so"
- "tmpdir/begin.o tmpdir/libfoo.so tmpdir/end.o" ""
- {main.c} "normal" "normal.out"}
- {"Run protected with libfoo.so"
- "tmpdir/begin.o tmpdir/libfoo.so tmpdir/endprotected.o" ""
- {main.c} "protected" "normal.out"}
- {"Run hidden with libfoo.so"
- "tmpdir/begin.o tmpdir/libfoo.so tmpdir/endhidden.o" ""
- {main.c} "hidden" "hidden.out"}
- {"Run normal with versioned libfoo.so"
- "tmpdir/begin.o tmpdir/libfoov.so tmpdir/end.o" ""
- {main.c} "normalv" "normal.out"}
- {"Run warn with versioned libfoo.so"
- "tmpdir/beginwarn.o tmpdir/libfoov.so" ""
- {main.c} "warn" "warn.out"
- "" "" "^.*\\\): warning: function foo is deprecated$"}
- {"Run protected with versioned libfoo.so"
- "tmpdir/begin.o tmpdir/libfoov.so tmpdir/endprotected.o" ""
- {main.c} "protected" "normal.out"}
- {"Run hidden with versioned libfoo.so"
- "tmpdir/begin.o tmpdir/libfoov.so tmpdir/endhidden.o" ""
- {main.c} "hiddenv" "hidden.out"}
- {"Run normal libbar.so with libfoo.so"
- "tmpdir/libbarfoo.so tmpdir/libfoo.so" ""
- {main.c} "normal" "normal.out"}
- {"Run protected libbar.so with libfoo.so"
- "tmpdir/libbarpfoo.so tmpdir/libfoo.so" ""
- {main.c} "protected" "normal.out"}
- {"Run hidden libbar.so with libfoo.so"
- "tmpdir/libbarhfoo.so tmpdir/libfoo.so" ""
- {main.c} "hidden" "hidden.out"}
- {"Run normal libbar.so with versioned libfoo.so"
- "tmpdir/libbarfoov.so tmpdir/libfoov.so" ""
- {main.c} "normal" "normal.out"}
- {"Run protected libbar.so with versioned libfoo.so"
- "tmpdir/libbarpfoov.so tmpdir/libfoov.so" ""
- {main.c} "protected" "normal.out"}
- {"Run hidden libbar.so with versioned libfoo.so"
- "tmpdir/libbarhfoov.so tmpdir/libfoov.so" ""
- {main.c} "hidden" "hidden.out"}
- {"Run dl1a with --dynamic-list=dl1.list and dlopen on libdl1.so"
- "--dynamic-list=dl1.list $extralibs" ""
- {dl1main.c} "dl1a" "dl1.out"}
- {"Run dl1b with --dynamic-list-data and dlopen on libdl1.so"
- "--dynamic-list-data $extralibs" ""
- {dl1main.c} "dl1b" "dl1.out"}
- {"Run with libdl2a.so"
- "tmpdir/libdl2a.so" ""
- {dl2main.c} "dl2a" "dl2a.out"}
- {"Run with libdl2b.so"
- "tmpdir/libdl2b.so" ""
- {dl2main.c} "dl2b" "dl2b.out"}
- {"Run with libdl2c.so"
- "tmpdir/libdl2c.so" ""
- {dl2main.c} "dl2c" "dl2b.out"}
- {"Run with libdl4a.so"
- "tmpdir/libdl4a.so" ""
- {dl4main.c} "dl4a" "dl4a.out"}
- {"Run with libdl4b.so"
- "tmpdir/libdl4b.so" ""
- {dl4main.c} "dl4b" "dl4a.out"}
- {"Run with libdl4c.so"
- "tmpdir/libdl4c.so" ""
- {dl4main.c} "dl4c" "dl4b.out"}
- {"Run with libdl4d.so"
- "tmpdir/libdl4d.so" ""
- {dl4main.c} "dl4d" "dl4b.out"}
- {"Run with libdl4e.so"
- "tmpdir/libdl4e.so" ""
- {dl4main.c} "dl4e" "dl4a.out"}
- {"Run with libdl4f.so"
- "tmpdir/libdl4f.so" ""
- {dl4main.c} "dl4f" "dl4a.out"}
- {"Run dl6a1 with --dynamic-list-data and dlopen on libdl6a.so"
- "--dynamic-list-data $extralibs" ""
- {dl6amain.c} "dl6a1" "dl6a.out"}
- {"Run dl6a2 with -Bsymbolic-functions and dlopen on libdl6a.so"
- "-Bsymbolic-functions $extralibs" ""
- {dl6amain.c} "dl6a2" "dl6b.out"}
- {"Run dl6a3 with -Bsymbolic and dlopen on libdl6a.so"
- "-Bsymbolic $extralibs" ""
- {dl6amain.c} "dl6a3" "dl6b.out"}
- {"Run dl6a4 with -Bsymbolic --dynamic-list-data and dlopen on libdl6a.so"
- "-Bsymbolic --dynamic-list-data $extralibs" ""
- {dl6amain.c} "dl6a4" "dl6a.out"}
- {"Run dl6a5 with -Bsymbolic-functions --dynamic-list-cpp-new and dlopen on libdl6a.so"
- "-Bsymbolic-functions --dynamic-list-cpp-new $extralibs" ""
- {dl6amain.c} "dl6a5" "dl6b.out"}
- {"Run dl6a6 with --dynamic-list-cpp-new -Bsymbolic-functions and dlopen on libdl6a.so"
- "--dynamic-list-cpp-new -Bsymbolic-functions $extralibs" ""
- {dl6amain.c} "dl6a6" "dl6b.out"}
- {"Run dl6a7 with --dynamic-list-data -Bsymbolic and dlopen on libdl6a.so"
- "--dynamic-list-data -Bsymbolic $extralibs" ""
- {dl6amain.c} "dl6a7" "dl6a.out"}
- {"Run dl6b1 with --dynamic-list-data and dlopen on libdl6b.so"
- "--dynamic-list-data $extralibs" ""
- {dl6bmain.c} "dl6b1" "dl6a.out"}
- {"Run dl6b2 with dlopen on libdl6b.so"
- "$extralibs" ""
- {dl6bmain.c} "dl6b2" "dl6b.out"}
- {"Run dl6c1 with --dynamic-list-data and dlopen on libdl6c.so"
- "--dynamic-list-data $extralibs" ""
- {dl6cmain.c} "dl6c1" "dl6b.out"}
- {"Run dl6d1 with --dynamic-list-data and dlopen on libdl6d.so"
- "--dynamic-list-data $extralibs" ""
- {dl6dmain.c} "dl6d1" "dl6b.out"}
- {"Run with libdata1.so"
- "tmpdir/libdata1.so" ""
- {dynbss1.c} "dynbss1" "pass.out"}
- {"Run with libdata2.so"
- "tmpdir/libdata2.so" ""
- {weakdef1.c} "weakdef1" "pass.out"}
- {"Run with libfunc1.so comm1.o"
- "tmpdir/libfunc1.so tmpdir/comm1.o" ""
- {dummy.c} "comm1" "pass.out"}
- {"Run with comm1.o libfunc1.so"
- "tmpdir/comm1.o tmpdir/libfunc1.so" ""
- {dummy.c} "comm1" "pass.out"}
- {"Run with pr11138-2.c libpr11138-1.so"
- "--version-script=pr11138-2.map tmpdir/pr11138-2.o tmpdir/libpr11138-1.so" ""
- {dummy.c} "pr11138a" "pr11138.out"}
- {"Run with libpr11138-1.so pr11138-2.c"
- "--version-script=pr11138-2.map tmpdir/libpr11138-1.so tmpdir/pr11138-2.o" ""
- {dummy.c} "pr11138b" "pr11138.out"}
- {"Run with pr13250-3.c, libpr13250-1.so and libpr13250-2.so"
- "--as-needed tmpdir/pr13250-3.o tmpdir/libpr13250-1.so tmpdir/libpr13250-2.so" ""
- {dummy.c} "pr13250" "pass.out"}
- {"Run with pr14323-1.c pr14323-2.so"
- "tmpdir/libpr14323-2.so" ""
- {pr14323-1.c} "pr14323" "pass.out"}
- {"Run with pr14862-1.c libpr14862.so"
- "--as-needed tmpdir/libpr14862-1.o tmpdir/libpr14862.so" ""
- {dummy.c} "pr14862" "pr14862.out"}
- {"Link with --add-needed"
- "tmpdir/libneeded1c.o --add-needed -rpath=tmpdir -Ltmpdir -lneeded1a" ""
- {dummy.c} "needed1a" "needed1.out"}
- {"Link with --copy-dt-needed-entries"
- "tmpdir/libneeded1c.o --copy-dt-needed-entries -rpath=tmpdir -Ltmpdir -lneeded1a" ""
- {dummy.c} "needed1b" "needed1.out"}
- {"Run relmain"
- "--no-as-needed -rpath=tmpdir -Ltmpdir -lrel" ""
- {relmain.c} "relmain" "relmain.out"}
- {"Run pr2404"
- "tmpdir/pr2404b.o tmpdir/libpr2404a.so" ""
- {dummy.c} "pr2404" "pr2404.out"}
- {"Run pr18458"
- "tmpdir/libpr18458a.so tmpdir/libpr18458b.so -z now" ""
- {pr18458c.c} "pr18458" "pass.out"}
-}
+set run_tests [list \
+ [list "Run normal with libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoo.so tmpdir/end.o" "" \
+ {main.c} "normal" "normal.out" ] \
+ [list "Run protected with libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoo.so tmpdir/endprotected.o" "" \
+ {main.c} "protected" "normal.out" ] \
+ [list "Run hidden with libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoo.so tmpdir/endhidden.o" "" \
+ {main.c} "hidden" "hidden.out" ] \
+ [list "Run normal with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoov.so tmpdir/end.o" "" \
+ {main.c} "normalv" "normal.out" ] \
+ [list "Run warn with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/beginwarn.o tmpdir/libfoov.so" "" \
+ {main.c} "warn" "warn.out" \
+ "" "c" {^.*\): warning: function foo is deprecated$} ] \
+ [list "Run protected with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoov.so tmpdir/endprotected.o" "" \
+ {main.c} "protected" "normal.out" ] \
+ [list "Run hidden with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoov.so tmpdir/endhidden.o" "" \
+ {main.c} "hiddenv" "hidden.out" ] \
+ [list "Run normal libbar.so with libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/libbarfoo.so tmpdir/libfoo.so" "" \
+ {main.c} "normal" "normal.out" ] \
+ [list "Run protected libbar.so with libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/libbarpfoo.so tmpdir/libfoo.so" "" \
+ {main.c} "protected" "normal.out" ] \
+ [list "Run hidden libbar.so with libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/libbarhfoo.so tmpdir/libfoo.so" "" \
+ {main.c} "hidden" "hidden.out" ] \
+ [list "Run normal libbar.so with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/libbarfoov.so tmpdir/libfoov.so" "" \
+ {main.c} "normal" "normal.out" ] \
+ [list "Run protected libbar.so with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/libbarpfoov.so tmpdir/libfoov.so" "" \
+ {main.c} "protected" "normal.out" ] \
+ [list "Run hidden libbar.so with versioned libfoo.so" \
+ "-Wl,--no-as-needed tmpdir/libbarhfoov.so tmpdir/libfoov.so" "" \
+ {main.c} "hidden" "hidden.out" ] \
+ [list "Run dl1a with --dynamic-list=dl1.list and dlopen on libdl1.so" \
+ "-Wl,--no-as-needed,--dynamic-list=dl1.list $extralibs" "" \
+ {dl1main.c} "dl1a" "dl1.out" ] \
+ [list "Run dl1b with --dynamic-list-data and dlopen on libdl1.so" \
+ "-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
+ {dl1main.c} "dl1b" "dl1.out" ] \
+ [list "Run with libdl2a.so" \
+ "-Wl,--no-as-needed tmpdir/libdl2a.so" "" \
+ {dl2main.c} "dl2a" "dl2a.out" ] \
+ [list "Run with libdl2b.so" \
+ "-Wl,--no-as-needed tmpdir/libdl2b.so" "" \
+ {dl2main.c} "dl2b" "dl2b.out" ] \
+ [list "Run with libdl2c.so" \
+ "-Wl,--no-as-needed tmpdir/libdl2c.so" "" \
+ {dl2main.c} "dl2c" "dl2b.out" ] \
+ [list "Run with libdl4a.so" \
+ "-Wl,--no-as-needed tmpdir/libdl4a.so" "" \
+ {dl4main.c} "dl4a" "dl4a.out" ] \
+ [list "Run with libdl4b.so" \
+ "-Wl,--no-as-needed tmpdir/libdl4b.so" "" \
+ {dl4main.c} "dl4b" "dl4a.out" ] \
+ [list "Run with libdl4c.so" \
+ "-Wl,--no-as-needed tmpdir/libdl4c.so" "" \
+ {dl4main.c} "dl4c" "dl4b.out" ] \
+ [list "Run with libdl4d.so" \
+ "-Wl,--no-as-needed tmpdir/libdl4d.so" "" \
+ {dl4main.c} "dl4d" "dl4b.out" ] \
+ [list "Run with libdl4e.so" \
+ "-Wl,--no-as-needed tmpdir/libdl4e.so" "" \
+ {dl4main.c} "dl4e" "dl4a.out" ] \
+ [list "Run with libdl4f.so" \
+ "-Wl,--no-as-needed tmpdir/libdl4f.so" "" \
+ {dl4main.c} "dl4f" "dl4a.out" ] \
+ [list "Run dl6a1 with --dynamic-list-data and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
+ {dl6amain.c} "dl6a1" "dl6a.out" ] \
+ [list "Run dl6a2 with -Bsymbolic-functions and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,-Bsymbolic-functions $extralibs" "" \
+ {dl6amain.c} "dl6a2" "dl6b.out" ] \
+ [list "Run dl6a3 with -Bsymbolic and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,-Bsymbolic $extralibs" "" \
+ {dl6amain.c} "dl6a3" "dl6b.out" ] \
+ [list "Run dl6a4 with -Bsymbolic --dynamic-list-data and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,-Bsymbolic,--dynamic-list-data $extralibs" "" \
+ {dl6amain.c} "dl6a4" "dl6a.out" ] \
+ [list "Run dl6a5 with -Bsymbolic-functions --dynamic-list-cpp-new and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,-Bsymbolic-functions,--dynamic-list-cpp-new $extralibs" "" \
+ {dl6amain.c} "dl6a5" "dl6b.out" ] \
+ [list "Run dl6a6 with --dynamic-list-cpp-new -Bsymbolic-functions and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,--dynamic-list-cpp-new,-Bsymbolic-functions $extralibs" "" \
+ {dl6amain.c} "dl6a6" "dl6b.out" ] \
+ [list "Run dl6a7 with --dynamic-list-data -Bsymbolic and dlopen on libdl6a.so" \
+ "-Wl,--no-as-needed,--dynamic-list-data,-Bsymbolic $extralibs" "" \
+ {dl6amain.c} "dl6a7" "dl6a.out" ] \
+ [list "Run dl6b1 with --dynamic-list-data and dlopen on libdl6b.so" \
+ "-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
+ {dl6bmain.c} "dl6b1" "dl6a.out" ] \
+ [list "Run dl6b2 with dlopen on libdl6b.so" \
+ "-Wl,--no-as-needed $extralibs" "" \
+ {dl6bmain.c} "dl6b2" "dl6b.out" ] \
+ [list "Run dl6c1 with --dynamic-list-data and dlopen on libdl6c.so" \
+ "-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
+ {dl6cmain.c} "dl6c1" "dl6b.out" ] \
+ [list "Run dl6d1 with --dynamic-list-data and dlopen on libdl6d.so" \
+ "-Wl,--no-as-needed,--dynamic-list-data $extralibs" "" \
+ {dl6dmain.c} "dl6d1" "dl6b.out" ] \
+ [list "Run with libdata1.so" \
+ "-Wl,--no-as-needed tmpdir/libdata1.so" "" \
+ {dynbss1.c} "dynbss1" "pass.out" ] \
+ [list "Run with libdata2.so" \
+ "-Wl,--no-as-needed tmpdir/libdata2.so" "" \
+ {weakdef1.c} "weakdef1" "pass.out" ] \
+ [list "Run with libfunc1.so comm1.o" \
+ "-Wl,--no-as-needed tmpdir/libfunc1.so tmpdir/comm1.o" "" \
+ {dummy.c} "comm1" "pass.out" ] \
+ [list "Run with comm1.o libfunc1.so" \
+ "-Wl,--no-as-needed tmpdir/comm1.o tmpdir/libfunc1.so" "" \
+ {dummy.c} "comm1" "pass.out" ] \
+ [list "Run with pr11138-2.c libpr11138-1.so" \
+ "-Wl,--no-as-needed,--version-script=pr11138-2.map tmpdir/pr11138-2.o tmpdir/libpr11138-1.so" "" \
+ {dummy.c} "pr11138a" "pr11138.out" ] \
+ [list "Run with libpr11138-1.so pr11138-2.c" \
+ "-Wl,--no-as-needed,--version-script=pr11138-2.map tmpdir/libpr11138-1.so tmpdir/pr11138-2.o" "" \
+ {dummy.c} "pr11138b" "pr11138.out" ] \
+ [list "Run with pr13250-3.c, libpr13250-1.so and libpr13250-2.so" \
+ "-Wl,--as-needed tmpdir/pr13250-3.o tmpdir/libpr13250-1.so tmpdir/libpr13250-2.so" "" \
+ {dummy.c} "pr13250" "pass.out" ] \
+ [list "Run with pr14323-1.c pr14323-2.so" \
+ "-Wl,--no-as-needed tmpdir/libpr14323-2.so" "" \
+ {pr14323-1.c} "pr14323" "pass.out" ] \
+ [list "Run with pr14862-1.c libpr14862.so" \
+ "-Wl,--as-needed tmpdir/libpr14862-1.o tmpdir/libpr14862.so" "" \
+ {dummy.c} "pr14862" "pr14862.out" ] \
+ [list "Link with --add-needed" \
+ "tmpdir/libneeded1c.o -Wl,--no-as-needed,--add-needed,-rpath=tmpdir -Ltmpdir -lneeded1a" "" \
+ {dummy.c} "needed1a" "needed1.out" ] \
+ [list "Link with --copy-dt-needed-entries" \
+ "tmpdir/libneeded1c.o -Wl,--no-as-needed,--copy-dt-needed-entries,-rpath=tmpdir -Ltmpdir -lneeded1a" "" \
+ {dummy.c} "needed1b" "needed1.out" ] \
+ [list "Run relmain" \
+ "-Wl,--no-as-needed,-rpath=tmpdir -Ltmpdir -lrel" "" \
+ {relmain.c} "relmain" "relmain.out" ] \
+ [list "Run pr2404" \
+ "-Wl,--no-as-needed tmpdir/pr2404b.o tmpdir/libpr2404a.so" "" \
+ {dummy.c} "pr2404" "pr2404.out" ] \
+ [list "Run pr18458" \
+ "-Wl,--no-as-needed,-z,now tmpdir/libpr18458a.so tmpdir/libpr18458b.so" "" \
+ {pr18458c.c} "pr18458" "pass.out" ] \
+]
# NetBSD ELF systems do not currently support the .*_array sections.
run_ld_link_exec_tests $run_tests "*-*-netbsdelf*"
@@ -502,10 +496,10 @@ set run_cxx_tests {
"-Wl,--no-as-needed tmpdir/libdl3c.so" ""
{dl3main.cc} "dl3c" "dl3a.out" "" "c++"}
{"Run with libnew1a.so"
- "tmpdir/libnew1a.so" ""
+ "-Wl,--no-as-needed tmpdir/libnew1a.so" ""
{dl5.cc} "dl5a" "dl5.out" "" "c++"}
{"Run with libnew1b.so"
- "tmpdir/libnew1b.so" ""
+ "-Wl,--no-as-needed tmpdir/libnew1b.so" ""
{dl5.cc} "dl5b" "dl5.out" "" "c++"}
}
@@ -543,7 +537,7 @@ if { [istarget *-*-linux*]
run_ld_link_exec_tests [list \
[list \
"Run pr2404 with PIE" \
- "-pie tmpdir/pr2404b.o tmpdir/libpr2404a.so" \
+ "-pie -Wl,--no-as-needed tmpdir/pr2404b.o tmpdir/libpr2404a.so" \
"" \
{ dummy.c } \
"pr2404pie" \
@@ -597,7 +591,7 @@ if { [istarget *-*-linux*]
] \
[list \
"Run pr19579" \
- "-pie -z text tmpdir/pr19579a.o tmpdir/libpr19579.so" \
+ "-pie -Wl,--no-as-needed,-z,text tmpdir/pr19579a.o tmpdir/libpr19579.so" \
"" \
{dummy.c} \
"pr19579" \
@@ -641,7 +635,7 @@ proc mix_pic_and_non_pic {xfails cflags ldflags exe} {
run_ld_link_exec_tests [list \
[list \
"Run $exe fun defined" \
- "$ldflags tmpdir/libpr19719b.o tmpdir/libpr19719.so -rpath tmpdir" \
+ "-Wl,--no-as-needed,-rpath,tmpdir $ldflags tmpdir/libpr19719b.o tmpdir/libpr19719.so" \
"" \
{ pr19719a.c pr19719c.c } \
$exe \
@@ -657,6 +651,11 @@ proc mix_pic_and_non_pic {xfails cflags ldflags exe} {
setup_xfail $targ
}
+ if ![isnative] {
+ unsupported "Run $exe fun undefined"
+ return
+ }
+
set exec_output [run_host_cmd "tmpdir/$exe" ""]
if {![string match "PASS" $exec_output]} {
fail "Run $exe fun undefined"