Files
MINGW-packages/mingw-w64-binutils/a93d5cb.diff
2015-05-07 07:32:57 +03:00

34 lines
976 B
Diff

From a93d5cb1976818c8d34133fd8798b3df76269f80 Mon Sep 17 00:00:00 2001
From: Nick Clifton <nickc@redhat.com>
Date: Wed, 29 Apr 2015 12:26:46 +0100
Subject: [PATCH] Add support for absolute PE/x86 relocations.
PR 17099
* coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG
relocs.
---
bfd/coff-i386.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c
index 20d2402..b185b81 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;
--
2.4.0