Make setjmp, longjmp, sigsetjmp, and siglongjmp weak aliases for

__setjmp, __longjmp, __sigsetjmp, and __siglongjmp, respectively.
This supports cancellation in the linuxthreads port.  In the long run,
a much more comprehensive solution will necessitate more dramatic changes
to libc symbol naming, and these aliases will probably need modification
at that time.
This commit is contained in:
jasone 1999-12-14 20:17:52 +00:00
parent 3968ced3f8
commit 2edcbc2e0b
4 changed files with 24 additions and 8 deletions

View File

@ -54,7 +54,9 @@
#include "DEFS.h"
#include "SYS.h"
ENTRY(setjmp)
ENTRY(__setjmp)
.weak setjmp;
.set setjmp, __setjmp;
movl 4(%esp),%ecx
PIC_PROLOGUE
leal 28(%ecx), %eax
@ -80,7 +82,9 @@ ENTRY(setjmp)
xorl %eax,%eax
ret
ENTRY(longjmp)
ENTRY(__longjmp)
.weak longjmp;
.set longjmp, __longjmp;
movl 4(%esp),%edx
PIC_PROLOGUE
pushl $0 /* (sigset_t*)oset */

View File

@ -59,7 +59,9 @@
* use sigreturn() if sigreturn() works.
*/
ENTRY(sigsetjmp)
ENTRY(__sigsetjmp)
.weak sigsetjmp;
.set sigsetjmp, __sigsetjmp;
movl 8(%esp),%eax
movl 4(%esp),%ecx
movl %eax,44(%ecx)
@ -89,7 +91,9 @@ ENTRY(sigsetjmp)
xorl %eax,%eax
ret
ENTRY(siglongjmp)
ENTRY(__siglongjmp)
.weak siglongjmp;
.set siglongjmp, __siglongjmp;
movl 4(%esp),%edx
cmpl $0,44(%edx)
jz 2f

View File

@ -54,7 +54,9 @@
#include "DEFS.h"
#include "SYS.h"
ENTRY(setjmp)
ENTRY(__setjmp)
.weak setjmp;
.set setjmp, __setjmp;
movl 4(%esp),%ecx
PIC_PROLOGUE
leal 28(%ecx), %eax
@ -80,7 +82,9 @@ ENTRY(setjmp)
xorl %eax,%eax
ret
ENTRY(longjmp)
ENTRY(__longjmp)
.weak longjmp;
.set longjmp, __longjmp;
movl 4(%esp),%edx
PIC_PROLOGUE
pushl $0 /* (sigset_t*)oset */

View File

@ -59,7 +59,9 @@
* use sigreturn() if sigreturn() works.
*/
ENTRY(sigsetjmp)
ENTRY(__sigsetjmp)
.weak sigsetjmp;
.set sigsetjmp, __sigsetjmp;
movl 8(%esp),%eax
movl 4(%esp),%ecx
movl %eax,44(%ecx)
@ -89,7 +91,9 @@ ENTRY(sigsetjmp)
xorl %eax,%eax
ret
ENTRY(siglongjmp)
ENTRY(__siglongjmp)
.weak siglongjmp;
.set siglongjmp, __siglongjmp;
movl 4(%esp),%edx
cmpl $0,44(%edx)
jz 2f