• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
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_platform_posix.cc \
49  rtl/tsan_rtl_amd64.S \
50
51tsan_rtl_cppflags := -std=c++11 -Wall -Werror -Wno-unused-parameter -Wno-non-virtual-dtor \
52                     -fno-rtti -fno-builtin
53
54tsan_rtl_c_includes := \
55  $(LOCAL_PATH)/.. \
56
57include $(CLEAR_VARS)
58LOCAL_MODULE := libtsan
59LOCAL_CPP_EXTENSION := .cc
60LOCAL_C_INCLUDES := $(tsan_rtl_c_includes)
61LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
62LOCAL_SRC_FILES := $(tsan_rtl_files)
63LOCAL_CXX_STL := none
64LOCAL_SANITIZE := never
65LOCAL_MULTILIB := 64
66LOCAL_WHOLE_STATIC_LIBRARIES := libinterception libsan libubsan
67include $(BUILD_HOST_STATIC_LIBRARY)
68
69include $(CLEAR_VARS)
70LOCAL_MODULE := libtsan_cxx
71LOCAL_CPP_EXTENSION := .cc
72LOCAL_C_INCLUDES = $(tsan_rtl_c_includes)
73LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
74LOCAL_SRC_FILES := rtl/tsan_new_delete.cc
75LOCAL_CXX_STL := none
76LOCAL_SANITIZE := never
77LOCAL_MULTILIB := 64
78LOCAL_WHOLE_STATIC_LIBRARIES := libubsan_cxx
79include $(BUILD_HOST_STATIC_LIBRARY)
80
81tsan_unit_test_src_files := \
82  tests/unit/tsan_clock_test.cc \
83  tests/unit/tsan_dense_alloc_test.cc \
84  tests/unit/tsan_flags_test.cc \
85  tests/unit/tsan_mman_test.cc \
86  tests/unit/tsan_mutex_test.cc \
87  tests/unit/tsan_mutexset_test.cc \
88  tests/unit/tsan_shadow_test.cc \
89  tests/unit/tsan_stack_test.cc \
90  tests/unit/tsan_sync_test.cc \
91  tests/unit/tsan_unit_test_main.cc \
92  tests/unit/tsan_vector_test.cc \
93
94tsan_unit_test_c_includes := \
95  $(LOCAL_PATH)/rtl \
96  $(LOCAL_PATH)/.. \
97
98ifneq (true,$(SKIP_LLVM_TESTS))
99ifndef SANITIZE_HOST
100
101include $(CLEAR_VARS)
102LOCAL_MODULE := libtsan_unit_test
103LOCAL_CPP_EXTENSION := .cc
104LOCAL_C_INCLUDES := $(tsan_unit_test_c_includes)
105LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
106LOCAL_SRC_FILES := $(tsan_unit_test_src_files)
107LOCAL_SANITIZE := never
108LOCAL_MULTILIB := 64
109LOCAL_STATIC_LIBRARIES := libtsan libubsan
110LOCAL_LDLIBS := -lrt -ldl
111include $(BUILD_HOST_NATIVE_TEST)
112
113
114tsan_rtl_test_src_files := \
115  tests/rtl/tsan_bench.cc \
116  tests/rtl/tsan_mop.cc \
117  tests/rtl/tsan_mutex.cc \
118  tests/rtl/tsan_posix.cc \
119  tests/rtl/tsan_string.cc \
120  tests/rtl/tsan_test_util_posix.cc \
121  tests/rtl/tsan_test.cc \
122  tests/rtl/tsan_thread.cc \
123
124tsan_rtl_test_c_includes := \
125  $(LOCAL_PATH)/rtl \
126  $(LOCAL_PATH)/.. \
127
128include $(CLEAR_VARS)
129LOCAL_MODULE := libtsan_rtl_test
130LOCAL_CPP_EXTENSION := .cc
131LOCAL_C_INCLUDES := $(tsan_rtl_test_c_includes)
132LOCAL_CPPFLAGS := $(tsan_rtl_cppflags)
133LOCAL_SRC_FILES := $(tsan_rtl_test_src_files)
134LOCAL_SANITIZE := never
135LOCAL_MULTILIB := 64
136LOCAL_STATIC_LIBRARIES := libtsan libubsan
137LOCAL_LDLIBS := -lrt -ldl
138include $(BUILD_HOST_NATIVE_TEST)
139
140endif # SANITIZE_HOST
141endif # SKIP_LLVM_TESTS
142
143endif  # ifeq ($(HOST_ARCH),x86_64)
144endif  # ifeq ($(HOST_OS),linux)
145