diff options
Diffstat (limited to 'ld/testsuite/ld-elf/shared.exp')
-rw-r--r-- | ld/testsuite/ld-elf/shared.exp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index 2e679d9..eef264e 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -188,6 +188,21 @@ set build_tests { {"Build libneeded1c.o" "-r -nostdlib" "" {needed1c.c} {} "libneeded1c.o"} + {"Build libneeded1pic.o" + "-r -nostdlib" "-fPIC" + {needed1c.c} {} "libneeded1pic.o"} + {"Build needed1a.so with --add-needed" + "-shared tmpdir/libneeded1pic.o -Wl,--add-needed,-rpath=tmpdir,-z,defs -Ltmpdir -lneeded1a" "" + {dummy.c} {} "needed1a.so"} + {"Build needed1b.so with --copy-dt-needed-entries" + "-shared tmpdir/libneeded1pic.o -Wl,--copy-dt-needed-entries,-rpath=tmpdir,-z,defs -Ltmpdir -lneeded1a" "" + {dummy.c} {} "needed1b.so"} + {"Build needed1a.so with --no-add-needed" + "-shared tmpdir/libneeded1pic.o -Wl,--no-add-needed -Ltmpdir -lneeded1a" "" + {dummy.c} {} "needed1c.so"} + {"Build needed1b.so with --no-copy-dt-needed-entries" + "-shared tmpdir/libneeded1pic.o -Wl,--no-copy-dt-needed-entries -Ltmpdir -lneeded1a" "" + {dummy.c} {} "needed1d.so"} } run_cc_link_tests $build_tests @@ -352,6 +367,20 @@ if { [ regexp "'bar' is defined in DSO tmpdir/libneeded1b.so" $exec_output ] } { } { fail $testname } +set testname "--no-add-needed -shared" +set exec_output [run_host_cmd "$CC" "$gcc_gas_flag $gcc_ld_flag -shared tmpdir/libneeded1pic.o -Wl,--no-add-needed,-z,defs -Ltmpdir -lneeded1a"] +if { [ regexp "undefined reference to `bar'" $exec_output ] } { + pass $testname +} { + fail $testname +} +set testname "--no-copy-dt-needed-entries -shared" +set exec_output [run_host_cmd "$CC" "$gcc_gas_flag $gcc_ld_flag -shared tmpdir/libneeded1pic.o -Wl,--no-copy-dt-needed-entries,-z,defs -Ltmpdir -lneeded1a"] +if { [ regexp "undefined reference to `bar'" $exec_output ] } { + pass $testname +} { + fail $testname +} # Check to see if the C++ compiler works if { [which $CXX] == 0 } { |