From: Nick Clifton Date: Wed, 29 Apr 2015 11:26:46 +0000 (+0100) Subject: Add support for absolute PE/x86 relocations. X-Git-Tag: gdb-7.10-branchpoint~542 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a93d5cb1976818c8d34133fd8798b3df76269f80;p=thirdparty%2Fbinutils-gdb.git Add support for absolute PE/x86 relocations. PR 17099 * coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG relocs. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2b4b32f8dde..db19e8a5763 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2015-04-29 Nick Clifton + + PR 17099 + * coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG + relocs. + 2015-04-27 Andreas Krebbel * elf-s390-common.c (elf_s390_merge_obj_attributes): New function. diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c index 20d240204a1..b185b81803f 100644 --- a/bfd/coff-i386.c +++ b/bfd/coff-i386.c @@ -509,7 +509,12 @@ coff_i386_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED, *addendp -= pe_data(sec->output_section->owner)->pe_opthdr.ImageBase; } - BFD_ASSERT (sym != NULL); + /* PR 17099 - Absolute R_PCRLONG relocations do not need a symbol. */ + if (rel->r_type == R_PCRLONG && sym == NULL) + *addendp -= rel->r_vaddr; + else + BFD_ASSERT (sym != NULL); + if (rel->r_type == R_SECREL32 && sym != NULL) { bfd_vma osect_vma;