aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2010-03-31 16:32:02 +0000
committerKai Tietz <kai.tietz@onevision.com>2010-03-31 16:32:02 +0000
commitb706dc83c1a3d333c25aaaeb088960322845b8fd (patch)
tree03b19ad900fdc43b5fabc2847e1071ceb3c5d3b7
parent2ae2a0b7f1515ed92ed1dbd071af7856a6061242 (diff)
downloadgdb-b706dc83c1a3d333c25aaaeb088960322845b8fd.zip
gdb-b706dc83c1a3d333c25aaaeb088960322845b8fd.tar.gz
gdb-b706dc83c1a3d333c25aaaeb088960322845b8fd.tar.bz2
2010-03-31 Kai Tietz <kai.tietz@onevision.com>
* coff-i386.c (in_reloc_p): Check also for R_SECREL32. * coff-x86_64.c (in_reloc_p): Check also for R_AMD64_SECREL.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-i386.c3
-rw-r--r--bfd/coff-x86_64.c11
3 files changed, 13 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 172726c6..723b665 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-31 Kai Tietz <kai.tietz@onevision.com>
+
+ * coff-i386.c (in_reloc_p): Check also for R_SECREL32.
+ * coff-x86_64.c (in_reloc_p): Check also for R_AMD64_SECREL.
+
2010-03-31 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_relocate_section): Nop out optimized
diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c
index e7c4e8a..57c47d0 100644
--- a/bfd/coff-i386.c
+++ b/bfd/coff-i386.c
@@ -195,7 +195,8 @@ static bfd_boolean in_reloc_p (abfd, howto)
bfd * abfd ATTRIBUTE_UNUSED;
reloc_howto_type *howto;
{
- return ! howto->pc_relative && howto->type != R_IMAGEBASE;
+ return ! howto->pc_relative && howto->type != R_IMAGEBASE
+ && howto->type != R_SECREL32;
}
#endif /* COFF_WITH_PE */
diff --git a/bfd/coff-x86_64.c b/bfd/coff-x86_64.c
index 4d500fe..8083d97 100644
--- a/bfd/coff-x86_64.c
+++ b/bfd/coff-x86_64.c
@@ -192,7 +192,8 @@ coff_amd64_reloc (bfd *abfd,
static bfd_boolean
in_reloc_p (bfd *abfd ATTRIBUTE_UNUSED, reloc_howto_type *howto)
{
- return ! howto->pc_relative && howto->type != R_AMD64_IMAGEBASE;
+ return ! howto->pc_relative && howto->type != R_AMD64_IMAGEBASE
+ && howto->type != R_AMD64_SECREL;
}
#endif /* COFF_WITH_PE */
@@ -555,10 +556,10 @@ coff_amd64_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
#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;
+ 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