Home | History | Annotate | Line # | Download | only in lib
      1 #	$NetBSD: Makefile.sanitizer,v 1.9 2025/09/26 10:41:00 rin Exp $
      2 
      3 SANITIZER=${GCCDIST}/libsanitizer
      4 .PATH: ${SANITIZER}/interception ${SANITIZER}/sanitizer_common
      5 
      6 INTERCEPTION_SRCS= \
      7 	interception_linux.cpp \
      8 	interception_mac.cpp \
      9 	interception_win.cpp \
     10 	interception_type_test.cpp
     11 
     12 # XXXmknative
     13 SANITIZER_SRCS+= \
     14 	sancov_flags.cpp \
     15 	sanitizer_allocator.cpp \
     16 	sanitizer_allocator_checks.cpp \
     17 	sanitizer_allocator_report.cpp \
     18 	sanitizer_common.cpp \
     19 	sanitizer_common_libcdep.cpp \
     20 	sanitizer_coverage_libcdep_new.cpp \
     21 	sanitizer_deadlock_detector1.cpp \
     22 	sanitizer_deadlock_detector2.cpp \
     23 	sanitizer_errno.cpp \
     24 	sanitizer_file.cpp \
     25 	sanitizer_flags.cpp \
     26 	sanitizer_flag_parser.cpp \
     27 	sanitizer_libc.cpp \
     28 	sanitizer_libignore.cpp \
     29 	sanitizer_linux.cpp \
     30 	sanitizer_linux_libcdep.cpp \
     31 	sanitizer_linux_s390.cpp \
     32 	sanitizer_mac.cpp \
     33 	sanitizer_mac_libcdep.cpp \
     34 	sanitizer_mutex.cpp \
     35 	sanitizer_netbsd.cpp \
     36 	sanitizer_openbsd.cpp \
     37 	sanitizer_platform_limits_freebsd.cpp \
     38 	sanitizer_platform_limits_linux.cpp \
     39 	sanitizer_platform_limits_netbsd.cpp \
     40 	sanitizer_platform_limits_openbsd.cpp \
     41 	sanitizer_platform_limits_posix.cpp \
     42 	sanitizer_platform_limits_solaris.cpp \
     43 	sanitizer_posix.cpp \
     44 	sanitizer_posix_libcdep.cpp \
     45 	sanitizer_printf.cpp \
     46 	sanitizer_procmaps_bsd.cpp \
     47 	sanitizer_procmaps_common.cpp \
     48 	sanitizer_procmaps_linux.cpp \
     49 	sanitizer_procmaps_mac.cpp \
     50 	sanitizer_procmaps_solaris.cpp \
     51 	sanitizer_solaris.cpp \
     52 	sanitizer_stackdepot.cpp \
     53 	sanitizer_stacktrace.cpp \
     54 	sanitizer_stacktrace_libcdep.cpp \
     55 	sanitizer_stacktrace_sparc.cpp \
     56 	sanitizer_symbolizer_mac.cpp \
     57 	sanitizer_symbolizer_report.cpp \
     58 	sanitizer_stacktrace_printer.cpp \
     59 	sanitizer_stoptheworld_linux_libcdep.cpp \
     60 	sanitizer_stoptheworld_netbsd_libcdep.cpp \
     61 	sanitizer_stoptheworld_mac.cpp \
     62 	sanitizer_suppressions.cpp \
     63 	sanitizer_symbolizer.cpp \
     64 	sanitizer_symbolizer_libbacktrace.cpp \
     65 	sanitizer_symbolizer_libcdep.cpp \
     66 	sanitizer_symbolizer_posix_libcdep.cpp \
     67 	sanitizer_symbolizer_win.cpp \
     68 	sanitizer_termination.cpp \
     69 	sanitizer_thread_registry.cpp \
     70 	sanitizer_tls_get_addr.cpp \
     71 	sanitizer_unwind_linux_libcdep.cpp \
     72 	sanitizer_unwind_win.cpp \
     73 	sanitizer_win.cpp
     74 
     75 # The linux build does this to avoid preinit sections on shared libraries
     76 CSHLIBFLAGS+= -DPIC
     77 
     78 #SRCS+=	${INTERCEPTION_SRCS} ${SANITIZER_SRCS} ${UBSAN_SRCS}
     79 SRCS+=	${INTERCEPTION_SRCS} ${SANITIZER_SRCS}
     80 CPPFLAGS+=-I${SANITIZER}/include -I${SANITIZER}
     81 CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude
     82 CPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
     83 CPPFLAGS+=-D__STDC_LIMIT_MACROS 
     84 CPPFLAGS+=-DASAN_NEEDS_SEGV=1
     85 CPPFLAGS+=-DASAN_HAS_CXA_RETHROW_PRIMARY_EXCEPTION=0
     86 #CPPFLAGS+=-DCAN_SANITIZE_UB=0
     87 
     88 
     89 LIBDPLIBS+=    pthread ${.CURDIR}/../../../../../lib/libpthread
     90 COPTS+=-fPIC -fno-builtin -fno-exceptions -fno-rtti
     91 COPTS+=-funwind-tables -fvisibility=hidden -fno-ipa-icf
     92 #COPTS+=-fsized-deallocation
     93 COPTS+=-std=gnu++14
     94 
     95 # XXX is this mis-compiled, and supposed to be some weak-symbol override thing?
     96 .for _f in asan_suppressions.cpp sancov_flags.cpp
     97 #COPTS.${_f}+=-Wno-error=address
     98 COPTS.${_f}+=-Wno-address
     99 .endfor
    100 # XXX
    101 COPTS.sanitizer_posix.cpp+=-Wno-error=maybe-uninitialized
    102 COPTS.tsan_rtl_access.cpp+=-Wno-error=maybe-uninitialized
    103 COPTS.ubsan_handlers_cxx.cpp+=-Wno-error=maybe-uninitialized
    104 
    105 # Can't profile without it
    106 #-fomit-frame-pointer
    107