2009-10-23 Kai Tietz <kai.tietz@onevision.com>

* coff-x86_64.c (coff_amd64_rtype_to_howto): Subtract offset
        of R_AMD64_PCRLONG_<X> relocations from addend.
This commit is contained in:
Kai Tietz 2009-10-23 11:30:25 +00:00
parent 244d525937
commit 406dba1369
2 changed files with 10 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2009-10-23 Kai Tietz <kai.tietz@onevision.com>
* coff-x86_64.c (coff_amd64_rtype_to_howto): Subtract offset
of R_AMD64_PCRLONG_<X> relocations from addend.
2009-10-23 Alan Modra <amodra@bigpond.net.au>
* plugin.c: Produce empty object if not BFD_SUPPORTS_PLUGINS.

View File

@ -550,16 +550,16 @@ coff_amd64_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
bfd_set_error (bfd_error_bad_value);
return NULL;
}
if (rel->r_type >= R_AMD64_PCRLONG_1 && rel->r_type <= R_AMD64_PCRLONG_5)
{
rel->r_vaddr += (bfd_vma)(rel->r_type-R_AMD64_PCRLONG);
rel->r_type = R_AMD64_PCRLONG;
}
howto = howto_table + rel->r_type;
#if defined(COFF_WITH_PE)
/* Cancel out code in _bfd_coff_generic_relocate_section. */
*addendp = 0;
if (rel->r_type >= R_AMD64_PCRLONG_1 && rel->r_type <= R_AMD64_PCRLONG_5)
{
*addendp -= (bfd_vma)(rel->r_type - R_AMD64_PCRLONG);
rel->r_type = R_AMD64_PCRLONG;
}
#endif
if (howto->pc_relative)