diff options
author | Doug Kwan <dougkwan@google.com> | 2010-08-28 08:05:04 +0000 |
---|---|---|
committer | Doug Kwan <dougkwan@google.com> | 2010-08-28 08:05:04 +0000 |
commit | a464928644b6811cfa7a7de2652d3eb00fe75f6d (patch) | |
tree | 297c6e9987fd140ff1627afa5c020b26d22f23b4 /gold/testsuite/Makefile.in | |
parent | 89a2ee5a089604df716321acbc40137ef408afe8 (diff) | |
download | gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.zip gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.tar.gz gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.tar.bz2 |
2010-08-27 Doug Kwan <dougkwan@google.com>
* gold/resolve.cc (Symbol_table::should_override): Let a weak
reference override an existing dynamic weak reference.
* testsuite/Makefile.am: Add new test dyn_weak_ref.
* testsuite/Makefile.in: Regenerate.
* testsuite/dyn_weak_ref.sh: New file.
* testsuite/dyn_weak_ref_1.c: Ditto.
* testsuite/dyn_weak_ref_2.c: Ditto.
Diffstat (limited to 'gold/testsuite/Makefile.in')
-rw-r--r-- | gold/testsuite/Makefile.in | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in index 9405e27..29caa06 100644 --- a/gold/testsuite/Makefile.in +++ b/gold/testsuite/Makefile.in @@ -309,12 +309,16 @@ check_PROGRAMS = object_unittest$(EXEEXT) binary_unittest$(EXEEXT) \ # symbol versioning is not used. # Test that strong reference to a weak symbol in a DSO remains strong. + +# Test that a strong weak reference remains strong if there is another +# weak reference in a DSO. @GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_27 = exclude_libs_test.sh \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ discard_locals_test.sh \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ hidden_test.sh \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ retain_symbols_file_test.sh \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ no_version_test.sh \ -@GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def.sh +@GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def.sh \ +@GCC_TRUE@@NATIVE_LINKER_TRUE@ dyn_weak_ref.sh @GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_28 = exclude_libs_test.syms \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ discard_locals_test.syms \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ discard_locals_relocatable_test1.syms \ @@ -322,7 +326,8 @@ check_PROGRAMS = object_unittest$(EXEEXT) binary_unittest$(EXEEXT) \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ hidden_test.err \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ retain_symbols_file_test.stdout \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ no_version_test.stdout \ -@GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def.stdout +@GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def.stdout \ +@GCC_TRUE@@NATIVE_LINKER_TRUE@ dyn_weak_ref.stdout @GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_29 = exclude_libs_test.syms \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ libexclude_libs_test_1.a \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ libexclude_libs_test_2.a \ @@ -343,7 +348,10 @@ check_PROGRAMS = object_unittest$(EXEEXT) binary_unittest$(EXEEXT) \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ no_version_test.stdout \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def_1.so \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def_2.so \ -@GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def.stdout +@GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def.stdout \ +@GCC_TRUE@@NATIVE_LINKER_TRUE@ dyn_weak_ref_1.so \ +@GCC_TRUE@@NATIVE_LINKER_TRUE@ dyn_weak_ref_2.so \ +@GCC_TRUE@@NATIVE_LINKER_TRUE@ dyn_weak_ref.stdout @GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@am__append_30 = large @GCC_FALSE@large_DEPENDENCIES = @MCMODEL_MEDIUM_FALSE@large_DEPENDENCIES = @@ -3272,6 +3280,8 @@ no_version_test.sh.log: no_version_test.sh @p='no_version_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) strong_ref_weak_def.sh.log: strong_ref_weak_def.sh @p='strong_ref_weak_def.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) +dyn_weak_ref.sh.log: dyn_weak_ref.sh + @p='dyn_weak_ref.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) split_i386.sh.log: split_i386.sh @p='split_i386.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) split_x86_64.sh.log: split_x86_64.sh @@ -4448,6 +4458,18 @@ uninstall-am: @GCC_TRUE@@NATIVE_LINKER_TRUE@ strong_ref_weak_def_2.so @GCC_TRUE@@NATIVE_LINKER_TRUE@strong_ref_weak_def.stdout: strong_ref_weak_def_1.so @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_READELF) -sWD $< > $@ +@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_2.o: dyn_weak_ref_2.c +@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(COMPILE) -o $@ -c -fPIC $< +@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_2.so: dyn_weak_ref_2.o gcctestdir/ld +@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld -shared -o $@ dyn_weak_ref_2.o +@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_1.o: dyn_weak_ref_1.c +@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(COMPILE) -o $@ -c -fPIC $< +# We intentionally put dyn_weak_ref_2.so in front of dyn_weak_ref_1.o +# so that the weak ref there goes to gold's symbol table first. +@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_1.so: dyn_weak_ref_1.o dyn_weak_ref_2.so gcctestdir/ld +@GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld -shared -o $@ dyn_weak_ref_2.so dyn_weak_ref_1.o +@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref.stdout: dyn_weak_ref_1.so +@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_READELF) -sWD $< > $@ @GCC_TRUE@@NATIVE_LINKER_TRUE@start_lib_test: start_lib_test_main.o libstart_lib_test.a start_lib_test_2.o start_lib_test_3.o \ @GCC_TRUE@@NATIVE_LINKER_TRUE@ gcctestdir/ld @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(LINK) -Bgcctestdir/ -o $@ start_lib_test_main.o -L. -lstart_lib_test \ |