blob: 2c64c68d585843434b04cc6db3bc85a1e78631b4 [file] [log] [blame]
Yabin Cuibe1b9332015-07-29 17:13:51 -07001#
2# Copyright (C) 2015 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16#
17
18LOCAL_PATH:= $(call my-dir)
19
20ifeq ($(HOST_OS),linux)
21ifeq ($(HOST_ARCH),x86_64)
22
23tsan_rtl_files := \
24 rtl/tsan_clock.cc \
25 rtl/tsan_flags.cc \
26 rtl/tsan_fd.cc \
27 rtl/tsan_ignoreset.cc \
28 rtl/tsan_interceptors.cc \
29 rtl/tsan_interface_ann.cc \
30 rtl/tsan_interface_atomic.cc \
31 rtl/tsan_interface.cc \
32 rtl/tsan_interface_java.cc \
33 rtl/tsan_md5.cc \
34 rtl/tsan_mman.cc \
35 rtl/tsan_mutex.cc \
36 rtl/tsan_mutexset.cc \
37 rtl/tsan_report.cc \
38 rtl/tsan_rtl.cc \
39 rtl/tsan_rtl_mutex.cc \
40 rtl/tsan_rtl_report.cc \
41 rtl/tsan_rtl_thread.cc \
42 rtl/tsan_stack_trace.cc \
43 rtl/tsan_stat.cc \
44 rtl/tsan_suppressions.cc \
45 rtl/tsan_symbolize.cc \
46 rtl/tsan_sync.cc \
47 rtl/tsan_platform_linux.cc \
48 rtl/tsan_rtl_amd64.S \
Yabin Cuibe1b9332015-07-29 17:13:51 -070049
50tsan_rtl_cppflags := -std=c++11 -Wall -Werror -Wno-unused-parameter -Wno-non-virtual-dtor \
51 -fno-rtti -fno-builtin
52
53tsan_rtl_c_includes := \
54 $(LOCAL_PATH)/.. \
55
56include $(CLEAR_VARS)
57LOCAL_MODULE := libtsan
58LOCAL_CPP_EXTENSION := .cc
59LOCAL_C_INCLUDES := $(tsan_rtl_c_includes)
60LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
61LOCAL_SRC_FILES := $(tsan_rtl_files)
62LOCAL_CXX_STL := none
Yabin Cui6c5b3a52015-07-29 18:15:28 -070063LOCAL_SANITIZE := never
Yabin Cuibe1b9332015-07-29 17:13:51 -070064LOCAL_MULTILIB := 64
Yabin Cui7e8a0452015-08-24 15:26:43 -070065LOCAL_WHOLE_STATIC_LIBRARIES := libinterception libsan libubsan
Yabin Cuibe1b9332015-07-29 17:13:51 -070066include $(BUILD_HOST_STATIC_LIBRARY)
67
Yabin Cui7e8a0452015-08-24 15:26:43 -070068include $(CLEAR_VARS)
69LOCAL_MODULE := libtsan_cxx
70LOCAL_CPP_EXTENSION := .cc
71LOCAL_C_INCLUDES = $(tsan_rtl_c_includes)
72LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
73LOCAL_SRC_FILES := rtl/tsan_new_delete.cc
74LOCAL_CXX_STL := none
75LOCAL_SANITIZE := never
76LOCAL_MULTILIB := 64
77LOCAL_WHOLE_STATIC_LIBRARIES := libubsan_cxx
78include $(BUILD_HOST_STATIC_LIBRARY)
Yabin Cuibe1b9332015-07-29 17:13:51 -070079
80tsan_unit_test_src_files := \
81 tests/unit/tsan_clock_test.cc \
82 tests/unit/tsan_dense_alloc_test.cc \
83 tests/unit/tsan_flags_test.cc \
84 tests/unit/tsan_mman_test.cc \
85 tests/unit/tsan_mutex_test.cc \
86 tests/unit/tsan_mutexset_test.cc \
87 tests/unit/tsan_shadow_test.cc \
88 tests/unit/tsan_stack_test.cc \
89 tests/unit/tsan_sync_test.cc \
90 tests/unit/tsan_unit_test_main.cc \
91 tests/unit/tsan_vector_test.cc \
92
93tsan_unit_test_c_includes := \
94 $(LOCAL_PATH)/rtl \
95 $(LOCAL_PATH)/.. \
96
Stephen Hinesf5011e32015-08-13 23:02:40 -070097ifneq (true,$(SKIP_LLVM_TESTS))
Dan Albert6de3e082015-08-14 23:35:15 -070098ifndef SANITIZE_HOST
Stephen Hinesf5011e32015-08-13 23:02:40 -070099
Yabin Cuibe1b9332015-07-29 17:13:51 -0700100include $(CLEAR_VARS)
101LOCAL_MODULE := libtsan_unit_test
102LOCAL_CPP_EXTENSION := .cc
103LOCAL_C_INCLUDES := $(tsan_unit_test_c_includes)
104LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
105LOCAL_SRC_FILES := $(tsan_unit_test_src_files)
Yabin Cui6c5b3a52015-07-29 18:15:28 -0700106LOCAL_SANITIZE := never
Yabin Cuibe1b9332015-07-29 17:13:51 -0700107LOCAL_MULTILIB := 64
Stephen Hinesf5011e32015-08-13 23:02:40 -0700108LOCAL_STATIC_LIBRARIES := libtsan libubsan
109LOCAL_LDLIBS := -lrt -ldl
Yabin Cuibe1b9332015-07-29 17:13:51 -0700110include $(BUILD_HOST_NATIVE_TEST)
111
112
113tsan_rtl_test_src_files := \
114 tests/rtl/tsan_bench.cc \
115 tests/rtl/tsan_mop.cc \
116 tests/rtl/tsan_mutex.cc \
117 tests/rtl/tsan_posix.cc \
118 tests/rtl/tsan_string.cc \
119 tests/rtl/tsan_test_util_linux.cc \
120 tests/rtl/tsan_test.cc \
121 tests/rtl/tsan_thread.cc \
122
123tsan_rtl_test_c_includes := \
124 $(LOCAL_PATH)/rtl \
125 $(LOCAL_PATH)/.. \
126
127include $(CLEAR_VARS)
128LOCAL_MODULE := libtsan_rtl_test
129LOCAL_CPP_EXTENSION := .cc
130LOCAL_C_INCLUDES := $(tsan_rtl_test_c_includes)
131LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
132LOCAL_SRC_FILES := $(tsan_rtl_test_src_files)
Yabin Cui6c5b3a52015-07-29 18:15:28 -0700133LOCAL_SANITIZE := never
Yabin Cuibe1b9332015-07-29 17:13:51 -0700134LOCAL_MULTILIB := 64
Stephen Hinesf5011e32015-08-13 23:02:40 -0700135LOCAL_STATIC_LIBRARIES := libtsan libubsan
136LOCAL_LDLIBS := -lrt -ldl
Yabin Cuibe1b9332015-07-29 17:13:51 -0700137include $(BUILD_HOST_NATIVE_TEST)
138
Dan Albert6de3e082015-08-14 23:35:15 -0700139endif # SANITIZE_HOST
Stephen Hinesf5011e32015-08-13 23:02:40 -0700140endif # SKIP_LLVM_TESTS
141
Yabin Cuibe1b9332015-07-29 17:13:51 -0700142endif # ifeq ($(HOST_ARCH),x86_64)
Stephen Hinesf5011e32015-08-13 23:02:40 -0700143endif # ifeq ($(HOST_OS),linux)