1
2.include <bsd.init.mk>
3
4SHLIB_NAME=	libclang_rt.asan-${CRTARCH}.so
5.undef NO_PIC # sorry...
6
7CFLAGS+=	-DASAN_DYNAMIC=1
8
9SRCS+=		asan/asan_activation.cpp
10SRCS+=		asan/asan_allocator.cpp
11SRCS+=		asan/asan_debugging.cpp
12SRCS+=		asan/asan_descriptions.cpp
13SRCS+=		asan/asan_errors.cpp
14SRCS+=		asan/asan_fake_stack.cpp
15SRCS+=		asan/asan_flags.cpp
16SRCS+=		asan/asan_globals.cpp
17SRCS+=		asan/asan_interceptors.cpp
18SRCS+=		asan/asan_interceptors_memintrinsics.cpp
19SRCS+=		asan/asan_linux.cpp
20SRCS+=		asan/asan_malloc_linux.cpp
21SRCS+=		asan/asan_memory_profile.cpp
22SRCS+=		asan/asan_poisoning.cpp
23SRCS+=		asan/asan_posix.cpp
24SRCS+=		asan/asan_preinit.cpp
25SRCS+=		asan/asan_premap_shadow.cpp
26SRCS+=		asan/asan_report.cpp
27SRCS+=		asan/asan_rtl.cpp
28SRCS+=		asan/asan_shadow_setup.cpp
29SRCS+=		asan/asan_stack.cpp
30SRCS+=		asan/asan_stats.cpp
31SRCS+=		asan/asan_suppressions.cpp
32SRCS+=		asan/asan_thread.cpp
33SRCS+=		interception/interception_linux.cpp
34SRCS+=		interception/interception_type_test.cpp
35SRCS+=		sanitizer_common/sancov_flags.cpp
36SRCS+=		sanitizer_common/sanitizer_allocator.cpp
37SRCS+=		sanitizer_common/sanitizer_allocator_checks.cpp
38SRCS+=		sanitizer_common/sanitizer_allocator_report.cpp
39SRCS+=		sanitizer_common/sanitizer_chained_origin_depot.cpp
40SRCS+=		sanitizer_common/sanitizer_common.cpp
41SRCS+=		sanitizer_common/sanitizer_common_libcdep.cpp
42SRCS+=		sanitizer_common/sanitizer_coverage_libcdep_new.cpp
43SRCS+=		sanitizer_common/sanitizer_deadlock_detector1.cpp
44SRCS+=		sanitizer_common/sanitizer_deadlock_detector2.cpp
45SRCS+=		sanitizer_common/sanitizer_errno.cpp
46SRCS+=		sanitizer_common/sanitizer_file.cpp
47SRCS+=		sanitizer_common/sanitizer_flag_parser.cpp
48SRCS+=		sanitizer_common/sanitizer_flags.cpp
49SRCS+=		sanitizer_common/sanitizer_libc.cpp
50SRCS+=		sanitizer_common/sanitizer_libignore.cpp
51SRCS+=		sanitizer_common/sanitizer_linux.cpp
52SRCS+=		sanitizer_common/sanitizer_linux_libcdep.cpp
53SRCS+=		sanitizer_common/sanitizer_mutex.cpp
54SRCS+=		sanitizer_common/sanitizer_platform_limits_freebsd.cpp
55SRCS+=		sanitizer_common/sanitizer_platform_limits_linux.cpp
56SRCS+=		sanitizer_common/sanitizer_platform_limits_posix.cpp
57SRCS+=		sanitizer_common/sanitizer_posix.cpp
58SRCS+=		sanitizer_common/sanitizer_posix_libcdep.cpp
59SRCS+=		sanitizer_common/sanitizer_printf.cpp
60SRCS+=		sanitizer_common/sanitizer_procmaps_bsd.cpp
61SRCS+=		sanitizer_common/sanitizer_procmaps_common.cpp
62SRCS+=		sanitizer_common/sanitizer_stack_store.cpp
63SRCS+=		sanitizer_common/sanitizer_stackdepot.cpp
64SRCS+=		sanitizer_common/sanitizer_stacktrace.cpp
65SRCS+=		sanitizer_common/sanitizer_stacktrace_libcdep.cpp
66SRCS+=		sanitizer_common/sanitizer_stacktrace_printer.cpp
67SRCS+=		sanitizer_common/sanitizer_suppressions.cpp
68SRCS+=		sanitizer_common/sanitizer_symbolizer.cpp
69SRCS+=		sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp
70SRCS+=		sanitizer_common/sanitizer_symbolizer_libcdep.cpp
71SRCS+=		sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
72SRCS+=		sanitizer_common/sanitizer_symbolizer_report.cpp
73SRCS+=		sanitizer_common/sanitizer_termination.cpp
74SRCS+=		sanitizer_common/sanitizer_thread_registry.cpp
75SRCS+=		sanitizer_common/sanitizer_tls_get_addr.cpp
76SRCS+=		sanitizer_common/sanitizer_type_traits.cpp
77SRCS+=		sanitizer_common/sanitizer_unwind_linux_libcdep.cpp
78SRCS+=		ubsan/ubsan_diag.cpp
79SRCS+=		ubsan/ubsan_flags.cpp
80SRCS+=		ubsan/ubsan_handlers.cpp
81SRCS+=		ubsan/ubsan_init.cpp
82SRCS+=		ubsan/ubsan_monitor.cpp
83SRCS+=		ubsan/ubsan_value.cpp
84
85# Kludge around a bsd.lib.mk shortcoming: when SHLIB_NAME is defined, but LIB
86# and LIB_CXX are undefined (which forces building only a shared library),
87# there is no way to tell it to use ${CXX} for linking.  Since the files for
88# this library are all C++ anyway, simply set CC to CXX.
89CC=		${CXX}
90
91.include <bsd.lib.mk>
92