This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

Diagnostics for missing libraries in DSOs


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


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