[Bug libc/34396] sparc64-unknown-linux-gnu , Gentoo: >200 test failures, SIGILL in many binaries

"adhemerval.zanella at linaro dot org via Glibc-bugs" <[email protected]> Tue, 14 Jul 2026 12:08:26 +0000
Newsgroups gmane.comp.lib.glibc.bugs
Message-ID <[email protected]/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=3D34396

--- Comment #4 from Adhemerval Zanella <adhemerval.zanella at linaro dot or=
g> ---
I figured out the issue and why I could not reproduce it.  It seems I hit a=
 ld
bug that disable IFUNC/multiarch on sparc (libc_cv_ld_gnu_indirect_function=
=3Dno
-> multi_arch=3Dno), and testing with some old toolchain I have I now see t=
he
problem:

Toolchain       ld version      Configure outcome       This bug
gcc-12  2.38    ifunc OK        multi_arch=3Dyes          reproduces
gcc-13  2.40    ifunc OK        multi_arch=3Dyes          reproduces
gcc-14  2.44    link error      multi_arch=3Dno           hidden
gcc-15  2.46.1  ld SEGFAULT     multi_arch=3Dno           hidden
gcc-16  2.46.0  ld SEGFAULT     multi_arch=3Dno           hidden

The issue after b75ad99d45b (TCB set up before static IFUNC resolvers),=20=
=20=20=20
__libc_setup_tls -> _dl_allocate_tls_init copies the TLS init image with the
IFUNC __mempcpy before ARCH_SETUP_IREL resolves it, so on a multi-arch
sparcv9/sparc64 static build the call jumps through an unrelocated PLT slot=
 and
the process dies with SIGILL.

I will send a fix fo this.

--=20
You are receiving this mail because:
You are on the CC list for the bug.=