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>
* 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 (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
add back the symbol value in order to cancel out an