This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Diagnostics for missing libraries in DSOs
- From: Florian Weimer <fweimer at redhat dot com>
- To: Binutils <binutils at sourceware dot org>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Mon, 22 Aug 2016 16:28:47 +0200
- Subject: Diagnostics for missing libraries in DSOs
- Authentication-results: sourceware.org; auth=none
Currently, it is extremely easy to produce a DSO which links against
compat symbols at run time: Just omit a required DSO when invoking the
static linker. As a result, the symbol reference in the created DSO
will lack a version, and will be bound to a compat symbol at run time:
https://sourceware.org/bugzilla/show_bug.cgi?id=20489
This is very difficult to diagnose properly. It can also lead to
current binaries reintroducing historic bugs which we did not want to
push on applications for backwards compatibility reasons.
What can we do here? Can we provide a diagnostic at static link time?
Should ld.so print a run-time diagnostic?
Non-versioned to versioned symbol bindings happen quite frequently
outside glibc (right after a library has introduced symbol versioning).
But perhaps we can produce a run-time warning if such a binding occurs
when the referring object lacks a DT_NEEDED entry for the referent.
Florian