This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

Re: My proposal for the libgcc runtime ABI (ia64 gcc/glibc is broken.)


On Tue, Jul 11, 2000 at 06:53:07PM -0300, Alexandre Oliva wrote:
> 
> >> Another option: couldn't libgcc's object files just be folded into
> >> libc.so, without creating the hassle of yet another system library?
> 
> > That is what we do today and it doesn't work very well. If you don't
> > know why, ......
> 
> 
> Another possibility is that the EH-region data structures generated by
> the compiler may change.  In this case, the functions that manage
> registering and de-registering of EH regions might not understand the
> data they're given.  The only way I see to solve this problem is to

Right on.

> rename the functions every time the data structures change, and
> implement backward-compatibility replacement functions that convert
> the data from the old format to the new one, then call the new
> functions.

That is how it may be done in libgcc.so. But you cannot do it when
they are included in libc.so unless you rebuild libc.so. The idea
is we can easily rebuild libgcc.so without rebuilding libc.so.

> 
> > As far as I know, only systems, where the shared C library uses
> > gcc's frame based exception, has this problem.  Could you please
> > name the other systems?
> 
> I doubt that's the case.  Any system that uses shared libraries should
> be subject to the same problems, in case different modules are
> compiled with incompatible versions of GCC.  But this probably occurs

That is partially solved by my "library interface" scheme in gcc.
On any other system, you may change libstdc++ API and C++ ABI without
breaking the existing binaries. BTW, my scheme doesn't work with
libstdc++-v3 which uses libtool. It should be fixed.

> more often on GNU/Linux precisely because libc isn't always compiled
> by the compiler someone who installed their own version of GCC uses.
> 

The Linux C library is the only C library I know to use the frame based
exception in gcc.


-- 
H.J. Lu (hjl@gnu.org)

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