1255570Strasz 2255570StraszPACKAGE= clibs 3255570StraszSHLIBDIR?= /lib 4255570Strasz 5255570StraszLIBADD= c sys 6255570Strasz.if defined(COMPAT_libcompat) 7255570Strasz# XXX: work around gcc -m32 + bfd ld path issue for DT_NEEDED symbols. 8255570Strasz# https://sourceware.org/bugzilla/show_bug.cgi?id=31395 9255570StraszLDFLAGS+= -Wl,--rpath=/usr/lib${COMPAT_libcompat} 10255570Strasz.endif 11255570Strasz 12255570Strasz.include <src.opts.mk> 13255570StraszMK_SSP= no 14255570Strasz# SSP forced off already implies FORTIFY_SOURCE=0, but we must make sure that 15255570Strasz# one cannot turn it back on. 16255570StraszFORTIFY_SOURCE= 0 17255570Strasz 18255570StraszLIB=thr 19255570StraszSHLIB_MAJOR= 3 20255570Strasz 21255570StraszNO_WTHREAD_SAFETY=1 22255570StraszNO_WCAST_ALIGN.gcc=1 # for gcc 4.2 23255570StraszCFLAGS+=-DPTHREAD_KERNEL 24255570StraszCFLAGS+=-I${SRCTOP}/lib/libc/include 25255570StraszCFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} 26255570StraszCFLAGS+=-I${.CURDIR}/thread 27255570StraszCFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include 28255570StraszCFLAGS+=-I${.CURDIR}/sys 29255570StraszCFLAGS+=-I${SRCTOP}/libexec/rtld-elf 30255570StraszCFLAGS+=-I${SRCTOP}/libexec/rtld-elf/${MACHINE_CPUARCH} 31270888StraszCFLAGS+=-I${SRCTOP}/lib/libthread_db 32270888Strasz 33270888StraszCFLAGS.thr_stack.c+= -Wno-cast-align 34255570StraszCFLAGS.rtld_malloc.c+= -Wno-cast-align 35255570StraszCFLAGS.thr_symbols.c+= -Wno-missing-variable-declarations 36255570Strasz.if ${MK_ASAN} != "no" 37255570Strasz# False-positive ASAN error claiming the local "struct sigaction act;" is 38255570Strasz# overflowed by handle_signal() reading from the ucontext_t argument. This 39255570Strasz# could be caused by ASAN not treating this function as a signal handler. 40255570StraszCFLAGS.thr_sig.c+= -fno-sanitize=address 41255570Strasz.endif 42255570Strasz 43255570Strasz.if ${MACHINE_CPUARCH} == "arm" 44255570StraszNO_THREAD_UNWIND_STACK= yes 45255570Strasz.endif 46255570Strasz 47255570Strasz.ifndef NO_THREAD_UNWIND_STACK 48255570StraszCFLAGS+=-fexceptions 49255570StraszCFLAGS+=-D_PTHREAD_FORCED_UNWIND 50255570Strasz.endif 51255570Strasz 52255570StraszLDFLAGS+=-Wl,-znodelete 53255570StraszLDFLAGS+=-Wl,--auxiliary,libsys.so.7 54255570Strasz 55255570StraszVERSION_DEF=${SRCTOP}/lib/libc/Versions.def 56255570StraszSYMBOL_MAPS=${.CURDIR}/pthread.map 57255570Strasz 58255570StraszMAN= libthr.3 59255570Strasz 60255570Strasz.if ${MK_PTHREADS_ASSERTIONS} != "no" 61255570Strasz# enable extra internal consistency checks 62255570StraszCFLAGS+=-D_PTHREADS_INVARIANTS 63255570Strasz.endif 64255570Strasz 65255570StraszPRECIOUSLIB= 66255570Strasz 67255570Strasz.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} 68255570Strasz.PATH: ${SRCTOP}/libexec/rtld-elf 69255570Strasz 70255570Strasz.if exists(${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc) 71255570Strasz.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" 72255570Strasz.endif 73255570Strasz.include "${.CURDIR}/sys/Makefile.inc" 74255570Strasz.include "${.CURDIR}/thread/Makefile.inc" 75255570StraszSRCS+= rtld_malloc.c 76255570Strasz 77255570StraszLIBSYS_SRCTOP= ${.CURDIR:H}/libsys 78255570Strasz.if exists(${LIBSYS_SRCTOP}/${MACHINE_CPUARCH}/_umtx_op_err.S) 79255570Strasz.PATH: ${LIBSYS_SRCTOP}/${MACHINE_CPUARCH} 80255570Strasz.else 81255570Strasz.PATH: ${LIBSYS_SRCTOP} 82255570Strasz.endif 83255570StraszOBJS+= _umtx_op_err.o 84255570Strasz 85255570Strasz.if ${MK_INSTALLLIB} != "no" 86255570StraszSYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a 87255570Strasz.endif 88255570Strasz.if !defined(NO_PIC) 89255570StraszSYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so 90255570Strasz.endif 91255570Strasz.if ${MK_PROFILE} != "no" 92255570StraszSYMLINKS+=lib${LIB}_p.a ${LIBDIR}/libpthread_p.a 93255570Strasz.endif 94255570Strasz 95255570StraszHAS_TESTS= 96255570StraszSUBDIR.${MK_TESTS}+= tests 97255570Strasz 98255570Strasz.include <bsd.lib.mk> 99255570Strasz