This is the mail archive of the gcc-patches@gcc.gnu.org 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: PATCH: Put libunwind.a in libgcc_s.so: versioning of _Unwind_*() symbols


On Wed, Apr 21, 2004 at 09:43:55AM -0700, David Mosberger wrote:
> >>>>> On Wed, 21 Apr 2004 09:34:17 -0700, "H. J. Lu" <hjl@lucon.org> said:
> 
>   HJ> The ideal solution is to do what Solaris does. That is linker
>   HJ> and dynamic linker work together to support moving a definition
>   HJ> from one DSO to another, transparently. But it is not an option
>   HJ> today.
> 
>   HJ> Given that we should provide 100% backward binary compatibility,
>   HJ> which was the problem to begin with, our choices are very
>   HJ> limited.
> 
> No, the ideal solution is for GCC to be C++ ABI-compliant.
> 

The unwinder in gcc is C++ ABI-compliant. But it doesn't mean you can
mix 2 unwind libraries together. As soon as you did

# g++ -shared ...

you may already have linked part of whatever unwind library gcc is
using into the resulting shared library. It won't be easy to use
another unwind library after that.

The whole problem started many years ago that we wanted to make sure
only one unwinder and one copy of its internal data structure are used
across executable and shared libraries it uses. The current scheme
is mostly OK on other platforms. But ia64 is an exception. Maybe we
should take another look at the problem.


H.J.


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