From b706dc83c1a3d333c25aaaeb088960322845b8fd Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Wed, 31 Mar 2010 16:32:02 +0000 Subject: [PATCH] 2010-03-31 Kai Tietz * coff-i386.c (in_reloc_p): Check also for R_SECREL32. * coff-x86_64.c (in_reloc_p): Check also for R_AMD64_SECREL. --- bfd/ChangeLog | 5 +++++ bfd/coff-i386.c | 3 ++- bfd/coff-x86_64.c | 11 ++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 172726c66ac..723b6654e68 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-03-31 Kai Tietz + + * 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 * elf64-ppc.c (ppc64_elf_relocate_section): Nop out optimized diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c index e7c4e8a2794..57c47d03548 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 4d500fe7cd5..8083d978dd9 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 -- 2.30.2