[Bug stdio/33300] strip --strip-unneeded "breaks" libc.a (causing segfault in Rust programs linked libc statically)
cvs-commit at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Fri Aug 22 19:03:19 GMT 2025
https://sourceware.org/bugzilla/show_bug.cgi?id=33300
--- Comment #18 from Sourceware Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <hjl@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b4ab549ae5558b9fd818a6268c32480b51fda9f6
commit b4ab549ae5558b9fd818a6268c32480b51fda9f6
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Aug 21 16:57:22 2025 -0700
libio: Properly link in libio functions in static binaries
commit 3020f72618e4f1d7338cd42b8bc7b2813e961b5a
Author: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
Date: Tue Dec 27 18:11:43 2022 -0300
libio: Remove the usage of __libc_IO_vtables
added
#define libio_static_fn_required(name) __asm (".globl " #name);
to link in libio functions in static binaries. But there is no relocation
in
.globl _IO_file_open
and "strip --strip-unneeded" will remove such unreferenced symbols which
breaks static binaries. Redefine libio_static_fn_required to create a
reference to the required function with
static __typeof (name) *const name##_p __attribute__((used)) = name;
This fixes BZ #33300.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Tested-by: Xi Ruoyao <xry111@xry111.site>
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list