Updating uClibc's ELFs when binary compatibility breaks?
Mike Frysinger
vapier at gentoo.org
Sat May 9 22:47:00 UTC 2009
On Saturday 09 May 2009 16:15:33 Kyle Sallee wrote:
> Looking at the uClibc ELF libraries created by buildroot-2009.02
> I see
> libc.so.0 -> libuClibc-0.9.30.so
> However, what if the soname were instead
> libc.so.0.9.30
this is exactly the last thing we want to do
> That way libc.so.0 can be abandoned and no longer used,
> while software compiled and linked with the older uClibc
> would dynamically link with libc.so.0.9.30
> while software compiled with the newer uClibc
> would dynamically link with libc.so.0.9.30.1
> Are so names more limited than that?
the problem is that the ldso is hardcoded as the PT_INTERP and the ldso is
strictly tied to the other C libraries
> Also changing the soname for the dynamic linker from
> ld-uClibc.so.0
> to something else
> would require a tiny modification to gcc or gcc's spec file.
> But would it be necessary?
> Will ld-uClibc break binary compatibility?
"tiny modification" here translates into unnecessary / unmanageable work
> Overall my request is a bit complicated.
> However, it would be nice if the soname for uClibc's ELF libraries
> changed whenever binary compatibility breaks.
you say "binary compatibility breaks" but never once stated what and how
> Assuming uClibc does not change sonames,
> is there an easy method for adding
> a RPATH to uClibc that is inherited
> by any ELF that links with a uClibc ELF?
that is not how RPATHs work. normally it applies only to the current ELF
whose the DT_RPATH tags are compiled into.
> That way I could install uClibc's ELFs in a place such as
> /lib/uClibc/$VERSION/
the uClibc configuration allows for you to set some default "system" paths so
you could do this
> Please, if there are some nice suggestions for smooth updating
> of installed uClibc's ELF libraries please send them my way.
> If uClibc's sonames changed when binary compatibility breaks
we typically provide for transitional compatibility across a few releases.
that way you can upgrade to a newer version, rebuild all relevant objects, and
then disable the compat and/or upgrade to the next version.
we dont break binary compatibility for fun but when it does break, we document
what/why/how/etc...
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.busybox.net/pipermail/uclibc/attachments/20090509/6dac0904/attachment.pgp>
More information about the uClibc
mailing list