GCC 3.4 and glibc/nptl: Cancellation broken
Jakub Jelinek
jakub@redhat.com
Thu Jan 22 17:59:00 GMT 2004
On Thu, Jan 22, 2004 at 06:38:59PM +0100, Andreas Jaeger wrote:
> > 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?
Sure, though probably not today. Though it is quite obvious it would work.
> > 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...
I see such a patch possible earliest a month from now; when I looked
briefly at it it is not exactly small patch and I'm quite busy these days.
Jakub
More information about the Libc-alpha
mailing list