This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188]
- From: Zack Weinberg <zackw at panix dot com>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Fri, 28 Jun 2019 15:44:28 -0400
- Subject: Re: [PATCH] nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188]
- References: <87r27dn4af.fsf@oldenburg2.str.redhat.com>
On Fri, Jun 28, 2019 at 11:00 AM Florian Weimer <fweimer@redhat.com> wrote:
> With commit f0b2132b35248c1f4a80f62a2c38cddcc802aa8c ("ld.so:
> Support moving versioned symbols between sonames [BZ #24741]"), the
> dynamic linker will find the definition of vfork in libc and binds
> a vfork reference to that symbol, even if the soname in the version
> reference says that the symbol should be located in libpthread.
>
> As a result, the forwarder (whether it's IFUNC-based or a duplicate
> of the libc implementation) is no longer necessary.
>
> On older architectures, a placeholder symbol is required, to make
> sure that the GLIBC_2.1.2 symbol version does not go away, or is
> turned in to a weak symbol definition by the link editor.
Can you explain why it is necessary to preserve the GLIBC_2.1.2 symbol
version in libpthread, even though no normal symbols use that version
anymore? (I assume this is about the special symbol defining the
version itself -- "A GLIBC_2.1.2@@GLIBC_2.1.2" in nm output?)
Otherwise LGTM.
zw