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

Re: glibc's use of gnu_indirect_function feature - is it backwardscompatible?


On 08/15/11 16:25, Carlos O'Donell wrote:
On Wed, Aug 10, 2011 at 10:33 PM, Bryan Ischo<bryan@ischo.com> wrote:
On 08/10/11 19:20, Carlos O'Donell wrote:
On 8/10/2011 10:12 PM, Bryan Ischo wrote:
Just looking for confirmation that if I, say, patch my binutils to
leave the ABI identification alone even if the object "has gnu
symbols" (in binutils parliance), can I expect things to "just
work"?
No. It's not "backwards compatibility" it's actually "forwards
compatbility" that you need. You want to run a new binary or
library with an old linker. It isn't going to work.
I think of it as glibc having backwards compatibility with older linkers and
loaders, but you could look the other way around too.  You say potato, I say
potahto :)
All joking aside, it's not at all like that. You must not use a newer
glibc with an older dynamic linker, it simply isn't supported.
...
No, what you really need to do is build glibc and upgrade all the
pieces it controls e.g. libc, libm, various static pieces used in
linking both static and shared programs, and ld.so.

Thank you for sticking with this topic and continuing to offer advice. You are absolutely right; I learned after thinking that I had succeeded that any program that I attempted to run that was linked with/against my new gcc/glibc/binutils toolchain required using the dynamic loader built as part of that toolchain.


As an alternative to requiring the upgrade of the loader to use the new toolchain, I am exploring just statically linking the toolchain so that running the toolchain does not require a new loader. A side benefit is that the toochain should be easily relocatable, if my understanding of the search paths involved is correct.

Of course anything built using the toolchain will require the new loader but since the environment in which the cross-compiled programs will be run is easily upgraded to the new loader, this should be easy.

Thanks again for your help,
Bryan


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