1*ec02198aSmrg# $NetBSD: Makefile.sanitizer,v 1.6 2023/02/20 02:11:57 mrg Exp $ 263d1a8abSmrg 363d1a8abSmrgSANITIZER=${GCCDIST}/libsanitizer 463d1a8abSmrg.PATH: ${SANITIZER}/interception ${SANITIZER}/sanitizer_common 563d1a8abSmrg 663d1a8abSmrgINTERCEPTION_SRCS= \ 763d1a8abSmrginterception_linux.cc \ 863d1a8abSmrginterception_mac.cc \ 963d1a8abSmrginterception_type_test.cc \ 1063d1a8abSmrginterception_win.cc 1163d1a8abSmrg 12c7a68eb7Smrg# XXXmknative 1363d1a8abSmrgSANITIZER_SRCS+= \ 14c7a68eb7Smrg sancov_flags.cc \ 1563d1a8abSmrg sanitizer_allocator.cc \ 16c7a68eb7Smrg sanitizer_allocator_checks.cc \ 170fc04c29Smrg sanitizer_allocator_report.cc \ 1863d1a8abSmrg sanitizer_common.cc \ 1963d1a8abSmrg sanitizer_common_libcdep.cc \ 20c7a68eb7Smrg sanitizer_coverage_libcdep_new.cc \ 2163d1a8abSmrg sanitizer_deadlock_detector1.cc \ 2263d1a8abSmrg sanitizer_deadlock_detector2.cc \ 23c7a68eb7Smrg sanitizer_errno.cc \ 24c7a68eb7Smrg sanitizer_file.cc \ 2563d1a8abSmrg sanitizer_flag_parser.cc \ 260fc04c29Smrg sanitizer_flags.cc \ 2763d1a8abSmrg sanitizer_libc.cc \ 2863d1a8abSmrg sanitizer_libignore.cc \ 2963d1a8abSmrg sanitizer_linux.cc \ 3063d1a8abSmrg sanitizer_linux_libcdep.cc \ 3163d1a8abSmrg sanitizer_linux_s390.cc \ 3263d1a8abSmrg sanitizer_mac.cc \ 330fc04c29Smrg sanitizer_netbsd.cc \ 340fc04c29Smrg sanitizer_openbsd.cc \ 3563d1a8abSmrg sanitizer_persistent_allocator.cc \ 3663d1a8abSmrg sanitizer_platform_limits_linux.cc \ 37c7a68eb7Smrg sanitizer_platform_limits_netbsd.cc \ 380fc04c29Smrg sanitizer_platform_limits_openbsd.cc \ 390fc04c29Smrg sanitizer_platform_limits_solaris.cc \ 4063d1a8abSmrg sanitizer_posix.cc \ 4163d1a8abSmrg sanitizer_posix_libcdep.cc \ 4263d1a8abSmrg sanitizer_printf.cc \ 430fc04c29Smrg sanitizer_procmaps_bsd.cc \ 4463d1a8abSmrg sanitizer_procmaps_common.cc \ 4563d1a8abSmrg sanitizer_procmaps_linux.cc \ 4663d1a8abSmrg sanitizer_procmaps_mac.cc \ 470fc04c29Smrg sanitizer_procmaps_solaris.cc \ 480fc04c29Smrg sanitizer_rtems.cc \ 490fc04c29Smrg sanitizer_solaris.cc \ 5063d1a8abSmrg sanitizer_stackdepot.cc \ 5163d1a8abSmrg sanitizer_stacktrace.cc \ 5263d1a8abSmrg sanitizer_stacktrace_libcdep.cc \ 5363d1a8abSmrg sanitizer_stacktrace_printer.cc \ 540fc04c29Smrg sanitizer_stacktrace_sparc.cc \ 5563d1a8abSmrg sanitizer_stoptheworld_linux_libcdep.cc \ 560fc04c29Smrg sanitizer_stoptheworld_netbsd_libcdep.cc \ 5763d1a8abSmrg sanitizer_suppressions.cc \ 5863d1a8abSmrg sanitizer_symbolizer.cc \ 5963d1a8abSmrg sanitizer_symbolizer_libbacktrace.cc \ 6063d1a8abSmrg sanitizer_symbolizer_libcdep.cc \ 610fc04c29Smrg sanitizer_symbolizer_mac.cc \ 6263d1a8abSmrg sanitizer_symbolizer_posix_libcdep.cc \ 630fc04c29Smrg sanitizer_symbolizer_report.cc \ 6463d1a8abSmrg sanitizer_symbolizer_win.cc \ 6563d1a8abSmrg sanitizer_termination.cc \ 6663d1a8abSmrg sanitizer_thread_registry.cc \ 6763d1a8abSmrg sanitizer_tls_get_addr.cc \ 6863d1a8abSmrg sanitizer_unwind_linux_libcdep.cc \ 690fc04c29Smrg sanitizer_unwind_win.cc \ 7063d1a8abSmrg sanitizer_win.cc 7163d1a8abSmrg 7263d1a8abSmrg# The linux build does this to avoid preinit sections on shared libraries 7363d1a8abSmrgCSHLIBFLAGS+= -DPIC 7463d1a8abSmrg 7563d1a8abSmrg#SRCS+= ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} ${UBSAN_SRCS} 7663d1a8abSmrgSRCS+= ${INTERCEPTION_SRCS} ${SANITIZER_SRCS} 7763d1a8abSmrgCPPFLAGS+=-I${SANITIZER}/include -I${SANITIZER} 7863d1a8abSmrgCPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIST}/gcc/ginclude 7963d1a8abSmrgCPPFLAGS+=-D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS 8063d1a8abSmrgCPPFLAGS+=-D__STDC_LIMIT_MACROS -DSANITIZER_HAS_EXCEPTIONS=1 8163d1a8abSmrgCPPFLAGS+=-DSANITIZER_NEEDS_SEGV=1 8263d1a8abSmrg#CPPFLAGS+=-DCAN_SANITIZE_UB=0 8363d1a8abSmrg 840fc04c29Smrg 8563d1a8abSmrgLIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread 8663d1a8abSmrgCOPTS+=-std=gnu++11 -fsized-deallocation -fvisibility=hidden 8763d1a8abSmrgCOPTS+=-fno-builtin -fno-exceptions -fno-rtti -funwind-tables 8863d1a8abSmrg 8963d1a8abSmrg# Can't profile without it` 9063d1a8abSmrg#-fomit-frame-pointer 9163d1a8abSmrg 9263d1a8abSmrg.if ${MACHINE_ARCH} == "vax" 9363d1a8abSmrgCOPTS.sanitizer_allocator.cc += -O1 9463d1a8abSmrgCOPTS.sanitizer_common.cc += -O1 9563d1a8abSmrgCOPTS.sanitizer_common_libcdep.cc += -O1 9663d1a8abSmrgCOPTS.sanitizer_coverage_libcdep.cc += -O1 9763d1a8abSmrgCOPTS.sanitizer_coverage_mapping_libcdep.cc += -O1 9863d1a8abSmrgCOPTS.sanitizer_deadlock_detector1.cc += -O1 9963d1a8abSmrgCOPTS.sanitizer_mac.cc += -O1 10063d1a8abSmrgCOPTS.sanitizer_netbsd.cc += -O1 10163d1a8abSmrgCOPTS.sanitizer_posix.cc += -O1 10263d1a8abSmrgCOPTS.sanitizer_printf.cc += -O1 10363d1a8abSmrgCOPTS.sanitizer_procmaps_common.cc += -O1 10463d1a8abSmrgCOPTS.sanitizer_stackdepot.cc += -O1 10563d1a8abSmrgCOPTS.sanitizer_symbolizer_libcdep.cc += -O1 1060fc04c29SmrgCOPTS.sanitizer_symbolizer_report.cc += -O1 10763d1a8abSmrgCOPTS.ubsan_diag.cc += -O1 10863d1a8abSmrgCOPTS.ubsan_init.cc += -O1 10963d1a8abSmrg.endif 110