versioning of _Unwind_*() symbols
Mark Mitchell
mark@codesourcery.com
Thu Apr 22 17:07:00 GMT 2004
H. J. Lu wrote:
>There is no strong
>reason for a C++ ABI compliant compiler to ship their own unwind
>library if there is a C++ ABI compliant system unwind library.
>
>
>
I agree.
However, we shouldn't call this the unwind library. In addition to
unwinding routines, it contains things operator new/delete and
__cxa_dynamic_cast. Let's call it the ABI library.
There may be good reasons for having a compiler-specific personality
routine, but that would not be part of the ABI library. It is possible
that some ABI libraries will be more efficient than others, so a
compiler might want to provide a version that is superior. But, if a
user chooses to use the system one instead, their programs will still work.
>Assuming the unwind library will be a standard library like the C
>library, symbol versioning will be a good thing for the standard
>library. But it shouldn't use version name like GCC or GLIBC.
>
>
I don't agree with this statement.
It means that users cannot replace the system ABI library with one
provided by another compiler.
The way that the ABI contemplates dealing with versioning is by creating
new function names. That may be considered inferior and primitive, but
it is the way that it is. Any problem that would require a new version
number on GNU/Linux will require a new function name on other systems.
So, using version numbers will just make things different across systems
for no good reason.
--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com
More information about the Gcc
mailing list