diff options
author | kan <kan@FreeBSD.org> | 2003-09-02 19:37:11 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-09-02 19:37:11 +0000 |
commit | 6d12300f90fad2255ee8886b22df9d054ead72cb (patch) | |
tree | d21b15d891848e43c52ff2c31d9fa141449b3af3 /lib/libkse/support | |
parent | a69ecba559088d42f19d6acd96fa0fb4d8caf7c0 (diff) | |
download | FreeBSD-src-6d12300f90fad2255ee8886b22df9d054ead72cb.zip FreeBSD-src-6d12300f90fad2255ee8886b22df9d054ead72cb.tar.gz |
Rethink the way thr_libc.So is generated. Relying on GCC to extract
only needed symbols from libc_pic is not working on sparc64.
Requested by: jake
Diffstat (limited to 'lib/libkse/support')
-rw-r--r-- | lib/libkse/support/Makefile.inc | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/lib/libkse/support/Makefile.inc b/lib/libkse/support/Makefile.inc index 1b445ab..c8176b3 100644 --- a/lib/libkse/support/Makefile.inc +++ b/lib/libkse/support/Makefile.inc @@ -1,9 +1,37 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/support +.PATH: ${.CURDIR}/support ${.CURDIR}/../libc/gen ${.CURDIR}/../libc/string + +CFLAGS+= -I${.CURDIR}/../libc/${MACHINE_ARCH} + +SYSCALLS= clock_gettime \ + kse_create \ + kse_exit \ + kse_release \ + kse_thr_interrupt \ + kse_wakeup \ + sigaction \ + sigprocmask \ + sigtimedwait \ + write + +SYSCALL_SRC= ${SYSCALLS:S/$/.S/} +SYSCALL_OBJ= ${SYSCALLS:S/$/.So/} + +${SYSCALL_SRC}: + printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' > ${.TARGET} + +LIBC_OBJS= sigsetops.So \ + bcopy.So \ + bzero.So \ + memcpy.So \ + memset.So \ + strcpy.So \ + strlen.So SOBJS+= thr_libc.So -CLEANFILES+= thr_support.So +CLEANFILES+= ${SYSCALL_SRC} ${SYSCALL_OBJ} ${LIBC_OBJS} + +thr_libc.So: ${SYSCALL_OBJ} ${LIBC_OBJS} + ${CC} -fPIC -nostdlib -o ${.TARGET} -r ${.ALLSRC} -thr_libc.So: thr_support.So - ${CC} -nostdlib -o ${.TARGET} -r thr_support.So -lc_pic |