mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-19 13:51:44 +08:00
LoongArch: Add relaxation support for call36 that jump to PLT entry
Part of commit a104f0a3e620 ("LoongArch: Add more relaxation support for call36") in master. This part is needed for 2.43 branch to fix a link failure of QtWebEngine-6.8.1, which can be demonstrated with a reduced test case (with -shared): .text .zero 1 << 27 # pretending we have a lot of code in .text .globl f # preemptible, thus must be called via PLT f: move $a0, $r0 ret g: pcaddu18i $t0, %call36(f) jr $t0 Signed-off-by: Xi Ruoyao <xry111@xry111.site>
This commit is contained in:
parent
e17aa8bbd8
commit
bb9a0a36e7
@ -5410,6 +5410,11 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
|
||||
&& GOT_TLS_GD_BOTH_P (tls_type))
|
||||
symval += 2 * GOT_ENTRY_SIZE;
|
||||
}
|
||||
else if (h->plt.offset != MINUS_ONE)
|
||||
{
|
||||
sym_sec = htab->elf.splt ? htab->elf.splt : htab->elf.iplt;
|
||||
symval = h->plt.offset;
|
||||
}
|
||||
else if ((h->root.type == bfd_link_hash_defined
|
||||
|| h->root.type == bfd_link_hash_defweak)
|
||||
&& h->root.u.def.section != NULL
|
||||
|
Loading…
x
Reference in New Issue
Block a user