[ANNOUNCE] Prelink for uClibc available
carmelo.amoroso at st.com
Thu Sep 16 09:21:13 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
we are proud to announce the availability of prelink support for uClibc.
This work required a big effort from STMicroelectronics uClibc team,
especially my colleague Filippo Arcidiacono, and we really would like to
We have just rebased all of the work with respect to the mainstream,
executed the prelink test suite without problem on SH4 arch.
Before including this work into master, I'd like to do a global review
with all of you.
We will send the set of patches soon, anyway I'd prefer to create a new
*prelink* branch also that everybody can use to play wi.th, and on top
of which we can add fixes/enhancements and rework if needed.
Once the prelink review/test is completed, we can easily merge it back
All the work has been re-organised in a small set of patches per
functionality, that I'll describe below.
These capabilities are controlled by the two config option, under
"General Library Settings" section.
LDSO_PRELINK_SUPPORT (selects LDSO_STANDALONE_SUPPORT)
1. stand-alone mode execution
The prelink tool has to be run on the target system to retrieve
information from the application and the shared libraries; to do this it
needs to be able to invoke the dynamic linker as a stand-alone application.
Currently only --library-path option is supported (mandatory for prelinking)
Todo: --list, --verify, --inhibit-rpath
2. full featured tracing capabilities
A new tracing option LD_WARN and LD_TRACE_PRELINKING has been added to
provide some extra trace information used by the prelink tool.
3. global and local symbol scope handling
To support the extended tracing capabilities for prelinking, it was
necessary to redesign the lookup process to support searching in the
Global symbol scope is now implemented as a linked list of local scope,
that dynamically grows and shrinks when dlopen/dlclose are called. Each
local scope is implemented as an array of pointer to struct elf_resolve.
4. prelinked libraries runtime support
The dynamic linker must check if it is loading a set of prelinked
libraries, and must handle any conflicts in symbol resolution that have
been detected by the prelink tool using the extended tracing capabilities.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----
More information about the uClibc