Add additional information to relocation overflow errors.
gold/ PR gold/18695 * x86_64.cc (Target_x86_64::Relocate::relocate): Add additional information to relocation overflow errors.
This commit is contained in:
parent
7c8b700c92
commit
17ecd01611
2 changed files with 31 additions and 2 deletions
|
@ -1,5 +1,12 @@
|
|||
2016-02-07 Cary Coutant <ccoutant@gmail.com>
|
||||
|
||||
PR gold/18695
|
||||
* x86_64.cc (Target_x86_64::Relocate::relocate): Add additional
|
||||
information to relocation overflow errors.
|
||||
|
||||
2016-02-06 Cary Coutant <ccoutant@gmail.com>
|
||||
|
||||
PR gold/18695
|
||||
* x86_64.cc (X86_64_relocate_functions::pcrela32_check): Fix x32
|
||||
overflow checking when symbol value + addend < 0.
|
||||
|
||||
|
|
|
@ -3701,8 +3701,30 @@ Target_x86_64<size>::Relocate::relocate(
|
|||
}
|
||||
|
||||
if (rstatus == Reloc_funcs::RELOC_OVERFLOW)
|
||||
gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
|
||||
_("relocation overflow"));
|
||||
{
|
||||
if (gsym == NULL)
|
||||
{
|
||||
unsigned int r_sym = elfcpp::elf_r_sym<size>(rela.get_r_info());
|
||||
gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
|
||||
_("relocation overflow: "
|
||||
"reference to local symbol %u in %s"),
|
||||
r_sym, object->name().c_str());
|
||||
}
|
||||
else if (gsym->is_defined() && gsym->source() == Symbol::FROM_OBJECT)
|
||||
{
|
||||
gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
|
||||
_("relocation overflow: "
|
||||
"reference to '%s' defined in %s"),
|
||||
gsym->name(),
|
||||
gsym->object()->name().c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
gold_error_at_location(relinfo, relnum, rela.get_r_offset(),
|
||||
_("relocation overflow: reference to '%s'"),
|
||||
gsym->name());
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue