1bb535300SJeff Roberson# 2bb535300SJeff Roberson# All library objects contain FreeBSD revision strings by default; they may be 3bb535300SJeff Roberson# excluded as a space-saving measure. To produce a library that does 4bb535300SJeff Roberson# not contain these strings, add -DSTRIP_FBSDID (see <sys/cdefs.h>) to CFLAGS 59c4a7c50SJohn Baldwin# below. 65740a2b6SRuslan Ermilov 7c389411cSGlen BarberPACKAGE= clibs 8241715e7SRuslan ErmilovSHLIBDIR?= /lib 9241715e7SRuslan Ermilov 10*99ea6757SBrooks DavisLIBADD= c sys 11*99ea6757SBrooks Davis 12c6063d0dSWarner Losh.include <src.opts.mk> 13d9ca85fcSRuslan ErmilovMK_SSP= no 1400fb440cSDaniel Eischen 15bb535300SJeff RobersonLIB=thr 16419ecd5dSDaniel EischenSHLIB_MAJOR= 3 17ef9871c6SBrooks Davis 186eccf6e3SEric van GyzenNO_WTHREAD_SAFETY=1 19afba14e2SEric van GyzenNO_WCAST_ALIGN.gcc=1 # for gcc 4.2 20a091d823SDavid XuCFLAGS+=-DPTHREAD_KERNEL 215d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/lib/libc/include 225d00c5a6SKonstantin BelousovCFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} 235d00c5a6SKonstantin BelousovCFLAGS+=-I${.CURDIR}/thread 24f4fbf9c8SNathan WhitehornCFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include 25a091d823SDavid XuCFLAGS+=-I${.CURDIR}/sys 2658368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/libexec/rtld-elf 2758368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/libexec/rtld-elf/${MACHINE_CPUARCH} 2858368ba9SEnji CooperCFLAGS+=-I${SRCTOP}/lib/libthread_db 293832fd24SDavid Xu 300b2f3f20SEric van GyzenCFLAGS.thr_stack.c+= -Wno-cast-align 31d49ca25dSKonstantin BelousovCFLAGS.rtld_malloc.c+= -Wno-cast-align 320b2f3f20SEric van GyzenCFLAGS.thr_symbols.c+= -Wno-missing-variable-declarations 339efbe526SAlex Richardson.if ${MK_ASAN} != "no" 349efbe526SAlex Richardson# False-positive ASAN error claiming the local "struct sigaction act;" is 359efbe526SAlex Richardson# overflowed by handle_signal() reading from the ucontext_t argument. This 369efbe526SAlex Richardson# could be caused by ASAN not treating this function as a signal handler. 379efbe526SAlex RichardsonCFLAGS.thr_sig.c+= -fno-sanitize=address 389efbe526SAlex Richardson.endif 390b2f3f20SEric van Gyzen 40bbf4df17SJohn Baldwin.if ${MACHINE_CPUARCH} == "arm" 41bbf4df17SJohn BaldwinNO_THREAD_UNWIND_STACK= yes 42bbf4df17SJohn Baldwin.endif 43bbf4df17SJohn Baldwin 44f4213b90SDavid Xu.ifndef NO_THREAD_UNWIND_STACK 450935fc89SDavid XuCFLAGS+=-fexceptions 463832fd24SDavid XuCFLAGS+=-D_PTHREAD_FORCED_UNWIND 473832fd24SDavid Xu.endif 483832fd24SDavid Xu 496d772c3bSKonstantin BelousovLDFLAGS+=-Wl,-znodelete 5049d68436SBrooks DavisLDFLAGS+=-Wl,--auxiliary,libsys.so.7 51a091d823SDavid Xu 5258368ba9SEnji CooperVERSION_DEF=${SRCTOP}/lib/libc/Versions.def 53a9b9744fSDag-Erling SmørgravSYMBOL_MAPS=${.CURDIR}/pthread.map 54bb535300SJeff Roberson 555335c6bcSRobert WatsonMAN= libthr.3 565335c6bcSRobert Watson 57642cd511SGreg Becker.if ${MK_PTHREADS_ASSERTIONS} != "no" 58e13c6045SKonstantin Belousov# enable extra internal consistency checks 5944a31c2dSDavid XuCFLAGS+=-D_PTHREADS_INVARIANTS 60642cd511SGreg Becker.endif 61bb535300SJeff Roberson 62a35d8893SRuslan ErmilovPRECIOUSLIB= 63bb535300SJeff Roberson 6410f3ae58SWarner Losh.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} 65381c2d2eSKonstantin Belousov.PATH: ${SRCTOP}/libexec/rtld-elf 6610f3ae58SWarner Losh 6720fe2c94SAndrew Turner.if exists(${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc) 68f4fbf9c8SNathan Whitehorn.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" 6920fe2c94SAndrew Turner.endif 70a091d823SDavid Xu.include "${.CURDIR}/sys/Makefile.inc" 71a091d823SDavid Xu.include "${.CURDIR}/thread/Makefile.inc" 72d49ca25dSKonstantin BelousovSRCS+= rtld_malloc.c 73bb535300SJeff Roberson 74ef9871c6SBrooks DavisLIBSYS_SRCTOP= ${.CURDIR:H}/libsys 75ef9871c6SBrooks Davis.if exists(${LIBSYS_SRCTOP}/${MACHINE_CPUARCH}/_umtx_op_err.S) 76ef9871c6SBrooks Davis.PATH: ${LIBSYS_SRCTOP}/${MACHINE_CPUARCH} 77ef9871c6SBrooks Davis.else 78ef9871c6SBrooks Davis.PATH: ${LIBSYS_SRCTOP} 79ef9871c6SBrooks Davis.endif 8049d68436SBrooks DavisOBJS+= _umtx_op_err.o 81ef9871c6SBrooks Davis 82455cc6ecSJung-uk Kim.if ${MK_INSTALLLIB} != "no" 8355ac4c35SDavid XuSYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a 84455cc6ecSJung-uk Kim.endif 8555ac4c35SDavid Xu.if !defined(NO_PIC) 8684e709f1SRuslan ErmilovSYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so 8755ac4c35SDavid Xu.endif 885740a2b6SRuslan Ermilov.if ${MK_PROFILE} != "no" 8955ac4c35SDavid XuSYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a 9055ac4c35SDavid Xu.endif 9155ac4c35SDavid Xu 92d511b20aSEnji CooperHAS_TESTS= 934b330699SEnji CooperSUBDIR.${MK_TESTS}+= tests 943eee258dSEnji Cooper 95bb535300SJeff Roberson.include <bsd.lib.mk> 96