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