[ANNOUNCE] Prelink for uClibc available

Carmelo AMOROSO carmelo.amoroso at st.com
Thu Sep 16 09:21:13 UTC 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Folks,
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
upstream.

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
to master.

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_STANDALONE_SUPPORT
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
local scope.
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/

iEYEARECAAYFAkyR4YkACgkQoRq/3BrK1s8fTgCeNfrC9Rw+9nS9iwBotCqN8IhF
hVMAoI4+Nq5KsOYMeva9A0j1kSeOQ+wz
=z7io
-----END PGP SIGNATURE-----


More information about the uClibc mailing list