Soliciting help with libstdc++ and exceptions

Geoff Keating geoffk@envy.cygnus.com
Tue Dec 21 14:06:00 GMT 1999


"Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de> writes:

> > My Debian (potato) library was presumably built with --enable-threads,
> > but my test snapshot of gcc was not.
> 
> That would explain the difference to what I am seeing.
> 
> > Surely we want people to be *able* to build test versions of gcc, both
> > with and without --enable-threads, that work without static linking on
> > systems with arbitrary configurations.
> 
> I'm not so sure about that. I'd propose that configure prints a
> message if gcc is configured without --enable-threads on Linux.

How about just making --enable-threads the default on Linux?

> typedef struct frame_state
> {
>   void *cfa;
>   void *eh_ptr;
>   long cfa_offset;
>   long args_size;
>   long reg_or_offset[FIRST_PSEUDO_REGISTER+1];
>   unsigned short cfa_reg;
>   unsigned short retaddr_column;
>   char saved[FIRST_PSEUDO_REGISTER+1];
> } frame_state;

Oh no!  You mean that whenever we add a new register to gcc, this is a
binary incompatible change?!


I think others suggested that libgcc.a needs to be made a shared
library.  I'd suggest instead that it becomes part of glibc.  There
are two reasons for this:

1. glibc will of course need to link with it.  So every program will
   be using it, and you'll get better efficiency on program startup if
   programs only use two shared objects (libc.so and ld.so which it
   references) instead of three.

2. The dynamic linker, ld.so, must not reference other shared objects but
   needs to link with libgcc.  To avoid duplication, we may want it to
   export those libgcc routines that it uses.

-- 
- Geoffrey Keating <geoffk@cygnus.com>


More information about the Gcc-bugs mailing list