From: Cary Coutant Date: Thu, 5 Apr 2018 21:51:37 +0000 (-0700) Subject: Improve warnings for relocations referring to discarded sections. X-Git-Tag: users/gbenson/thread_db-test/2018-05-23~443 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c54b27d1c04f53043688d5d3141e74ae5c23aba8;p=thirdparty%2Fbinutils-gdb.git 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. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 010dad4e185..97777aaeed3 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2018-04-05 Cary Coutant + + * 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 Revert previous patch and apply revised patch. diff --git a/gold/target-reloc.h b/gold/target-reloc.h index f52e42f62e0..36032fbefbe 100644 --- a/gold/target-reloc.h +++ b/gold/target-reloc.h @@ -305,6 +305,7 @@ relocate_section( const Symbol_value *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();