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]
On Fri, Jun 28, 2019 at 4:15 PM Florian Weimer <fweimer@redhat.com> wrote:
> The dynamic linker performs a version coverage check for all Verneed
> records at load time. This allows detection of potentially missing
> symbols even when lazy binding is used. If we drop the GLIBC_2.1.2
> symbol when it was there before, old binaries will fail to load.
>
> Our Versions file processing logic drops empty version clauses from the
> generated version script (but the preprocessor macros are still
> generated).
>
> If BFD ld sees a version script which has empty versions, very strange
> things happen. It generates a shared object with Verdef records with
> VER_FLG_WEAK. Linking against such objects causing BFD ld to produce
> objects with Vernaux records with VER_FLG_WEAK flag. This I recall from
> investigating this bug:
>
> <https://sourceware.org/bugzilla/show_bug.cgi?id=24718>
>
> I didn't fully explore the consequences of that.
All right, then I'm going to say that this patch is OK provided you
explain in the commit message that dropping the GLIBC_2.1.2 symbol
will make old binaries fail to load. That seems like the most
important reason.
zw