This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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: Version definitions and dynamic loading


Roman Duka wrote:
Could somebody please explain to me what version definitions are used for and how they are used in ELF object/executable files.
> ... etc

Well after searching on the net and messing about with shared libraries I think I found an answer on my own question :-)
For anybody who is interested, here is the explanation:


A good start is to read info pages (man pages are not as descriptive) on "ld", linux linker, especially the section named "VERSION command". Here is what the manual says:

The linker supports symbol versions when using ELF.  Symbol versions
are only useful when using shared libraries.  The dynamic linker can use
symbol versions to select a specific version of a function when it runs
a program that may have been linked against an earlier version of the
shared library.

So I created a test shared library that uses symbol versions and test application that uses that library, as expected when my application calls the functions which are defined for a particular version of the library, that version information is propagated through


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


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