aboutsummaryrefslogtreecommitdiff
path: root/lib/libthr/Makefile
blob: c87be94753901fe96e65ae552fee3f533f529f27 (plain) (blame)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
PACKAGE=clibs SHLIBDIR?= /lib LIBADD=c sys .if defined(COMPAT_libcompat) # XXX: work around gcc -m32 + bfd ld path issue for DT_NEEDED symbols. # https://sourceware.org/bugzilla/show_bug.cgi?id=31395 LDFLAGS+=	-Wl,--rpath=/usr/lib${COMPAT_libcompat} .endif .include <src.opts.mk> MK_SSP=no # SSP forced off already implies FORTIFY_SOURCE=0, but we must make sure that # one cannot turn it back on. FORTIFY_SOURCE=0 LIB=thr SHLIB_MAJOR= 3 NO_WTHREAD_SAFETY=1 NO_WCAST_ALIGN.gcc=1 # for gcc 4.2 CFLAGS+=-DPTHREAD_KERNEL CFLAGS+=-I${SRCTOP}/lib/libc/include CFLAGS+=-I${SRCTOP}/lib/libc/${MACHINE_CPUARCH} CFLAGS+=-I${.CURDIR}/thread CFLAGS+=-I${.CURDIR}/arch/${MACHINE_CPUARCH}/include CFLAGS+=-I${.CURDIR}/sys CFLAGS+=-I${SRCTOP}/libexec/rtld-elf CFLAGS+=-I${SRCTOP}/libexec/rtld-elf/${MACHINE_CPUARCH} CFLAGS+=-I${SRCTOP}/lib/libthread_db CFLAGS.thr_stack.c+=	-Wno-cast-align CFLAGS.rtld_malloc.c+=	-Wno-cast-align # Disable compiler builtins so that the compiler does not optimize away rtld's # attempts to force early PLT resolution for certain functions that may be # replaced by builtins. CFLAGS.thr_rtld.c+=	-fno-builtin CFLAGS.thr_symbols.c+=	-Wno-missing-variable-declarations .if ${MK_ASAN} != "no" # False-positive ASAN error claiming the local "struct sigaction act;" is # overflowed by handle_signal() reading from the ucontext_t argument. This # could be caused by ASAN not treating this function as a signal handler. CFLAGS.thr_sig.c+=	-fno-sanitize=address .endif .if ${MACHINE_CPUARCH} == "arm" NO_THREAD_UNWIND_STACK= yes .endif .ifndef NO_THREAD_UNWIND_STACK CFLAGS+=-fexceptions CFLAGS+=-D_PTHREAD_FORCED_UNWIND .endif LDFLAGS+=-Wl,-znodelete LDFLAGS+=-Wl,-zinitfirst LDFLAGS+=-Wl,--auxiliary,libsys.so.7 VERSION_DEF=${SRCTOP}/lib/libc/Versions.def SYMBOL_MAPS=${.CURDIR}/pthread.map MAN=libthr.3 .if ${MK_PTHREADS_ASSERTIONS} != "no" # enable extra internal consistency checks CFLAGS+=-D_PTHREADS_INVARIANTS .endif PRECIOUSLIB= .PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} .PATH: ${SRCTOP}/libexec/rtld-elf .if exists(${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc) .include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" .endif .include "${.CURDIR}/sys/Makefile.inc" .include "${.CURDIR}/thread/Makefile.inc" SRCS+= rtld_malloc.c LIBSYS_SRCTOP=	${.CURDIR:H}/libsys .if exists(${LIBSYS_SRCTOP}/${MACHINE_CPUARCH}/_umtx_op_err.S) .PATH: ${LIBSYS_SRCTOP}/${MACHINE_CPUARCH} .else .PATH: ${LIBSYS_SRCTOP} .endif OBJS+=_umtx_op_err.o .if ${MK_INSTALLLIB} != "no" SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a .endif .if !defined(NO_PIC) SYMLINKS+=lib${LIB}.so ${LIBDIR}/libpthread.so .endif HAS_TESTS= SUBDIR.${MK_TESTS}+= tests .include <bsd.lib.mk>