GCC 3.4 and glibc/nptl: Cancellation broken

Jakub Jelinek jakub@redhat.com
Fri Jan 23 15:33:00 GMT 2004


On Fri, Jan 23, 2004 at 04:20:32PM +0100, Michael Matz wrote:
> > *libgcc:
> > %{static|static-libgcc:-lgcc -lgcc_eh} \
> > %{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --start-only-if-used -lgcc_s%M --end-only-if-used} \
> > 			   %{shared-libgcc:-lgcc_s%M %{!shared:-lgcc}}}}
> > 
> > That way, -static or -static-libgcc will link in libgcc.a and libgcc_eh.a,
> > but nothing else.  The program/shared library will have DT_NEEDED
> > libgcc_s.so.1 if linked with -shared-libgcc or if some symbol from
> > libgcc_s.so.1 minus libgcc.a was needed by the executable or shared library
> > (e.g. if it used -fexceptions and __attribute__((cleanup)) ).
> 
> I see.  Especially no non-static programs would link against libgcc_eh.a.
> 
> I guess in a static executable (i.e. linked against libgcc_eh) glibc will
> not dlopen libgcc_s.so ?  Because otherwise we would have the same
> situation as currently.

glibc doesn't use dlopen on libgcc_s.so.1 in libc.a nor libpthread.a.

	Jakub



More information about the Libc-alpha mailing list