Date: Fri, 15 Mar 1996 13:37:39 +0100 From: se@zpr.uni-koeln.de (Stefan Esser) To: John Polstra <jdp@polstra.com> Cc: current@freebsd.org Subject: Re: Elfkit-1.0.1 announcement Message-ID: <199603151237.AA01920@Sisyphos> In-Reply-To: John Polstra <jdp@polstra.com> "Re: Elfkit-1.0.1 announcement" (Mar 14, 20:19)
next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 14, 20:19, John Polstra wrote:
} Subject: Re: Elfkit-1.0.1 announcement
} Andreas Klemm wrote:
}
} > I tried to build up elfkit but had big trouble to compile the
} > patched libc (2.1.0).
} > Are there any newer patches available? Best would be, if one could
} > use -current's libc, then the header files certainly would fit
} > better ...
}
} Yes, that's the plan, don't worry. We will be tracking -current soon.
Well, thince I built it under -current last night, I
thought I might just send my libc diffs for review.
I tried to get everything merged into the THREAD code,
but didn't actually build a library with thread support
to test it ...
Regards, STefan
PS: Go into the libc directory and apply with
patch -p1 < PATCHFILE
diff -r -C2 libc/Makefile libc_elf/Makefile
*** libc/Makefile Tue Feb 6 21:35:31 1996
--- libc_elf/Makefile Fri Mar 15 00:34:24 1996
***************
*** 6,9 ****
--- 6,32 ----
# from CFLAGS below. To remove these strings from just the system call
# stubs, remove just -DSYSLIBC_RCS from CFLAGS.
+
+ PREFIX = /usr/local/elf
+ TARGET = i386-unknown-freebsdelf
+ ELFDIR = ${PREFIX}/${TARGET}
+ ELFBIN = ${PREFIX}/${TARGET}/bin
+ ELFLIB = ${PREFIX}/${TARGET}/lib
+ AR= ${ELFBIN}/ar
+ AS= ${ELFBIN}/as
+ CC= ${ELFBIN}/cc
+ CPP= ${ELFBIN}/cpp
+ LD= ${ELFBIN}/ld
+ RANLIB= ${ELFBIN}/ranlib
+ STRIP= # install runs /usr/bin/strip, which cannot handle ELF files
+
+ LIBDIR = ${ELFLIB}
+
+ CFLAGS += -g
+ LDADD += -soname libc.so.1
+ INTERNALLIB = yes
+ NOMAN = noman
+ LINKS+= ${LIBDIR}/libc.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${LIBDIR}/libc.so.1
+ LINKS+= ${LIBDIR}/libc.so.${SHLIB_MAJOR}.${SHLIB_MINOR} ${LIBDIR}/libc.so
+
LIB=c
SHLIB_MAJOR= 3
***************
*** 13,18 ****
CLEANFILES+=tags
INSTALL_PIC_ARCHIVE= yes
- PRECIOUSLIB= yes
.include "${.CURDIR}/db/Makefile.inc"
.include "${.CURDIR}/compat-43/Makefile.inc"
--- 36,41 ----
CLEANFILES+=tags
INSTALL_PIC_ARCHIVE= yes
+ .include "${.CURDIR}/elf/Makefile.inc"
.include "${.CURDIR}/db/Makefile.inc"
.include "${.CURDIR}/compat-43/Makefile.inc"
***************
*** 61,64 ****
--- 84,94 ----
sed "s;\([^:]*\):\([^(]*\)(\([^, )]*\)\(.*\);\3 \1 /^\2(\3\4$$/;" \
>> tags; sort -o tags tags
+
+ lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}: ${SOBJS}
+ @${ECHO} building shared ${LIB} library \(version ${SHLIB_MAJOR}.${SHLIB_MINOR}\)
+ @rm -f lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
+ @${LD} -shared \
+ -o lib${LIB}.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+ ${SOBJS} ${LDDESTDIR} ${LDADD}
.include <bsd.lib.mk>
diff -r -C2 libc/gmon/gmon.c libc_elf/gmon/gmon.c
*** libc/gmon/gmon.c Tue May 30 07:40:34 1995
--- libc_elf/gmon/gmon.c Fri Mar 15 01:10:59 1996
***************
*** 45,49 ****
--- 45,53 ----
#include <unistd.h>
+ #if defined(__ELF__)
+ extern char *minbrk asm (".minbrk");
+ #else /* __ELF__ */
extern char *minbrk asm ("minbrk");
+ #endif /* __ELF__ */
struct gmonparam _gmonparam = { GMON_PROF_OFF };
diff -r -C2 libc/i386/DEFS.h libc_elf/i386/DEFS.h
*** libc/i386/DEFS.h Fri Aug 5 03:17:56 1994
--- libc_elf/i386/DEFS.h Fri Mar 15 00:34:25 1996
***************
*** 49,63 ****
#endif
#ifdef PROF
#define ALTENTRY(x) _START_ENTRY \
! .globl _/**/x; .type _/**/x,@function; _/**/x:; \
_MID_ENTRY \
! call mcount; jmp 9f
#define ENTRY(x) _START_ENTRY \
! .globl _/**/x; .type _/**/x,@function; _/**/x:; \
_MID_ENTRY \
! call mcount; 9:
--- 49,84 ----
#endif
+ #if __STDC__
+ #define _GLUE(a,b) a ## b
+ #else
+ #define _GLUE(a,b) a/**/b
+ #endif
+
+ /*
+ * CNAME and HIDENAME manage the relationship between symbol names in C
+ * and the equivalent assembly language names. CNAME is given a name as
+ * it would be used in a C program. It expands to the equivalent assembly
+ * language name. HIDENAME is given an assembly-language name, and expands
+ * to a possibly-modified form that will be invisible to C programs.
+ */
+ #if defined(__ELF__) /* { */
+ #define CNAME(csym) csym
+ #define HIDENAME(asmsym) _GLUE(.,asmsym)
+ #else /* } { */
+ #define CNAME(csym) _GLUE(_,csym)
+ #define HIDENAME(asmsym) asmsym
+ #endif /* } */
+
#ifdef PROF
#define ALTENTRY(x) _START_ENTRY \
! .globl CNAME(x); .type CNAME(x),@function; CNAME(x):; \
_MID_ENTRY \
! call HIDENAME(mcount); jmp 9f
#define ENTRY(x) _START_ENTRY \
! .globl CNAME(x); .type CNAME(x),@function; CNAME(x):; \
_MID_ENTRY \
! call HIDENAME(mcount); 9:
***************
*** 65,79 ****
.globl x; .type x,@function; x:; \
_MID_ENTRY \
! call mcount; jmp 9f
#define ASENTRY(x) _START_ENTRY \
.globl x; .type x,@function; x:; \
_MID_ENTRY \
! call mcount; 9:
#else /* !PROF */
! #define ENTRY(x) _START_ENTRY .globl _/**/x; .type _/**/x,@function; \
! _/**/x:
#define ALTENTRY(x) ENTRY(x)
--- 86,100 ----
.globl x; .type x,@function; x:; \
_MID_ENTRY \
! call HIDENAME(mcount); jmp 9f
#define ASENTRY(x) _START_ENTRY \
.globl x; .type x,@function; x:; \
_MID_ENTRY \
! call HIDENAME(mcount); 9:
#else /* !PROF */
! #define ENTRY(x) _START_ENTRY .globl CNAME(x); .type CNAME(x),@function; \
! CNAME(x):
#define ALTENTRY(x) ENTRY(x)
diff -r -C2 libc/i386/SYS.h libc_elf/i386/SYS.h
*** libc/i386/SYS.h Mon Jan 22 01:00:51 1996
--- libc_elf/i386/SYS.h Fri Mar 15 01:00:05 1996
***************
*** 62,66 ****
#endif
! #define SYSCALL(x) 2: jmp cerror; ENTRY(x); lea SYS_/**/x,%eax; LCALL(7,0); jb 2b
#define RSYSCALL(x) SYSCALL(x); ret
--- 62,66 ----
#endif
! #define SYSCALL(x) 2: PIC_PROLOGUE; jmp HIDENAME(cerror); ENTRY(x); lea _GLUE(SYS_,x),%eax; LCALL(7,0); jb 2b
#define RSYSCALL(x) SYSCALL(x); ret
***************
*** 70,74 ****
* private to the threaded library.
*/
! #define PSYSCALL(x) 2: jmp cerror; ENTRY(_thread_sys_/**/x); lea SYS_/**/x,%eax; LCALL(7,0); jb 2b
#else
/*
--- 70,74 ----
* private to the threaded library.
*/
! #define PSYSCALL(x) 2: jmp HIDENAME(cerror); ENTRY(_GLUE(_thread_sys,x)); lea _GLUE(SYS_,x),%eax; LCALL(7,0); jb 2b
#else
/*
***************
*** 79,84 ****
#endif
#define PRSYSCALL(x) PSYSCALL(x); ret
! #define PSEUDO(x,y) ENTRY(x); lea SYS_/**/y, %eax; ; LCALL(7,0); ret
! #define CALL(x,y) call _/**/y; addl $4*x,%esp
/* gas fucks up offset -- although we don't currently need it, do for BCS */
#define LCALL(x,y) .byte 0x9a ; .long y; .word x
--- 79,84 ----
#endif
#define PRSYSCALL(x) PSYSCALL(x); ret
! #define PSEUDO(x,y) ENTRY(x); lea _GLUE(SYS_,y), %eax; LCALL(7,0); ret
! #define CALL(x,y) call _GLUE(SYS_,y); addl $4*x,%esp
/* gas fucks up offset -- although we don't currently need it, do for BCS */
#define LCALL(x,y) .byte 0x9a ; .long y; .word x
***************
*** 86,88 ****
#define ASMSTR .asciz
! .globl cerror
--- 86,88 ----
#define ASMSTR .asciz
! .globl HIDENAME(cerror)
diff -r -C2 libc/i386/gen/modf.S libc_elf/i386/gen/modf.S
*** libc/i386/gen/modf.S Mon Jan 23 02:27:05 1995
--- libc_elf/i386/gen/modf.S Fri Mar 15 00:34:31 1996
***************
*** 51,58 ****
/* With CHOP mode on, frndint behaves as TRUNC does. Useful. */
.text
! .globl _modf
! .type _modf,@function
! _modf:
pushl %ebp
movl %esp,%ebp
--- 51,61 ----
/* With CHOP mode on, frndint behaves as TRUNC does. Useful. */
+
+ #include "DEFS.h"
+
.text
! .globl CNAME(modf)
! .type CNAME(modf),@function
! CNAME(modf):
pushl %ebp
movl %esp,%ebp
diff -r -C2 libc/i386/gen/setjmp.S libc_elf/i386/gen/setjmp.S
*** libc/i386/gen/setjmp.S Mon Jan 22 01:00:53 1996
--- libc_elf/i386/gen/setjmp.S Fri Mar 15 01:01:14 1996
***************
*** 62,68 ****
pushl $0
#ifdef _THREAD_SAFE
! call PIC_PLT(__thread_sys_sigblock)
#else
! call PIC_PLT(_sigblock)
#endif
popl %edx
--- 62,68 ----
pushl $0
#ifdef _THREAD_SAFE
! call PIC_PLT(CNAME(_thread_sys_sigblock))
#else
! call PIC_PLT(CNAME(sigblock))
#endif
popl %edx
***************
*** 88,94 ****
pushl 24(%edx)
#ifdef _THREAD_SAFE
! call PIC_PLT(__thread_sys_sigsetmask)
#else
! call PIC_PLT(_sigsetmask) /* XXX this is not reentrant */
#endif
popl %eax
--- 88,94 ----
pushl 24(%edx)
#ifdef _THREAD_SAFE
! call PIC_PLT(CNAME(_thread_sys_sigsetmask))
#else
! call PIC_PLT(CNAME(sigsetmask)) /* XXX this is not reentrant */
#endif
popl %eax
diff -r -C2 libc/i386/gen/sigsetjmp.S libc_elf/i386/gen/sigsetjmp.S
*** libc/i386/gen/sigsetjmp.S Sat Feb 17 13:25:21 1996
--- libc_elf/i386/gen/sigsetjmp.S Fri Mar 15 01:00:54 1996
***************
*** 72,78 ****
pushl $0
#ifdef _THREAD_SAFE
! call PIC_PLT(__thread_sys_sigblock)
#else
! call PIC_PLT(_sigblock)
#endif
addl $4,%esp
--- 72,78 ----
pushl $0
#ifdef _THREAD_SAFE
! call PIC_PLT(CNAME(_thread_sys_sigblock))
#else
! call PIC_PLT(CNAME(sigblock))
#endif
addl $4,%esp
***************
*** 100,106 ****
pushl 24(%edx)
#ifdef _THREAD_SAFE
! call PIC_PLT(__thread_sys_sigsetmask)
#else
! call PIC_PLT(_sigsetmask)
#endif
addl $4,%esp
--- 100,106 ----
pushl 24(%edx)
#ifdef _THREAD_SAFE
! call PIC_PLT(CNAME(_thread_sys_sigsetmask))
#else
! call PIC_PLT(CNAME(sigsetmask))
#endif
addl $4,%esp
diff -r -C2 libc/i386/sys/Ovfork.S libc_elf/i386/sys/Ovfork.S
*** libc/i386/sys/Ovfork.S Mon Jan 22 01:00:56 1996
--- libc_elf/i386/sys/Ovfork.S Fri Mar 15 00:57:38 1996
***************
*** 51,61 ****
*
*/
! .set vfork,66
! .globl _vfork
! .type _vfork,@function
! _vfork:
popl %ecx /* my rta into ecx */
! movl $vfork, %eax
LCALL(7,0)
jb verror
--- 51,61 ----
*
*/
! .set HIDENAME(vfork),66
! .globl CNAME(vfork)
! .type CNAME(vfork),@function
! CNAME(vfork):
popl %ecx /* my rta into ecx */
! movl $ HIDENAME(vfork), %eax
LCALL(7,0)
jb verror
***************
*** 68,79 ****
* Threaded version using __error().
*/
! .globl ___error
! .type ___error,@function
verror:
pushl %eax
#ifdef PIC
! call PIC_PLT(___error)
#else
! call ___error
#endif
popl %ecx
--- 68,79 ----
* Threaded version using __error().
*/
! .globl CNAME(__error)
! .type CNAME(__error),@function
verror:
pushl %eax
#ifdef PIC
! call PIC_PLT(CNAME(__error))
#else
! call CNAME(__error)
#endif
popl %ecx
***************
*** 85,97 ****
* Non-threaded version using global errno.
*/
! .globl _errno
verror:
#ifdef PIC
PIC_PROLOGUE
! movl PIC_GOT(_errno), %edx
movl %eax,(%edx)
PIC_EPILOGUE
#else
! movl %eax,_errno
#endif
movl $-1,%eax
--- 85,97 ----
* Non-threaded version using global errno.
*/
! .globl CNAME(errno)
verror:
#ifdef PIC
PIC_PROLOGUE
! movl PIC_GOT(CNAME(errno)), %edx
movl %eax,(%edx)
PIC_EPILOGUE
#else
! movl %eax,CNAME(errno)
#endif
movl $-1,%eax
diff -r -C2 libc/i386/sys/brk.S libc_elf/i386/sys/brk.S
*** libc/i386/sys/brk.S Mon Jan 23 02:29:39 1995
--- libc_elf/i386/sys/brk.S Fri Mar 15 00:34:36 1996
***************
*** 46,51 ****
#define SYS_brk 17
! .globl curbrk
! .globl minbrk
ENTRY(_brk)
jmp ok
--- 46,51 ----
#define SYS_brk 17
! .globl HIDENAME(curbrk)
! .globl HIDENAME(minbrk)
ENTRY(_brk)
jmp ok
***************
*** 55,60 ****
movl 4(%esp),%eax
PIC_PROLOGUE
! movl PIC_GOT(curbrk),%edx # set up GOT addressing
! movl PIC_GOT(minbrk),%ecx #
cmpl %eax,(%ecx)
PIC_EPILOGUE
--- 55,60 ----
movl 4(%esp),%eax
PIC_PROLOGUE
! movl PIC_GOT(HIDENAME(curbrk)),%edx # set up GOT addressing
! movl PIC_GOT(HIDENAME(minbrk)),%ecx #
cmpl %eax,(%ecx)
PIC_EPILOGUE
***************
*** 71,82 ****
ret
err:
! jmp PIC_PLT(cerror)
#else
movl 4(%esp),%eax
! cmpl %eax,minbrk
jl ok
! movl minbrk,%eax
movl %eax,4(%esp)
ok:
--- 71,83 ----
ret
err:
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror))
#else
movl 4(%esp),%eax
! cmpl %eax,HIDENAME(minbrk)
jl ok
! movl HIDENAME(minbrk),%eax
movl %eax,4(%esp)
ok:
***************
*** 85,92 ****
jb err
movl 4(%esp),%eax
! movl %eax,curbrk
movl $0,%eax
ret
err:
! jmp cerror
#endif
--- 86,93 ----
jb err
movl 4(%esp),%eax
! movl %eax,HIDENAME(curbrk)
movl $0,%eax
ret
err:
! jmp HIDENAME(cerror)
#endif
diff -r -C2 libc/i386/sys/cerror.S libc_elf/i386/sys/cerror.S
*** libc/i386/sys/cerror.S Mon Jan 22 01:00:57 1996
--- libc_elf/i386/sys/cerror.S Fri Mar 15 00:51:04 1996
***************
*** 48,59 ****
* Threaded version using __error().
*/
! .globl ___error
! .type ___error,@function
! cerror:
pushl %eax
#ifdef PIC
! call PIC_PLT(___error)
#else
! call ___error
#endif
popl %ecx
--- 48,59 ----
* Threaded version using __error().
*/
! .globl CNAME(__error)
! .type CNAME(__error),@function
! HIDENAME(cerror):
pushl %eax
#ifdef PIC
! call PIC_PLT(CNAME(__error))
#else
! call CNAME(__error)
#endif
popl %ecx
***************
*** 67,79 ****
* Non-threaded version using global errno.
*/
! .globl _errno
! cerror:
#ifdef PIC
! PIC_PROLOGUE
! movl PIC_GOT(_errno),%ecx
movl %eax,(%ecx)
PIC_EPILOGUE
#else
! movl %eax,_errno
#endif
movl $-1,%eax
--- 67,80 ----
* Non-threaded version using global errno.
*/
!
! .globl CNAME(errno)
! HIDENAME(cerror):
#ifdef PIC
! /* The caller must execute the PIC prologue before jumping to cerror. */
! movl PIC_GOT(CNAME(errno)),%ecx
movl %eax,(%ecx)
PIC_EPILOGUE
#else
! movl %eax,CNAME(errno)
#endif
movl $-1,%eax
diff -r -C2 libc/i386/sys/exect.S libc_elf/i386/sys/exect.S
*** libc/i386/sys/exect.S Mon Jan 23 02:29:46 1995
--- libc_elf/i386/sys/exect.S Fri Mar 15 00:34:36 1996
***************
*** 53,55 ****
popf
LCALL(7,0)
! jmp cerror /* exect(file, argv, env); */
--- 53,56 ----
popf
LCALL(7,0)
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror)) /* exect(file, argv, env); */
diff -r -C2 libc/i386/sys/ptrace.S libc_elf/i386/sys/ptrace.S
*** libc/i386/sys/ptrace.S Mon Jan 23 02:29:59 1995
--- libc_elf/i386/sys/ptrace.S Fri Mar 15 00:34:36 1996
***************
*** 48,56 ****
#ifdef PIC
PIC_PROLOGUE
! movl PIC_GOT(_errno),%edx
movl %eax,(%edx)
PIC_EPILOGUE
#else
! movl %eax,_errno
#endif
lea SYS_ptrace,%eax
--- 48,56 ----
#ifdef PIC
PIC_PROLOGUE
! movl PIC_GOT(CNAME(errno)),%edx
movl %eax,(%edx)
PIC_EPILOGUE
#else
! movl %eax,CNAME(errno)
#endif
lea SYS_ptrace,%eax
***************
*** 59,61 ****
ret
err:
! jmp cerror
--- 59,62 ----
ret
err:
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror))
diff -r -C2 libc/i386/sys/sbrk.S libc_elf/i386/sys/sbrk.S
*** libc/i386/sys/sbrk.S Wed Oct 4 16:58:57 1995
--- libc_elf/i386/sys/sbrk.S Fri Mar 15 00:47:24 1996
***************
*** 46,56 ****
#define SYS_brk 17
! .globl _end
! .globl minbrk
! .globl curbrk
.data
! minbrk: .long _end
! curbrk: .long _end
.text
--- 46,56 ----
#define SYS_brk 17
! .globl CNAME(end)
! .globl HIDENAME(minbrk)
! .globl HIDENAME(curbrk)
.data
! HIDENAME(minbrk): .long CNAME(end)
! HIDENAME(curbrk): .long CNAME(end)
.text
***************
*** 59,63 ****
movl 4(%esp),%ecx
PIC_PROLOGUE
! movl PIC_GOT(curbrk),%edx
movl (%edx),%eax
PIC_EPILOGUE
--- 59,63 ----
movl 4(%esp),%ecx
PIC_PROLOGUE
! movl PIC_GOT(HIDENAME(curbrk)),%edx
movl (%edx),%eax
PIC_EPILOGUE
***************
*** 69,73 ****
jb err
PIC_PROLOGUE
! movl PIC_GOT(curbrk),%edx
movl (%edx),%eax
addl %ecx,(%edx)
--- 69,73 ----
jb err
PIC_PROLOGUE
! movl PIC_GOT(HIDENAME(curbrk)),%edx
movl (%edx),%eax
addl %ecx,(%edx)
***************
*** 76,96 ****
ret
err:
! jmp PIC_PLT(cerror)
#else /* !PIC */
movl 4(%esp),%ecx
! movl curbrk,%eax
! testl %ecx,%ecx
! jz back
addl %eax,4(%esp)
lea SYS_brk,%eax
LCALL(7,0)
jb err
! movl curbrk,%eax
! addl %ecx,curbrk
! back:
ret
err:
! jmp cerror
#endif /* PIC */
--- 76,94 ----
ret
err:
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror))
#else /* !PIC */
movl 4(%esp),%ecx
! movl HIDENAME(curbrk),%eax
addl %eax,4(%esp)
lea SYS_brk,%eax
LCALL(7,0)
jb err
! movl HIDENAME(curbrk),%eax
! addl %ecx,HIDENAME(curbrk)
ret
err:
! jmp HIDENAME(cerror)
#endif /* PIC */
diff -r -C2 libc/i386/sys/setlogin.S libc_elf/i386/sys/setlogin.S
*** libc/i386/sys/setlogin.S Mon Jan 23 02:30:06 1995
--- libc_elf/i386/sys/setlogin.S Fri Mar 15 00:34:36 1996
***************
*** 44,48 ****
#include "SYS.h"
! .globl __logname_valid /* in getlogin() */
SYSCALL(setlogin)
--- 44,48 ----
#include "SYS.h"
! .globl CNAME(_logname_valid) /* in getlogin() */
SYSCALL(setlogin)
***************
*** 50,59 ****
PIC_PROLOGUE
pushl %eax
! movl PIC_GOT(__logname_valid),%eax
movl $0,(%eax)
popl %eax
PIC_EPILOGUE
#else
! movl $0,__logname_valid
#endif
ret /* setlogin(name) */
--- 50,59 ----
PIC_PROLOGUE
pushl %eax
! movl PIC_GOT(CNAME(_logname_valid)),%eax
movl $0,(%eax)
popl %eax
PIC_EPILOGUE
#else
! movl $0,CNAME(_logname_valid)
#endif
ret /* setlogin(name) */
diff -r -C2 libc/i386/sys/sigprocmask.S libc_elf/i386/sys/sigprocmask.S
*** libc/i386/sys/sigprocmask.S Mon Jan 22 01:00:59 1996
--- libc_elf/i386/sys/sigprocmask.S Fri Mar 15 00:34:36 1996
***************
*** 45,49 ****
err:
! jmp cerror
#ifdef _THREAD_SAFE
--- 45,50 ----
err:
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror))
#ifdef _THREAD_SAFE
diff -r -C2 libc/i386/sys/sigreturn.S libc_elf/i386/sys/sigreturn.S
*** libc/i386/sys/sigreturn.S Mon Jan 22 01:01:00 1996
--- libc_elf/i386/sys/sigreturn.S Fri Mar 15 00:34:36 1996
***************
*** 50,55 ****
#undef ENTRY
#define ENTRY(x) \
! .globl _/**/x; .align 2; _/**/x: pusha ; \
! .data; 1:; .long 0; .text; movl $1b,%eax; call mcount; popa ; nop
#endif /* PROF */
--- 50,55 ----
#undef ENTRY
#define ENTRY(x) \
! .globl CNAME(x); .align 2; CNAME(x): pusha ; \
! .data; 1:; .long 0; .text; movl $1b,%eax; call HIDENAME(mcount); popa ; nop
#endif /* PROF */
diff -r -C2 libc/i386/sys/sigsuspend.S libc_elf/i386/sys/sigsuspend.S
*** libc/i386/sys/sigsuspend.S Mon Jan 22 01:01:01 1996
--- libc_elf/i386/sys/sigsuspend.S Fri Mar 15 00:34:36 1996
***************
*** 45,49 ****
err:
! jmp cerror
#ifdef _THREAD_SAFE
--- 45,50 ----
err:
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror))
#ifdef _THREAD_SAFE
diff -r -C2 libc/i386/sys/syscall.S libc_elf/i386/sys/syscall.S
*** libc/i386/sys/syscall.S Mon Jan 23 02:30:24 1995
--- libc_elf/i386/sys/syscall.S Fri Mar 15 00:34:36 1996
***************
*** 54,56 ****
ret
1:
! jmp cerror
--- 54,57 ----
ret
1:
! PIC_PROLOGUE
! jmp PIC_PLT(HIDENAME(cerror))
--
Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021
Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160
==============================================================================
http://www.zpr.uni-koeln.de/~se <se@ZPR.Uni-Koeln.DE>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199603151237.AA01920>
