PATCH: Add __frame_state_for for gcc 3.0.1

H . J . Lu hjl@lucon.org
Fri Jul 6 15:02:00 GMT 2001


On Fri, Jul 06, 2001 at 11:50:55AM -0700, Joe Buck wrote:
> 
> > > It IMHO must work (although one cannot mix pre-G++ 3.0 and G++ 3.0 C++
> > > libraries together, one should be able to mix G++ 3.0 C++ libraries with
> > > pre-GCC 3.0 C libraries and vice versa, and C libraries can have unwinding
> > > info). So it needs to be debugged why it cannot find it.
> > 
> > I think it is a doable. Basically, we have to put a complete set of
> > frame unwind functions in glibc, which supports the mixed v2 and v3
> > frames. It may take a while. I wish they were in gcc :-(.
> 
> I'm sure it's doable, but you then have to carry around the cruft forever.
> Given the fact that we won't support mixing gcc2 and gcc3 C++ code, how
> does this benefit a user that has gcc3 and a gcc3-compiled glibc?  He/she
> would have to have some other C code, compiled with gcc2, that has
> exception handling, and then mix it with gcc3 C++ code.  Are we solving
> a problem that really exists, or only a theoretical problem?
> 

The issue here is

1. foo is a C++ compiler compiled with gcc 2.95 which throws exception
inside libc.so.
2. libc.so is rebuilt with gcc 3.0.

At the run time, `foo' gets the gcc 2.95 unwind frames and gcc 3.0
unwind frames in libc.so.

I think I got it working now. I need to clean it up a little bit before
I post my patches for comments. The remaining issues:

1. Need the ia64 support.
2. Do we really want to support `foo' compiled with gcc 3.0 against
libc.so compiled with gcc 2.95? I think it is doable.


H.J.



More information about the Libc-alpha mailing list