aboutsummaryrefslogtreecommitdiff
path: root/gold/target-reloc.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2008-09-16 17:23:37 +0000
committerIan Lance Taylor <ian@airs.com>2008-09-16 17:23:37 +0000
commit9c2d0ef98abc05ea6fae35be6db732b22bba71b5 (patch)
treeec947c7c91f54839a27dc26623b8cde1e3d11d45 /gold/target-reloc.h
parentde31bda5f611b1092f12d3db8c2ffcbb125c86fb (diff)
downloadfsf-binutils-gdb-9c2d0ef98abc05ea6fae35be6db732b22bba71b5.zip
fsf-binutils-gdb-9c2d0ef98abc05ea6fae35be6db732b22bba71b5.tar.gz
fsf-binutils-gdb-9c2d0ef98abc05ea6fae35be6db732b22bba71b5.tar.bz2
* target-reloc.h (relocate_section): Check whether a symbol is
defined by the ABI before reporting an undefined symbol error. * target.h (Target::is_defined_by_abi): Make parameter const. (Target::do_is_defined_by_abi): Likewise. * i386.cc (Target_i386::do_is_defined_by_abi): Likewise. * powerpc.cc (Target_powerpc::do_is_defined_by_abi): Likewise. * sparc.cc (Target_sparc::do_is_defined_by_abi): Likewise. * x86_64.cc (Target_x86_64::do_is_defined_by_abi): Likewise. * testsuite/Makefile.am (tls_test_shared.so): Add -Wl,-z,defs. * testsuite/Makefile.in: Rebuild.
Diffstat (limited to 'gold/target-reloc.h')
-rw-r--r--gold/target-reloc.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gold/target-reloc.h b/gold/target-reloc.h
index 6683ddd..1cdc244 100644
--- a/gold/target-reloc.h
+++ b/gold/target-reloc.h
@@ -283,6 +283,7 @@ relocate_section(
if (sym != NULL
&& sym->is_undefined()
&& sym->binding() != elfcpp::STB_WEAK
+ && !target->is_defined_by_abi(sym)
&& (!parameters->options().shared() // -shared
|| parameters->options().defs())) // -z defs
gold_undefined_symbol(sym, relinfo, i, offset);