15740a2b6SRuslan Ermilov 2c389411cSGlen BarberPACKAGE= clibs 3241715e7SRuslan ErmilovSHLIBDIR?= /lib 4241715e7SRuslan Ermilov 5c6063d0dSWarner Losh.include <src.opts.mk> 6d9ca85fcSRuslan ErmilovMK_SSP= no 700fb440cSDaniel Eischen 8bb535300SJeff RobersonLIB=thr 9419ecd5dSDaniel EischenSHLIB_MAJOR= 3 106eccf6e3SEric van GyzenNO_WTHREAD_SAFETY=1 11afba14e2SEric van GyzenNO_WCAST_ALIGN.gcc=1 # for gcc 4.2 12a091d823SDavid XuCFLAGS+=-DPTHREAD_KERNEL 135d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/lib/libc/include 145d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} 155d00c5a6SKonstantin BelousovCFLAGS+=-I${.CURDIR}/thread 16f4fbf9c8SNathan WhitehornCFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include 17a091d823SDavid XuCFLAGS+=-I${.CURDIR}/sys 1858368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/libexec/rtld-elf 1958368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/libexec/rtld-elf/${MACHINE_CPUARCH} 2058368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/lib/libthread_db 213832fd24SDavid Xu 220b2f3f20SEric van GyzenCFLAGS.thr_stack.c+= -Wno-cast-align 23d49ca25dSKonstantin BelousovCFLAGS.rtld_malloc.c+= -Wno-cast-align 240b2f3f20SEric van GyzenCFLAGS.thr_symbols.c+= -Wno-missing-variable-declarations 259efbe526SAlex Richardson.if ${MK_ASAN} != "no" 269efbe526SAlex Richardson# False-positive ASAN error claiming the local "struct sigaction act;" is 279efbe526SAlex Richardson# overflowed by handle_signal() reading from the ucontext_t argument. This 289efbe526SAlex Richardson# could be caused by ASAN not treating this function as a signal handler. 299efbe526SAlex RichardsonCFLAGS.thr_sig.c+= -fno-sanitize=address 309efbe526SAlex Richardson.endif 310b2f3f20SEric van Gyzen 32bbf4df17SJohn Baldwin.if ${MACHINE_CPUARCH} == "arm" 33bbf4df17SJohn BaldwinNO_THREAD_UNWIND_STACK= yes 34bbf4df17SJohn Baldwin.endif 35bbf4df17SJohn Baldwin 36f4213b90SDavid Xu.ifndef NO_THREAD_UNWIND_STACK 370935fc89SDavid XuCFLAGS+=-fexceptions 383832fd24SDavid XuCFLAGS+=-D_PTHREAD_FORCED_UNWIND 393832fd24SDavid Xu.endif 403832fd24SDavid Xu 416d772c3bSKonstantin BelousovLDFLAGS+=-Wl,-znodelete 42a091d823SDavid Xu 4358368ba9SEnji CooperVERSION_DEF=${SRCTOP}/lib/libc/Versions.def 44a9b9744fSDag-Erling SmørgravSYMBOL_MAPS=${.CURDIR}/pthread.map 45bb535300SJeff Roberson 465335c6bcSRobert WatsonMAN= libthr.3 475335c6bcSRobert Watson 48*642cd511SGreg Becker.if ${MK_PTHREADS_ASSERTIONS} != "no" 49e13c6045SKonstantin Belousov# enable extra internal consistency checks 5044a31c2dSDavid XuCFLAGS+=-D_PTHREADS_INVARIANTS 51*642cd511SGreg Becker.endif 52bb535300SJeff Roberson 53a35d8893SRuslan ErmilovPRECIOUSLIB= 54bb535300SJeff Roberson 5510f3ae58SWarner Losh.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} 56381c2d2eSKonstantin Belousov.PATH: ${SRCTOP}/libexec/rtld-elf 5710f3ae58SWarner Losh 5820fe2c94SAndrew Turner.if exists(${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc) 59f4fbf9c8SNathan Whitehorn.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" 6020fe2c94SAndrew Turner.endif 61a091d823SDavid Xu.include "${.CURDIR}/sys/Makefile.inc" 62a091d823SDavid Xu.include "${.CURDIR}/thread/Makefile.inc" 63d49ca25dSKonstantin BelousovSRCS+= rtld_malloc.c 64bb535300SJeff Roberson 65455cc6ecSJung-uk Kim.if ${MK_INSTALLLIB} != "no" 6655ac4c35SDavid XuSYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a 67455cc6ecSJung-uk Kim.endif 6855ac4c35SDavid Xu.if !defined(NO_PIC) 6984e709f1SRuslan ErmilovSYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so 7055ac4c35SDavid Xu.endif 715740a2b6SRuslan Ermilov.if ${MK_PROFILE} != "no" 7255ac4c35SDavid XuSYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a 7355ac4c35SDavid Xu.endif 7455ac4c35SDavid Xu 75d511b20aSEnji CooperHAS_TESTS= 764b330699SEnji CooperSUBDIR.${MK_TESTS}+= tests 773eee258dSEnji Cooper 78bb535300SJeff Roberson.include <bsd.lib.mk> 79