fix ia64 longjmp() to work from alternate signal-stack
David Mosberger
davidm@napali.hpl.hp.com
Tue Aug 31 16:14:00 GMT 2004
>>>>> On Tue, 31 Aug 2004 08:30:58 -0700, Ulrich Drepper <drepper@redhat.com> said:
Uli> David Mosberger wrote:
>> Were you able to get clarification on this issue already?
Uli> Getting a formal answer will take a while. One reply I got indicated
Uli> that indeed the altstack is not switched. So, the public siglongjmp
Uli> interface need not handle this, just the exception handling stuff. If
Uli> it turns out that we want the siglongjmp code to handle this as well
Uli> some day, we still can enable it. For now, changing your patch to just
Uli> implement the cancellation appropriately should go in.
So you want me to create an ia64-specific version of __libc_longjmp()
which will be sigaltstack-safe while everything else goes to
the old longjmp implementation, right?
The only callers of __libc_longjmp() I found are:
./linuxthreads/sysdeps/pthread/ptlongjmp.c: __libc_longjmp (env, val);
./nptl/sysdeps/pthread/pt-longjmp.c: __libc_longjmp (env, val);
./nptl/unwind.c: __libc_longjmp ((struct __jmp_buf_tag *) buf->cancel_jmp_buf, 1);
./nptl/unwind.c: __libc_longjmp ((struct __jmp_buf_tag *) ibuf->cancel_jmp_buf, 1);
so I think this would have the desired effect.
--david
More information about the Libc-hacker
mailing list