mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 10:03:47 +08:00
LoongArch: Do not check R_LARCH_SOP_PUSH_ABSOLUTE to avoid broken links to old object files
R_LARCH_SOP_PUSH_ABSOLUTE with -fPIC was heavily used in the era of gas-2.38. We do not check this relocation to prevent broken links with old object files.
This commit is contained in:
parent
2513312930
commit
e4ed68e577
@ -756,10 +756,6 @@ loongarch_tls_transition (bfd *input_bfd,
|
||||
return loongarch_tls_transition_without_check (info, r_type, h);
|
||||
}
|
||||
|
||||
/* Look through the relocs for a section during the first phase, and
|
||||
allocate space in the global offset table or procedure linkage
|
||||
table. */
|
||||
|
||||
static bool
|
||||
bad_static_reloc (bfd *abfd, const Elf_Internal_Rela *rel, asection *sec,
|
||||
unsigned r_type, struct elf_link_hash_entry *h,
|
||||
@ -787,6 +783,10 @@ bad_static_reloc (bfd *abfd, const Elf_Internal_Rela *rel, asection *sec,
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Look through the relocs for a section during the first phase, and
|
||||
allocate space in the global offset table or procedure linkage
|
||||
table. */
|
||||
|
||||
static bool
|
||||
loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
asection *sec, const Elf_Internal_Rela *relocs)
|
||||
@ -948,10 +948,11 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
break;
|
||||
|
||||
case R_LARCH_ABS_HI20:
|
||||
case R_LARCH_SOP_PUSH_ABSOLUTE:
|
||||
if (bfd_link_pic (info))
|
||||
return bad_static_reloc (abfd, rel, sec, r_type, h, isym);
|
||||
|
||||
/* Fall through. */
|
||||
case R_LARCH_SOP_PUSH_ABSOLUTE:
|
||||
if (h != NULL)
|
||||
/* If this reloc is in a read-only section, we might
|
||||
need a copy reloc. We can't check reliably at this
|
||||
|
Loading…
Reference in New Issue
Block a user