This is the mail archive of the mailing list for the GCC 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: versioning of _Unwind_*() symbols

Gabriel Dos Reis wrote:

Jim Wilson <> 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

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