1# $NetBSD: Makefile,v 1.11 2023/02/20 02:12:28 mrg Exp $
2
3UNSUPPORTED_COMPILER.clang=     # defined
4NOSANITIZER=    # defined
5NOCOMPAT=	# defined
6
7.include <bsd.own.mk>
8
9.include "../Makefile.inc"
10.include "../Makefile.sanitizer"
11
12.PATH: ${SANITIZER}/tsan
13
14# XXXmknative
15TSAN_SRCS= \
16	tsan_clock.cc \
17	tsan_debugging.cc \
18	tsan_external.cc \
19	tsan_fd.cc \
20	tsan_flags.cc \
21	tsan_ignoreset.cc \
22	tsan_interceptors.cc \
23	tsan_interceptors_mac.cc \
24	tsan_interface_ann.cc \
25	tsan_interface_atomic.cc \
26	tsan_interface.cc \
27	tsan_interface_java.cc \
28	tsan_libdispatch_mac.cc \
29	tsan_malloc_mac.cc \
30	tsan_md5.cc \
31	tsan_mman.cc \
32	tsan_mutex.cc \
33	tsan_mutexset.cc \
34	tsan_new_delete.cc \
35	tsan_platform_linux.cc \
36	tsan_platform_mac.cc \
37	tsan_platform_posix.cc \
38	tsan_platform_windows.cc \
39	tsan_report.cc \
40	tsan_rtl.cc \
41	tsan_rtl_mutex.cc \
42	tsan_rtl_proc.cc \
43	tsan_rtl_report.cc \
44	tsan_rtl_thread.cc \
45	tsan_stack_trace.cc \
46	tsan_stat.cc \
47	tsan_suppressions.cc \
48	tsan_symbolize.cc \
49	tsan_sync.cc 
50
51.if ${MACHINE_ARCH} == "x86_64"
52TSAN_SRCS+= tsan_rtl_amd64.S
53.elif ${MACHINE_ARCH} == "aarch64"
54TSAN_SRCS+= tsan_rtl_aarch64.S
55.elif ${MACHINE_MIPS64}
56TSAN_SRCS+= tsan_rtl_mips64.S
57.elif ${MACHINE_ARCH} == "powerpc64"
58TSAN_SRCS+= tsan_rtl_ppc64.S
59.else
60.error Unsupported
61.endif
62
63LIB=	tsan
64SRCS+=	${TSAN_SRCS}
65LIBDPLIBS+= rt ${NETBSDSRCDIR}/lib/librt
66LIBDPLIBS+= m  ${NETBSDSRCDIR}/lib/libm
67LIBDPLIBS+= pthread ${NETBSDSRCDIR}/lib/libpthread
68CPPFLAGS+=-DCAN_SANITIZE_UB=0
69COPTS.tsan_interceptors.cc += -Wno-unused-function
70
71.include <bsd.lib.mk>
72