Browse Source

* 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.
gdb_7_4-branch
Cary Coutant 15 years ago
parent
commit
a7dac15368
  1. 8
      gold/ChangeLog
  2. 2
      gold/incremental.cc
  3. 13
      gold/symtab.cc

8
gold/ChangeLog

@ -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>

2
gold/incremental.cc

@ -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",

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

Loading…
Cancel
Save