x86-64: Properly set converted_reloc

Linker now generates

failed to convert GOTPCREL relocation; relink with --no-relax

for more cases.

bfd/

	* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Properly set
	converted_reloc.

ld/

	* testsuite/ld-x86-64/pr19609-5d.d: Updated.
	* testsuite/ld-x86-64/pr19609-7a.d: Likewise.
	* testsuite/ld-x86-64/pr19609-7c.d: Likewise.
This commit is contained in:
H.J. Lu 2017-09-05 13:41:18 -07:00
parent 5ca79eae06
commit dc08907213
6 changed files with 15 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Properly set
converted_reloc.
2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_convert_load_reloc): Remove the sec

View File

@ -1597,10 +1597,10 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
if (no_overflow)
return TRUE;
convert:
if (h != NULL)
((struct elf_x86_link_hash_entry *) h)->converted_reloc = 1;
convert:
if (opcode == 0xff)
{
/* We have "call/jmp *foo@GOTPCREL(%rip)". */

View File

@ -1,3 +1,9 @@
2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-x86-64/pr19609-5d.d: Updated.
* testsuite/ld-x86-64/pr19609-7a.d: Likewise.
* testsuite/ld-x86-64/pr19609-7c.d: Likewise.
2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-x86-64/pr19609-4e.d: Updated.

View File

@ -1,4 +1,4 @@
#source: pr19609-5.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x80000000
#error: .*relocation truncated to fit: R_X86_64_PC32 .*
#error: failed to convert GOTPCREL relocation; relink with --no-relax

View File

@ -1,4 +1,4 @@
#source: pr19609-7.s
#as: --64 -mrelax-relocations=yes
#ld: -melf_x86_64 -Ttext=0x80000000
#error: .*relocation truncated to fit: R_X86_64_PC32 .*
#error: failed to convert GOTPCREL relocation; relink with --no-relax

View File

@ -1,4 +1,4 @@
#source: pr19609-7.s
#as: --x32 -mrelax-relocations=yes
#ld: -melf32_x86_64 -Ttext=0x80000000
#error: .*relocation truncated to fit: R_X86_64_PC32 .*
#error: failed to convert GOTPCREL relocation; relink with --no-relax