Subject: Re: setjmp/sigsetjmp/longjmp/siglongjmp errors on many ports?
To: Michael Graff <explorer@flame.org>
From: Christos Zoulas <christos@zoulas.com>
List: tech-userlevel
Date: 11/27/1999 16:52:10
On Nov 27, 11:37am, explorer@flame.org (Michael Graff) wrote:
-- Subject: Re: setjmp/sigsetjmp/longjmp/siglongjmp errors on many ports?
| christos@zoulas.com (Christos Zoulas) writes:
|
| > You must be confused... the __***14 are the ones used.
|
| Are you certain?
Yes, I am sure. On my x86:
% cat << __EOF > jump.c
#include <setjmp.h>
main() { jmp_buf jb; setjmp(jb); }
__EOF
% cc -c jump.c
% nm jump.o | grep setjmp
U ___setjmp14
The way function versioning works, is that when you need to change
the way function foo behaves, you leave the old one alone, and you
introduce a new __fooMm function, and then you play the __RENAME()
trick in the header files. So the old setjmp uses sigblock, the
new one uses __sigprocmask14.
Regards,
christos