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