-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" {^.*beginwarn.c:7: 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 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 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,-rpath-link=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,-rpath-link=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" ] \
+]