aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2010-08-28 08:05:04 +0000
committerDoug Kwan <dougkwan@google.com>2010-08-28 08:05:04 +0000
commita464928644b6811cfa7a7de2652d3eb00fe75f6d (patch)
tree297c6e9987fd140ff1627afa5c020b26d22f23b4 /gold/testsuite/dyn_weak_ref_2.c
parent * elflink.c (_bfd_elf_dynamic_symbol_p): Rename param. Make (diff)
downloadbinutils-gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.tar.gz
binutils-gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.tar.bz2
binutils-gdb-a464928644b6811cfa7a7de2652d3eb00fe75f6d.zip
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/dyn_weak_ref_2.c')
-rw-r--r--gold/testsuite/dyn_weak_ref_2.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gold/testsuite/dyn_weak_ref_2.c b/gold/testsuite/dyn_weak_ref_2.c
new file mode 100644
index 00000000000..8a087a15714
--- /dev/null
+++ b/gold/testsuite/dyn_weak_ref_2.c
@@ -0,0 +1,32 @@
+// dyn_weak_ref_1.c -- test that a weak ref remains weak in output when
+// there is a DSO with the same weak ref.
+
+// Copyright 2010 Free Software Foundation, Inc.
+// Written by Doug Kwan <dougkwan@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// We test that we correctly deal with a weak reference to from both
+// a DSO and a weak reference to the same symbol in an executable. The
+// symbol should remains weak.
+
+// This source is used to build a DSO that contains a weak reference.
+
+extern void weak_ref (void) __attribute__((weak));
+
+void* ptr2 = weak_ref;