aboutsummaryrefslogtreecommitdiff
path: root/gold/symtab.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2011-09-29 17:04:36 +0000
committerCary Coutant <ccoutant@google.com>2011-09-29 17:04:36 +0000
commita7dac15368485853f4bd463352afb9b49517b624 (patch)
treefc084d79c73bad8d161d8907b033b703553b3186 /gold/symtab.cc
parent68fb0ec00bfd65b1085a011086d0328a904ab3df (diff)
downloadgdb-a7dac15368485853f4bd463352afb9b49517b624.zip
gdb-a7dac15368485853f4bd463352afb9b49517b624.tar.gz
gdb-a7dac15368485853f4bd463352afb9b49517b624.tar.bz2
* gold/incremental.cc (Sized_incremental_binary::do_process_got_plt):
Check for NULL. * gold/symtab.cc (Symbol_table::add_from_relobj): Ignore version symbols during incremental update. (Symbol_table::add_from_dynobj): Likewise.
Diffstat (limited to 'gold/symtab.cc')
-rw-r--r--gold/symtab.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc
index ff1b5ca..a90fee4 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -1143,6 +1143,14 @@ Symbol_table::add_from_relobj(
bool is_default_version = false;
bool is_forced_local = false;
+ // FIXME: For incremental links, we don't store version information,
+ // so we need to ignore version symbols for now.
+ if (parameters->incremental_update() && ver != NULL)
+ {
+ namelen = ver - name;
+ ver = NULL;
+ }
+
if (ver != NULL)
{
// The symbol name is of the form foo@VERSION or foo@@VERSION
@@ -1346,6 +1354,11 @@ Symbol_table::add_from_dynobj(
return;
}
+ // FIXME: For incremental links, we don't store version information,
+ // so we need to ignore version symbols for now.
+ if (parameters->incremental_update())
+ versym = NULL;
+
if (versym != NULL && versym_size / 2 < count)
{
dynobj->error(_("too few symbol versions"));