]> git.ipfire.org Git - thirdparty/glibc.git/commit
libio: Properly link in libio functions in static binaries master
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 21 Aug 2025 23:57:22 +0000 (16:57 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 22 Aug 2025 19:03:00 +0000 (12:03 -0700)
commitb4ab549ae5558b9fd818a6268c32480b51fda9f6
treeaf47f4f9361ea3375c2be3fdf23d4a74e93bcef2
parent3997c50f0bb2a254fe35f26506495204f87e432e
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>
libio/Makefile
libio/libioP.h
libio/tst-stdio-static.c [new file with mode: 0644]