Improve warnings for relocations referring to discarded sections.

gold/
	* target-reloc.h (relocate_section): Add local symbol index or global
	symbol name to warning about relocation that refers to discarded
	section.
This commit is contained in:
Cary Coutant 2018-04-05 14:51:37 -07:00
parent 2d8c1a2318
commit c54b27d1c0
2 changed files with 25 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2018-04-05 Cary Coutant <ccoutant@gmail.com>
* target-reloc.h (relocate_section): Add local symbol index or global
symbol name to warning about relocation that refers to discarded
section.
2018-04-05 James Cowgill <james.cowgill@mips.com>
Revert previous patch and apply revised patch.

View File

@ -305,6 +305,7 @@ relocate_section(
const Symbol_value<size> *psymval;
bool is_defined_in_discarded_section;
unsigned int shndx;
const Symbol* gsym = NULL;
if (r_sym < local_count
&& (reloc_symbol_changes == NULL
|| (*reloc_symbol_changes)[i] == NULL))
@ -327,7 +328,6 @@ relocate_section(
}
else
{
const Symbol* gsym;
if (reloc_symbol_changes != NULL
&& (*reloc_symbol_changes)[i] != NULL)
gsym = (*reloc_symbol_changes)[i];
@ -383,9 +383,24 @@ relocate_section(
else
{
if (comdat_behavior == CB_WARNING)
gold_warning_at_location(relinfo, i, offset,
_("relocation refers to discarded "
"section"));
{
if (gsym == NULL)
{
gold_warning_at_location(
relinfo, i, offset,
_("relocation refers to local symbol %d "
"defined in discarded section"),
r_sym);
}
else
{
gold_warning_at_location(
relinfo, i, offset,
_("relocation refers to symbol \"%s\" "
"defined in discarded section"),
gsym->demangled_name().c_str());
}
}
symval2.set_output_value(0);
}
symval2.set_no_output_symtab_entry();