* elf64-x86-64.c (elf64_x86_64_relocate_section): Fix linking of
shared libraries.
This commit is contained in:
parent
a7c14aa534
commit
f631948d0b
|
@ -1,3 +1,8 @@
|
|||
2001-06-20 Bo Thorsen <bo@suse.co.uk>
|
||||
|
||||
* elf64-x86-64.c (elf64_x86_64_relocate_section): Fix linking of
|
||||
shared libraries.
|
||||
|
||||
2001-06-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||
|
||||
* configure.host (mips64-*-linux): Reformat.
|
||||
|
|
|
@ -1442,7 +1442,9 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
case R_X86_64_PC8:
|
||||
case R_X86_64_PC16:
|
||||
case R_X86_64_PC32:
|
||||
if (h == NULL)
|
||||
if (h == NULL || h->dynindx == -1
|
||||
|| (info->symbolic
|
||||
&& h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))
|
||||
break;
|
||||
/* Fall through. */
|
||||
case R_X86_64_8:
|
||||
|
@ -1451,15 +1453,7 @@ elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section,
|
|||
case R_X86_64_64:
|
||||
/* FIXME: The ABI says the linker should make sure the value is
|
||||
the same when it's zeroextended to 64 bit. */
|
||||
if (info->shared
|
||||
&& (input_section->flags & SEC_ALLOC) != 0
|
||||
&& ((r_type != R_X86_64_PC8
|
||||
&& r_type != R_X86_64_PC16
|
||||
&& r_type != R_X86_64_PC32)
|
||||
|| (! info->symbolic
|
||||
|| (h->elf_link_hash_flags
|
||||
& ELF_LINK_HASH_DEF_REGULAR) == 0)))
|
||||
|
||||
if (info->shared && (input_section->flags & SEC_ALLOC) != 0)
|
||||
{
|
||||
Elf_Internal_Rela outrel;
|
||||
boolean skip, relocate;
|
||||
|
|
Loading…
Reference in New Issue