diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2009-10-23 11:30:25 +0000 |
---|---|---|
committer | Kai Tietz <kai.tietz@onevision.com> | 2009-10-23 11:30:25 +0000 |
commit | 406dba1369f40a038ad6c2c52d8e3a290f649a6d (patch) | |
tree | 8ff463e104b4c2297047c2478486d1e2736ea29d /bfd/coff-x86_64.c | |
parent | 244d525937a2d8fb42756e97ca0174c5c97930c4 (diff) | |
download | fsf-binutils-gdb-406dba1369f40a038ad6c2c52d8e3a290f649a6d.zip fsf-binutils-gdb-406dba1369f40a038ad6c2c52d8e3a290f649a6d.tar.gz fsf-binutils-gdb-406dba1369f40a038ad6c2c52d8e3a290f649a6d.tar.bz2 |
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.
Diffstat (limited to 'bfd/coff-x86_64.c')
-rw-r--r-- | bfd/coff-x86_64.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/bfd/coff-x86_64.c b/bfd/coff-x86_64.c index ecce9f4..08ada5a 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) |