* 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.
This commit is contained in:
Cary Coutant 2011-09-29 17:04:36 +00:00
parent 68fb0ec00b
commit a7dac15368
3 changed files with 22 additions and 1 deletions

View file

@ -1,3 +1,11 @@
2011-09-29 Cary Coutant <ccoutant@google.com>
* 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.
2011-09-27 Viktor Kutuzov <vkutuzov@accesssoftek.com>
Ian Lance Taylor <iant@google.com>

View file

@ -685,7 +685,7 @@ Sized_incremental_binary<size, big_endian>::do_process_got_plt(
gold_assert(plt_desc >= first_global && plt_desc < symtab_count);
Symbol* sym = this->global_symbol(plt_desc - first_global);
// Add the PLT entry only if the symbol is still referenced.
if (sym->in_reg())
if (sym != NULL && sym->in_reg())
{
gold_debug(DEBUG_INCREMENTAL,
"PLT entry %d: %s",

View file

@ -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"));