mirror of
https://github.com/bminor/binutils-gdb.git
synced 2026-03-23 23:59:52 +00:00
LoongArch: Use more appropriate assertions for the relocation of TLS LE
PR ld/33427
Patches introduced in the GCC mainline:
commit 8cad8f94b450be9b73d07bdeef7fa1778d3f2b96
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Sep 5 15:40:51 2025 -0700
c: Update TLS model after processing a TLS variable
Set a tentative TLS model in grokvardecl and update TLS mode with
the default TLS access model after a TLS variable has been fully
processed if the default TLS access model is stronger,
triggered a linker error when building glibc using build-many-glibcs.py.
See: https://sourceware.org/pipermail/binutils/2025-September/144225.html
This fix uses more appropriate assertions.
(cherry picked from commit 87961e47c3)
This commit is contained in:
@@ -4378,7 +4378,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
|
||||
case R_LARCH_TLS_LE_LO12_R:
|
||||
case R_LARCH_TLS_LE64_LO20:
|
||||
case R_LARCH_TLS_LE64_HI12:
|
||||
BFD_ASSERT (resolved_local && elf_hash_table (info)->tls_sec);
|
||||
BFD_ASSERT (bfd_link_executable (info));
|
||||
|
||||
relocation += rel->r_addend;
|
||||
relocation = tlsoff (info, relocation);
|
||||
|
||||
@@ -171,6 +171,18 @@ if [istarget "loongarch64-*-*"] {
|
||||
] \
|
||||
] \
|
||||
}
|
||||
|
||||
run_ld_link_tests \
|
||||
[list \
|
||||
[list \
|
||||
"undefind weak with tls le" \
|
||||
"" "-e0" \
|
||||
"" \
|
||||
{undefweak_le.s} \
|
||||
{} \
|
||||
"undefweak_le" \
|
||||
] \
|
||||
]
|
||||
}
|
||||
|
||||
if [istarget "loongarch64-*-*"] {
|
||||
|
||||
7
ld/testsuite/ld-loongarch-elf/undefweak_le.s
Normal file
7
ld/testsuite/ld-loongarch-elf/undefweak_le.s
Normal file
@@ -0,0 +1,7 @@
|
||||
_start:
|
||||
lu12i.w $t0,%le_hi20_r(undefweak_le)
|
||||
add.d $t0,$t0,$tp,%le_add_r(undefweak_le)
|
||||
ld.d $t0,$t0,%le_lo12_r(undefweak_le)
|
||||
|
||||
.weak undefweak_le
|
||||
.hidden undefweak_le
|
||||
Reference in New Issue
Block a user