xref: /netbsd-src/external/gpl3/gcc.old/lib/Makefile.sanitizer (revision 7c76c2272ed33e9382ba21d8bb8c83a57d05f685)
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