aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/amd64
diff options
context:
space:
mode:
authorJason Evans <jasone@FreeBSD.org>2000-01-12 09:23:48 +0000
committerJason Evans <jasone@FreeBSD.org>2000-01-12 09:23:48 +0000
commit929273386f6e688c008b15fd24932df2ed7e7172 (patch)
treeb3edfb3b0b6bdadce3b9cf019cabf1218f08038d /lib/libc/amd64
parentf3d5d34b459fcd295a618227c37e2bacae1cdf67 (diff)
Notes
Diffstat (limited to 'lib/libc/amd64')
-rw-r--r--lib/libc/amd64/SYS.h9
-rw-r--r--lib/libc/amd64/gen/_setjmp.S8
-rw-r--r--lib/libc/amd64/gen/setjmp.S10
-rw-r--r--lib/libc/amd64/gen/sigsetjmp.S10
4 files changed, 25 insertions, 12 deletions
diff --git a/lib/libc/amd64/SYS.h b/lib/libc/amd64/SYS.h
index a5daa1c12987..50610528a4c4 100644
--- a/lib/libc/amd64/SYS.h
+++ b/lib/libc/amd64/SYS.h
@@ -43,15 +43,20 @@
#define SYSCALL(x) 2: PIC_PROLOGUE; jmp PIC_PLT(HIDENAME(cerror)); \
ENTRY(__CONCAT(_,x)); \
+ .weak CNAME(__CONCAT(_libc_,x)); \
+ .set CNAME(__CONCAT(_libc_,x)),CNAME(__CONCAT(_,x)); \
.weak CNAME(x); \
- .set CNAME(x),CNAME(__CONCAT(_,x)); \
+ .set CNAME(x),CNAME(__CONCAT(_libc_,x)); \
lea __CONCAT(SYS_,x),%eax; KERNCALL; jb 2b
#define RSYSCALL(x) SYSCALL(x); ret
#define PSEUDO(x,y) ENTRY(__CONCAT(_,x)); \
+ .weak CNAME(__CONCAT(_libc_,x)); \
+ .set CNAME(__CONCAT(_libc_,x)),CNAME(__CONCAT(_,x)); \
.weak CNAME(x); \
- .set CNAME(x),CNAME(__CONCAT(_,x)); \
+ .set CNAME(x),CNAME(__CONCAT(_libc_,x)); \
lea __CONCAT(SYS_,y), %eax; KERNCALL; ret
+
/* gas messes up offset -- although we don't currently need it, do for BCS */
#define LCALL(x,y) .byte 0x9a ; .long y; .word x
diff --git a/lib/libc/amd64/gen/_setjmp.S b/lib/libc/amd64/gen/_setjmp.S
index c8a1d215acda..21ab880f83e7 100644
--- a/lib/libc/amd64/gen/_setjmp.S
+++ b/lib/libc/amd64/gen/_setjmp.S
@@ -53,7 +53,9 @@
#include "DEFS.h"
-ENTRY(_setjmp)
+ALTENTRY(_setjmp)
+ALTENTRY(_libc__setjmp)
+ENTRY(___setjmp)
movl 4(%esp),%eax
movl 0(%esp),%edx
movl %edx, 0(%eax) /* rta */
@@ -66,7 +68,9 @@ ENTRY(_setjmp)
xorl %eax,%eax
ret
-ENTRY(_longjmp)
+ALTENTRY(_longjmp)
+ALTENTRY(_libc__longjmp)
+ENTRY(___longjmp)
movl 4(%esp),%edx
movl 8(%esp),%eax
movl 0(%edx),%ecx
diff --git a/lib/libc/amd64/gen/setjmp.S b/lib/libc/amd64/gen/setjmp.S
index d1c08b94b115..4162c1e73561 100644
--- a/lib/libc/amd64/gen/setjmp.S
+++ b/lib/libc/amd64/gen/setjmp.S
@@ -54,8 +54,9 @@
#include "DEFS.h"
#include "SYS.h"
-.globl CNAME(__setjmp); CNAME(__setjmp):
-ENTRY(setjmp)
+ALTENTRY(setjmp)
+ALTENTRY(_libc_setjmp)
+ENTRY(__setjmp)
movl 4(%esp),%ecx
PIC_PROLOGUE
leal 28(%ecx), %eax
@@ -81,8 +82,9 @@ ENTRY(setjmp)
xorl %eax,%eax
ret
-.globl CNAME(__longjmp); CNAME(__longjmp):
-ENTRY(longjmp)
+ALTENTRY(longjmp)
+ALTENTRY(_libc_longjmp)
+ENTRY(__longjmp)
movl 4(%esp),%edx
PIC_PROLOGUE
pushl $0 /* (sigset_t*)oset */
diff --git a/lib/libc/amd64/gen/sigsetjmp.S b/lib/libc/amd64/gen/sigsetjmp.S
index 7338e1c83713..09ca55420a4b 100644
--- a/lib/libc/amd64/gen/sigsetjmp.S
+++ b/lib/libc/amd64/gen/sigsetjmp.S
@@ -59,8 +59,9 @@
* use sigreturn() if sigreturn() works.
*/
-.globl CNAME(__sigsetjmp); CNAME(__sigsetjmp):
-ENTRY(sigsetjmp)
+ALTENTRY(sigsetjmp)
+ALTENTRY(_libc_sigsetjmp)
+ENTRY(__sigsetjmp)
movl 8(%esp),%eax
movl 4(%esp),%ecx
movl %eax,44(%ecx)
@@ -90,8 +91,9 @@ ENTRY(sigsetjmp)
xorl %eax,%eax
ret
-.globl CNAME(__siglongjmp); CNAME(__siglongjmp):
-ENTRY(siglongjmp)
+ALTENTRY(siglongjmp)
+ALTENTRY(_libc_siglongjmp)
+ENTRY(__siglongjmp)
movl 4(%esp),%edx
cmpl $0,44(%edx)
jz 2f