1bb535300SJeff Roberson# $FreeBSD$ 2bb535300SJeff Roberson# 3bb535300SJeff Roberson# All library objects contain FreeBSD revision strings by default; they may be 4bb535300SJeff Roberson# excluded as a space-saving measure. To produce a library that does 5bb535300SJeff Roberson# not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS 69c4a7c50SJohn Baldwin# below. 75740a2b6SRuslan Ermilov 8c389411cSGlen BarberPACKAGE= clibs 9241715e7SRuslan ErmilovSHLIBDIR?= /lib 10241715e7SRuslan Ermilov 11c6063d0dSWarner Losh.include <src.opts.mk> 12d9ca85fcSRuslan ErmilovMK_SSP= no 1300fb440cSDaniel Eischen 14bb535300SJeff RobersonLIB=thr 15419ecd5dSDaniel EischenSHLIB_MAJOR= 3 166eccf6e3SEric van GyzenNO_WTHREAD_SAFETY=1 17afba14e2SEric van GyzenNO_WCAST_ALIGN.gcc=1 # for gcc 4.2 18a091d823SDavid XuCFLAGS+=-DPTHREAD_KERNEL 195d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/lib/libc/include 205d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} 215d00c5a6SKonstantin BelousovCFLAGS+=-I${.CURDIR}/thread 225d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/include 23f4fbf9c8SNathan WhitehornCFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include 24a091d823SDavid XuCFLAGS+=-I${.CURDIR}/sys 2558368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/libexec/rtld-elf 2658368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/libexec/rtld-elf/${MACHINE_CPUARCH} 2758368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/lib/libthread_db 283832fd24SDavid Xu 290b2f3f20SEric van GyzenCFLAGS.thr_stack.c+= -Wno-cast-align 30d49ca25dSKonstantin BelousovCFLAGS.rtld_malloc.c+= -Wno-cast-align 310b2f3f20SEric van GyzenCFLAGS.thr_symbols.c+= -Wno-missing-variable-declarations 32*9efbe526SAlex Richardson.if ${MK_ASAN} != "no" 33*9efbe526SAlex Richardson# False-positive ASAN error claiming the local "struct sigaction act;" is 34*9efbe526SAlex Richardson# overflowed by handle_signal() reading from the ucontext_t argument. This 35*9efbe526SAlex Richardson# could be caused by ASAN not treating this function as a signal handler. 36*9efbe526SAlex RichardsonCFLAGS.thr_sig.c+= -fno-sanitize=address 37*9efbe526SAlex Richardson.endif 380b2f3f20SEric van Gyzen 39f4213b90SDavid Xu.ifndef NO_THREAD_UNWIND_STACK 400935fc89SDavid XuCFLAGS+=-fexceptions 413832fd24SDavid XuCFLAGS+=-D_PTHREAD_FORCED_UNWIND 423832fd24SDavid Xu.endif 433832fd24SDavid Xu 446d772c3bSKonstantin BelousovLDFLAGS+=-Wl,-znodelete 45a091d823SDavid Xu 4658368ba9SEnji CooperVERSION_DEF=${SRCTOP}/lib/libc/Versions.def 47a9b9744fSDag-Erling SmørgravSYMBOL_MAPS=${.CURDIR}/pthread.map 48bb535300SJeff Roberson 495335c6bcSRobert WatsonMAN= libthr.3 505335c6bcSRobert Watson 51e13c6045SKonstantin Belousov# enable extra internal consistency checks 5244a31c2dSDavid XuCFLAGS+=-D_PTHREADS_INVARIANTS 53bb535300SJeff Roberson 54a35d8893SRuslan ErmilovPRECIOUSLIB= 55bb535300SJeff Roberson 5610f3ae58SWarner Losh.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} 57381c2d2eSKonstantin Belousov.PATH: ${SRCTOP}/libexec/rtld-elf 5810f3ae58SWarner Losh 5920fe2c94SAndrew Turner.if exists(${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc) 60f4fbf9c8SNathan Whitehorn.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" 6120fe2c94SAndrew Turner.endif 62a091d823SDavid Xu.include "${.CURDIR}/sys/Makefile.inc" 63a091d823SDavid Xu.include "${.CURDIR}/thread/Makefile.inc" 64d49ca25dSKonstantin BelousovSRCS+= rtld_malloc.c 65bb535300SJeff Roberson 66455cc6ecSJung-uk Kim.if ${MK_INSTALLLIB} != "no" 6755ac4c35SDavid XuSYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a 68455cc6ecSJung-uk Kim.endif 6955ac4c35SDavid Xu.if !defined(NO_PIC) 7084e709f1SRuslan ErmilovSYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so 7155ac4c35SDavid Xu.endif 725740a2b6SRuslan Ermilov.if ${MK_PROFILE} != "no" 7355ac4c35SDavid XuSYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a 7455ac4c35SDavid Xu.endif 7555ac4c35SDavid Xu 76d511b20aSEnji CooperHAS_TESTS= 774b330699SEnji CooperSUBDIR.${MK_TESTS}+= tests 783eee258dSEnji Cooper 79bb535300SJeff Roberson.include <bsd.lib.mk> 80