aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog10
-rw-r--r--gold/options.cc3
-rw-r--r--gold/symtab.cc1
3 files changed, 14 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 4c14658..de0f01b 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,13 @@
+2008-08-28 Kris Van Hees <kris.van.hees@oracle.com>
+
+ PR gold/6858
+ * options.cc (General_options::finalize): Allow undefined symbols
+ in shlibs if linking -shared.
+
+ PR gold/6859
+ * symtab.cc (Symbol::init_base_undefined): Mark explicitly undefined
+ symbols as not needing a dynsym entry.
+
2008-08-20 Craig Silverstein <csilvers@google.com>
* fileread.cc (File_read::open): Do not lock the file unless it
diff --git a/gold/options.cc b/gold/options.cc
index 9b0cebf..78f0b1a 100644
--- a/gold/options.cc
+++ b/gold/options.cc
@@ -764,6 +764,9 @@ General_options::finalize()
this->add_to_library_path_with_sysroot("/usr/lib");
}
+ if (this->shared() && !this->user_set_allow_shlib_undefined())
+ this->set_allow_shlib_undefined(true);
+
// Normalize library_path() by adding the sysroot to all directories
// in the path, as appropriate.
this->add_sysroot();
diff --git a/gold/symtab.cc b/gold/symtab.cc
index c8a5037..37f7d35 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -174,6 +174,7 @@ Symbol::init_base_undefined(const char* name, const char* version,
elfcpp::STV visibility, unsigned char nonvis)
{
this->init_fields(name, version, type, binding, visibility, nonvis);
+ this->dynsym_index_ = -1U;
this->source_ = IS_UNDEFINED;
this->in_reg_ = true;
}