34 lines
976 B
Diff
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
|
|
|