diff options
author | Cary Coutant <ccoutant@google.com> | 2009-08-19 17:53:50 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2009-08-19 17:53:50 +0000 |
commit | 2da73f13b5a30647720a7744350ef84ce7e222d1 (patch) | |
tree | 98c5664bc0bc3b8b0dcf5057ed59d9cb2d78f16c /gold | |
parent | 2db7050185e8c5248a2b6c41498b44419007db95 (diff) | |
download | gdb-2da73f13b5a30647720a7744350ef84ce7e222d1.zip gdb-2da73f13b5a30647720a7744350ef84ce7e222d1.tar.gz gdb-2da73f13b5a30647720a7744350ef84ce7e222d1.tar.bz2 |
* resolve.cc (Symbol_table::resolve): Don't complain about defined
symbols in shared libraries overridden by hidden or internal symbols
in the main program.
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/resolve.cc | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 9084d68..c57002c 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2009-08-19 Cary Coutant <ccoutant@google.com> + + * resolve.cc (Symbol_table::resolve): Don't complain about defined + symbols in shared libraries overridden by hidden or internal symbols + in the main program. + 2009-08-19 Chris Demetriou <cgd@google.com> * testsuite/debug_msg.sh: Match .* rather than ${srcdir} when diff --git a/gold/resolve.cc b/gold/resolve.cc index 7299c55..45a4a7a 100644 --- a/gold/resolve.cc +++ b/gold/resolve.cc @@ -257,8 +257,9 @@ Symbol_table::resolve(Sized_symbol<size>* to, // Record that we've seen this symbol in a regular object. to->set_in_reg(); } - else if (to->visibility() == elfcpp::STV_HIDDEN - || to->visibility() == elfcpp::STV_INTERNAL) + else if (st_shndx == elfcpp::SHN_UNDEF + && (to->visibility() == elfcpp::STV_HIDDEN + || to->visibility() == elfcpp::STV_INTERNAL)) { // A dynamic object cannot reference a hidden or internal symbol // defined in another object. |