diff options
Diffstat (limited to 'lib/libc/i386/SYS.h')
| -rw-r--r-- | lib/libc/i386/SYS.h | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libc/i386/SYS.h b/lib/libc/i386/SYS.h index a5daa1c12987..50610528a4c4 100644 --- a/lib/libc/i386/SYS.h +++ b/lib/libc/i386/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  | 
