GLIBC_PRIVATE and crosstool?

Roman Duka rduka@mail.ru
Tue Jan 27 19:50:00 GMT 2004


John Utz wrote:
> Hi;
> 
> GLIBC_PRIVATE shows up when i do an nm --dynamic against
> libpthread-0.9.so on my target RH73 platform.
> 
> but it doesnt show up when i do an  nm --dynamic against the
> libpthread-0.9.so that i built with crosstool (gcc-3.2.3-glibc-2.2.5).
> 
> what is this thing, why is it there, and could/should/how-would i
> generate this symbol in my own glibc build?
> 
> tnx!
> 
> johnu
> 

they're version definitions, i.e. each time they release a new version 
of glibc, they define new version definitions for shared libraries etc. 
You can view them by running "objdump -p" on a given library. Basically 
when you run a progam which was linked agains glibc, the dynamic 
linker/loader (which is /lib/ld-linux.so.2) will check all the libraries 
that need to be loades and their versions, if the versions mismatch, or 
fail dependancy tests etc, you'll get an error message and the program 
will not be run. This is why if you link some application against 
glibc-2.3.2, the chances are you will not be able to run it on system 
which has glibc-2.2.5 installed. This is all done to make sure the 
progams do not crash all of a sudden, while they're running. As people 
improve and develop glibc, they make incompatible changes to the API 
etc, so without the version definitions, you could run a program which 
was linked against some old and incompatible glibc, but if your you 
system has a different version of glibc, which has changed some 
functions/datatypes etc, your program might run for a while OK, but as 
soon as it makes a call to such a function, it will crash, leaving you 
to figure out what the hell has happened. With version definitions, if 
the versions don't match, the loader doesn't attempt to load and run 
that program. This is why it's a pain in the ass to upgrade glibc, 
because every other program which depends on glibc, needs to be 
recompiled agains the new incompatible glibc library.


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com



More information about the crossgcc mailing list