GCC 3.4 and glibc/nptl: Cancellation broken

Andreas Jaeger aj@suse.de
Thu Jan 22 17:54:00 GMT 2004


Jakub Jelinek <jakub@redhat.com> writes:

> GCC 3.3 did not have the HPUX bloat in it.

;-)

> One way to get around this quickly could be to:
>
> -  size = dwarf_reg_size_table[index];
>    ptr = context->reg[index];
>
> +  if (sizeof (_Unwind_Ptr) == sizeof (_Unwind_Word))
> +    return * (_Unwind_Word *) ptr;
> +
> +  size = dwarf_reg_size_table[index];
>    /* This will segfault if the register hasn't been saved.  */
>    if (size == sizeof(_Unwind_Ptr))
>      return * (_Unwind_Ptr *) ptr;
>
>    if (size == sizeof(_Unwind_Word))
>      return * (_Unwind_Word *) ptr;
>
>    abort ();
>
> in _Unwind_GetGR and similarly with _Unwind_SetGR.

Can you test that?

> Another temporary solution can be linking all NPTL -fexceptions C
> programs with -shared-libgcc for the time being.

Yes, this works - I have tested it.

> As soon as I implement (or anyone else beats me to do it)
> http://sources.redhat.com/ml/binutils/2003-12/msg00211.html
> GCC driver should link all non-static binaries with:
> --start-only-if-used -lgcc_s --end-only-if-used
> and things will work just fine.

I expect this fixes it also and it's fine with me.

The question is how we solve this for the 3.4.0 release.  With the
current state, GCC 3.4 is not able to compile glibc properly and we
should fix this.  If your binutils patch will be ready by then and we
can add the needed configure magic, then let's wait - and I'll open a
bugzilla for this...

Andreas
-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SuSE Linux AG, Maxfeldstr. 5, 90409 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20040122/21fc8684/attachment.sig>


More information about the Libc-alpha mailing list