From: Kai Tietz Date: Fri, 23 Oct 2009 11:30:25 +0000 (+0000) Subject: 2009-10-23 Kai Tietz X-Git-Tag: pf3gnuchains-20100115~201^2~84 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b75665dc81850f4ab0ed9d444ab96ea52464c6e1;p=pf3gnuchains%2Fpf3gnuchains4x.git 2009-10-23 Kai Tietz * coff-x86_64.c (coff_amd64_rtype_to_howto): Subtract offset of R_AMD64_PCRLONG_ relocations from addend. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6fabb76285..35a295a801 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2009-10-23 Kai Tietz + + * coff-x86_64.c (coff_amd64_rtype_to_howto): Subtract offset + of R_AMD64_PCRLONG_ relocations from addend. + 2009-10-23 Alan Modra * plugin.c: Produce empty object if not BFD_SUPPORTS_PLUGINS. diff --git a/bfd/coff-x86_64.c b/bfd/coff-x86_64.c index ecce9f40c8..08ada5a6c1 100644 --- a/bfd/coff-x86_64.c +++ b/bfd/coff-x86_64.c @@ -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)