1# $NetBSD: Makefile.sanitizer,v 1.7 2023/10/07 12:15:50 rin Exp $ 2 3SANITIZER=${GCCDIST}/libsanitizer 4.PATH: ${SANITIZER}/interception ${SANITIZER}/sanitizer_common 5 6INTERCEPTION_SRCS= \ 7interception_linux.cc \ 8interception_mac.cc \ 9interception_type_test.cc \ 10interception_win.cc 11 12# XXXmknative 13SANITIZER_SRCS+= \ 14 sancov_flags.cc \ 15 sanitizer_allocator.cc \ 16 sanitizer_allocator_checks.cc \ 17 sanitizer_allocator_report.cc \ 18 sanitizer_common.cc \ 19 sanitizer_common_libcdep.cc \ 20 sanitizer_coverage_libcdep_new.cc \ 21 sanitizer_deadlock_detector1.cc \ 22 sanitizer_deadlock_detector2.cc \ 23 sanitizer_errno.cc \ 24 sanitizer_file.cc \ 25 sanitizer_flag_parser.cc \ 26 sanitizer_flags.cc \ 27 sanitizer_libc.cc \ 28 sanitizer_libignore.cc \ 29 sanitizer_linux.cc \ 30 sanitizer_linux_libcdep.cc \ 31 sanitizer_linux_s390.cc \ 32 sanitizer_mac.cc \ 33 sanitizer_netbsd.cc \ 34 sanitizer_openbsd.cc \ 35 sanitizer_persistent_allocator.cc \ 36 sanitizer_platform_limits_linux.cc \ 37 sanitizer_platform_limits_netbsd.cc \ 38 sanitizer_platform_limits_openbsd.cc \ 39 sanitizer_platform_limits_solaris.cc \ 40 sanitizer_posix.cc \ 41 sanitizer_posix_libcdep.cc \ 42 sanitizer_printf.cc \ 43 sanitizer_procmaps_bsd.cc \ 44 sanitizer_procmaps_common.cc \ 45 sanitizer_procmaps_linux.cc \ 46 sanitizer_procmaps_mac.cc \ 47 sanitizer_procmaps_solaris.cc \ 48 sanitizer_rtems.cc \ 49 sanitizer_solaris.cc \ 50 sanitizer_stackdepot.cc \ 51 sanitizer_stacktrace.cc \ 52 sanitizer_stacktrace_libcdep.cc \ 53 sanitizer_stacktrace_printer.cc \ 54 sanitizer_stacktrace_sparc.cc \ 55 sanitizer_stoptheworld_linux_libcdep.cc \ 56 sanitizer_stoptheworld_netbsd_libcdep.cc \ 57 sanitizer_suppressions.cc \ 58 sanitizer_symbolizer.cc \ 59 sanitizer_symbolizer_libbacktrace.cc \ 60 sanitizer_symbolizer_libcdep.cc \ 61 sanitizer_symbolizer_mac.cc \ 62 sanitizer_symbolizer_posix_libcdep.cc \ 63 sanitizer_symbolizer_report.cc \ 64 sanitizer_symbolizer_win.cc \ 65 sanitizer_termination.cc \ 66 sanitizer_thread_registry.cc \ 67 sanitizer_tls_get_addr.cc \ 68 sanitizer_unwind_linux_libcdep.cc \ 69 sanitizer_unwind_win.cc \ 70 sanitizer_win.cc 71 72# The linux build does this to avoid preinit sections on shared libraries 73CSHLIBFLAGS+= -DPIC 74 75#SRCS+= ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} ${UBSAN_SRCS} 76SRCS+= ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} 77CPPFLAGS+=-I${SANITIZER}/include -I${SANITIZER} 78CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude 79CPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS 80CPPFLAGS+=-D__STDC_LIMIT_MACROS -DSANITIZER_HAS_EXCEPTIONS=1 81CPPFLAGS+=-DSANITIZER_NEEDS_SEGV=1 82#CPPFLAGS+=-DCAN_SANITIZE_UB=0 83 84 85LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread 86COPTS+=-std=gnu++11 -fsized-deallocation -fvisibility=hidden 87COPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables 88 89# Can't profile without it` 90#-fomit-frame-pointer 91