Fix the calculation of AMD64_PCRQUAD relocations.

PR ld/17955
	* coff-x86_64.c (coff_amd64_rtype_to_howto): Use an 8 byte offset
	for R_AMD64_PCRQUAD relocations.
This commit is contained in:
Awson
2016-09-26 16:16:25 +01:00
committed by Nick Clifton
parent 2b848ebdbb
commit 384f750334
2 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2016-09-26 Awson <kyrab@mail.ru>
PR ld/17955
* coff-x86_64.c (coff_amd64_rtype_to_howto): Use an 8 byte offset
for R_AMD64_PCRQUAD relocations.
2016-09-26 Alan Modra <amodra@gmail.com> 2016-09-26 Alan Modra <amodra@gmail.com>
* elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare. * elf-bfd.h (_bfd_elf_ppc_merge_fp_attributes): Declare.

View File

@ -614,7 +614,12 @@ coff_amd64_rtype_to_howto (bfd *abfd ATTRIBUTE_UNUSED,
#if defined(COFF_WITH_PE) #if defined(COFF_WITH_PE)
if (howto->pc_relative) if (howto->pc_relative)
{ {
*addendp -= 4; #ifndef DONT_EXTEND_AMD64
if (rel->r_type == R_AMD64_PCRQUAD)
*addendp -= 8;
else
#endif
*addendp -= 4;
/* If the symbol is defined, then the generic code is going to /* If the symbol is defined, then the generic code is going to
add back the symbol value in order to cancel out an add back the symbol value in order to cancel out an