aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2010-04-07 02:41:35 +0000
committerH.J. Lu <hjl.tools@gmail.com>2010-04-07 02:41:35 +0000
commit6f8bcf84a1bc7412dfee32328b370b6c4599a103 (patch)
tree2f6f57bd1c6c671fb3795ba2b021acd953d0181f /bfd
parentdb564246a859699f649d544e24a42053c1502bb7 (diff)
downloadgdb-6f8bcf84a1bc7412dfee32328b370b6c4599a103.zip
gdb-6f8bcf84a1bc7412dfee32328b370b6c4599a103.tar.gz
gdb-6f8bcf84a1bc7412dfee32328b370b6c4599a103.tar.bz2
Don't bind unique symbol locally.
bfd/ 2010-04-06 H.J. Lu <hongjiu.lu@intel.com> PR ld/11434 * elf-bfd.h (SYMBOLIC_BIND): Don't bind unique symbol locally. ld/testsuite/ 2010-04-06 H.J. Lu <hongjiu.lu@intel.com> PR ld/11434 * ld/testsuite/ld-x86-64/unique1.d: New. * ld/testsuite/ld-x86-64/unique1.s: Likewise. * ld-x86-64/x86-64.exp: Run unique1.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf-bfd.h5
2 files changed, 8 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6d425d1..1d4fecb 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/11434
+ * elf-bfd.h (SYMBOLIC_BIND): Don't bind unique symbol locally.
+
2010-04-06 Tristan Gingold <gingold@adacore.com>
* vms-lib.c (_bfd_vms_lib_write_archive_contents): Fix idd flags.
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 74348d3..05e17c8 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2328,8 +2328,9 @@ extern asection _bfd_elf_large_com_section;
while (0)
/* Will a symbol be bound to the the definition within the shared
- library, if any. */
+ library, if any. A unique symbol can never be bound locally. */
#define SYMBOLIC_BIND(INFO, H) \
- ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic))
+ (!(H)->unique_global \
+ && ((INFO)->symbolic || ((INFO)->dynamic && !(H)->dynamic)))
#endif /* _LIBELF_H_ */