This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]