versioning of _Unwind_*() symbols

Mark Mitchell mark@codesourcery.com
Wed Apr 21 18:26:00 GMT 2004


Gabriel Dos Reis wrote:

>Jim Wilson <wilson@specifixinc.com> writes:
>
>| I fail to see any difference between what glibc does and what libgcc
>| does.
>
>I believe the main difference is that libgcc is tightly coupled with
>the compiler and glibc is more much decoupled.  libgcc is fixed by the
>compiler. That makes its versioning more debatable.  
>I'm not sure we can reason on what glibc does and transpose the
>outcome to libgcc.
>  
>
I agree with David Mosberger.

I think that it was a mistake to version the symbols.  The C++ ABI is 
designed so that compilers can interoperate; clearly, if GCC-compiled 
objects contain references to versioned symbols, then other compilers 
cannot easily provide matching runtime libraries, and vice versa. 

If these functions need to change in some way that would normally 
require using a versioned symbol, the functions must instead be renamed.

Therefore, I think we need to do two things:

(1) Put the unversioned symbols back in libgcc, and or make libgcc 
depend on libunwind, thereby making sure that the symbols will be available.

(2) Keep the versioned symbols that we have now because there might be 
(ABI-incompatible) code that depends upon them.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com



More information about the Gcc mailing list