diff options
| author | Jason Evans <jasone@FreeBSD.org> | 2000-01-12 09:23:48 +0000 |
|---|---|---|
| committer | Jason Evans <jasone@FreeBSD.org> | 2000-01-12 09:23:48 +0000 |
| commit | 929273386f6e688c008b15fd24932df2ed7e7172 (patch) | |
| tree | b3edfb3b0b6bdadce3b9cf019cabf1218f08038d /lib/libc/amd64 | |
| parent | f3d5d34b459fcd295a618227c37e2bacae1cdf67 (diff) | |
Notes
Diffstat (limited to 'lib/libc/amd64')
| -rw-r--r-- | lib/libc/amd64/SYS.h | 9 | ||||
| -rw-r--r-- | lib/libc/amd64/gen/_setjmp.S | 8 | ||||
| -rw-r--r-- | lib/libc/amd64/gen/setjmp.S | 10 | ||||
| -rw-r--r-- | lib/libc/amd64/gen/sigsetjmp.S | 10 |
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 |
