aboutsummaryrefslogtreecommitdiff
path: root/gold/resolve.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-01-24 00:15:00 +0000
committerIan Lance Taylor <iant@google.com>2008-01-24 00:15:00 +0000
commit55a934330a2d2f84e4f972454adda275b02f7aef (patch)
tree042b4651da2f08fc6f83926312362580c224ed24 /gold/resolve.cc
parent7af3fd65aa8d8eeab9d078b882397e3f152e1762 (diff)
downloadfsf-binutils-gdb-55a934330a2d2f84e4f972454adda275b02f7aef.zip
fsf-binutils-gdb-55a934330a2d2f84e4f972454adda275b02f7aef.tar.gz
fsf-binutils-gdb-55a934330a2d2f84e4f972454adda275b02f7aef.tar.bz2
Originally from Craig Silverstein, with changes: support using a
version script to force symbols to be local.
Diffstat (limited to 'gold/resolve.cc')
-rw-r--r--gold/resolve.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gold/resolve.cc b/gold/resolve.cc
index 7062ccc..63ed5e7 100644
--- a/gold/resolve.cc
+++ b/gold/resolve.cc
@@ -680,6 +680,7 @@ Symbol::override_base_with_special(const Symbol* from)
gold_assert(!from->has_plt_offset_);
gold_assert(!from->has_warning_);
gold_assert(!from->is_copied_from_dynobj_);
+ gold_assert(!from->is_forced_local_);
}
// Override a symbol with a special symbol.
@@ -719,6 +720,8 @@ Symbol_table::override_with_special(Sized_symbol<size>* tosym,
}
while (ssym != tosym);
}
+ if (tosym->binding() == elfcpp::STB_LOCAL)
+ this->force_local(tosym);
}
// Instantiate the templates we need. We could use the configure