xref: /freebsd-14.2/lib/libthr/Makefile (revision 91c1c361)
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