1 2 .include <bsd.own.mk> 3 4 .include "../Makefile.inc" 5 6 ASAN=${GCCDIST}/libsanitizer 7 .PATH: ${ASAN}/asan ${ASAN}/interception ${ASAN}/sanitizer_common 8 9 ASAN_SRCS= \ 10 asan_activation.cc \ 11 asan_allocator2.cc \ 12 asan_debugging.cc \ 13 asan_fake_stack.cc \ 14 asan_globals.cc \ 15 asan_interceptors.cc \ 16 asan_linux.cc \ 17 asan_mac.cc \ 18 asan_malloc_linux.cc \ 19 asan_malloc_mac.cc \ 20 asan_malloc_win.cc \ 21 asan_new_delete.cc \ 22 asan_poisoning.cc \ 23 asan_posix.cc \ 24 asan_report.cc \ 25 asan_rtl.cc \ 26 asan_stack.cc \ 27 asan_stats.cc \ 28 asan_thread.cc \ 29 asan_win.cc \ 30 asan_win_dll_thunk.cc \ 31 asan_win_dynamic_runtime_thunk.cc 32 33 INTERCEPTION_SRCS= \ 34 interception_linux.cc \ 35 interception_mac.cc \ 36 interception_type_test.cc \ 37 interception_win.cc 38 39 SANITIZER_SRCS= \ 40 sanitizer_allocator.cc \ 41 sanitizer_common.cc \ 42 sanitizer_common_libcdep.cc \ 43 sanitizer_coverage_libcdep.cc \ 44 sanitizer_coverage_mapping_libcdep.cc \ 45 sanitizer_deadlock_detector1.cc \ 46 sanitizer_deadlock_detector2.cc \ 47 sanitizer_flags.cc \ 48 sanitizer_libc.cc \ 49 sanitizer_libignore.cc \ 50 sanitizer_linux.cc \ 51 sanitizer_linux_libcdep.cc \ 52 sanitizer_mac.cc \ 53 sanitizer_persistent_allocator.cc \ 54 sanitizer_platform_limits_linux.cc \ 55 sanitizer_platform_limits_posix.cc \ 56 sanitizer_posix.cc \ 57 sanitizer_posix_libcdep.cc \ 58 sanitizer_printf.cc \ 59 sanitizer_procmaps_common.cc \ 60 sanitizer_procmaps_netbsd.cc \ 61 sanitizer_procmaps_freebsd.cc \ 62 sanitizer_procmaps_linux.cc \ 63 sanitizer_procmaps_mac.cc \ 64 sanitizer_stackdepot.cc \ 65 sanitizer_stacktrace.cc \ 66 sanitizer_stacktrace_libcdep.cc \ 67 sanitizer_stacktrace_printer.cc \ 68 sanitizer_stoptheworld_linux_libcdep.cc \ 69 sanitizer_suppressions.cc \ 70 sanitizer_symbolizer.cc \ 71 sanitizer_symbolizer_libbacktrace.cc \ 72 sanitizer_symbolizer_libcdep.cc \ 73 sanitizer_symbolizer_posix_libcdep.cc \ 74 sanitizer_symbolizer_win.cc \ 75 sanitizer_thread_registry.cc \ 76 sanitizer_tls_get_addr.cc \ 77 sanitizer_unwind_posix_libcdep.cc \ 78 sanitizer_win.cc 79 80 # The linux build does this to avoid preinit sections on shared libraries 81 CSHLIBFLAGS+= -DPIC 82 83 LIB= asan 84 SRCS= ${ASAN_SRCS} ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} 85 CPPFLAGS+=-I${ASAN}/include -I${ASAN} 86 CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude 87 CPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DASAN_HAS_EXCEPTIONS=1 -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=0 -DASAN_NEEDS_SEGV=1 88 89 LIBDPLIBS+= stdc++ ${.CURDIR}/../libstdc++-v3 90 LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread 91 COPTS+=-std=gnu++11 -fsized-deallocation -fvisibility=hidden 92 93 .if ${MACHINE_ARCH} == "vax" 94 COPTS.asan_allocator2.cc += -O1 95 COPTS.sanitizer_mac.cc += -O1 96 COPTS.sanitizer_netbsd.cc += -O1 97 COPTS.sanitizer_printf.cc += -O1 98 COPTS.sanitizer_stackdepot.cc += -O1 99 .endif 100 101 .include <bsd.lib.mk> 102