[PATCH] libio: Properly link in function _IO_wfile_doallocate in static binaries
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Fri Mar 6 18:13:30 GMT 2026
On 05/03/26 23:17, yunzezhu@linux.alibaba.com wrote:
> From: Yunze Zhu <yunzezhu@linux.alibaba.com>
>
> This patch fixes Bug 33935 - _IO_wfile_doallocate not linked correctly
> when linking glibc statically.
> https://sourceware.org/bugzilla/show_bug.cgi?id=33935
>
> The function _IO_wfile_doallocate has been added with pragma weak in vtable.c,
> while it is the only one symbol contained in wfiledoalloc.c,
> and has not been directly called in libio.
>
> In static binaries the true function symbol _IO_wfile_doallocate may not
> be correctly linked when linking glibc with cases contains wchar functions,
> but the weak symbol in vtable is linked instead,
> and cause segmentation fault when running.
>
> This patch fixes this with similar way to symbol _IO_file_doallocate,
> that adding libio_static_fn_required(_IO_wfile_doallocate) in wgenops.c
> to make _IO_wfile_doallocate always link in static binaries.
Looks ok, thanks. Could add a simple regression testcase that trigger this
issue?
> ---
> libio/wgenops.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/libio/wgenops.c b/libio/wgenops.c
> index 7a8466ea44..064d71266d 100644
> --- a/libio/wgenops.c
> +++ b/libio/wgenops.c
> @@ -34,6 +34,8 @@
>
> static int save_for_wbackup (FILE *fp, wchar_t *end_p) __THROW;
>
> +libio_static_fn_required (_IO_wfile_doallocate);
> +
> /* Return minimum _pos markers
> Assumes the current get area is the main get area. */
> ssize_t
More information about the Libc-alpha
mailing list