diff options
author | Ian Lance Taylor <ian@airs.com> | 2011-07-06 04:43:39 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2011-07-06 04:43:39 +0000 |
commit | 24d47b3460c983e3b01d8230a46b1ea19828bde1 (patch) | |
tree | e23f94aea5ba8be59309ce85dd9010102b149eac | |
parent | 21083d0f0cae4d0c379b672be35f06fb378eda3f (diff) | |
download | binutils-24d47b3460c983e3b01d8230a46b1ea19828bde1.zip binutils-24d47b3460c983e3b01d8230a46b1ea19828bde1.tar.gz binutils-24d47b3460c983e3b01d8230a46b1ea19828bde1.tar.bz2 |
PR gold/12952
* resolve.cc (Symbol::override_base_with_special): Simply override
version with special symbol version, ignoring previous version.
-rw-r--r-- | gold/ChangeLog | 6 | ||||
-rw-r--r-- | gold/resolve.cc | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 819f250..ec1f3ea 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,11 @@ 2011-07-05 Ian Lance Taylor <iant@google.com> + PR gold/12952 + * resolve.cc (Symbol::override_base_with_special): Simply override + version with special symbol version, ignoring previous version. + +2011-07-05 Ian Lance Taylor <iant@google.com> + * object.cc (Sized_relobj_file::include_section_group): Add information to comment about signature location. diff --git a/gold/resolve.cc b/gold/resolve.cc index 8850a3d..720b350 100644 --- a/gold/resolve.cc +++ b/gold/resolve.cc @@ -911,7 +911,15 @@ Symbol::override_base_with_special(const Symbol* from) } if (same_name) - this->override_version(from->version_); + { + // When overriding a versioned symbol with a special symbol, we + // may be changing the version. This will happen if we see a + // special symbol such as "_end" defined in a shared object with + // one version (from a version script), but we want to define it + // here with a different version (from a different version + // script). + this->version_ = from->version_; + } this->type_ = from->type_; this->binding_ = from->binding_; this->override_visibility(from->visibility_); |