Android.mk revision 7c98f2da68cc52708ca80555cbf6a03f613a535b
1# 2# Copyright (C) 2012 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 ($(TARGET_ARCH),arm) 21 22ASAN_NEEDS_SEGV=0 23ASAN_HAS_EXCEPTIONS=1 24ASAN_FLEXIBLE_MAPPING_AND_OFFSET=0 25 26asan_rtl_files := \ 27 asan_allocator.cc \ 28 asan_allocator2.cc \ 29 asan_fake_stack.cc \ 30 asan_globals.cc \ 31 asan_interceptors.cc \ 32 asan_linux.cc \ 33 asan_mac.cc \ 34 asan_malloc_linux.cc \ 35 asan_malloc_mac.cc \ 36 asan_malloc_win.cc \ 37 asan_new_delete.cc \ 38 asan_poisoning.cc \ 39 asan_posix.cc \ 40 asan_report.cc \ 41 asan_rtl.cc \ 42 asan_stack.cc \ 43 asan_stats.cc \ 44 asan_thread.cc \ 45 asan_thread_registry.cc \ 46 asan_win.cc \ 47 ../interception/interception_linux.cc \ 48 ../sanitizer_common/sanitizer_allocator.cc \ 49 ../sanitizer_common/sanitizer_common.cc \ 50 ../sanitizer_common/sanitizer_flags.cc \ 51 ../sanitizer_common/sanitizer_libc.cc \ 52 ../sanitizer_common/sanitizer_linux.cc \ 53 ../sanitizer_common/sanitizer_mac.cc \ 54 ../sanitizer_common/sanitizer_posix.cc \ 55 ../sanitizer_common/sanitizer_printf.cc \ 56 ../sanitizer_common/sanitizer_stackdepot.cc \ 57 ../sanitizer_common/sanitizer_stacktrace.cc \ 58 ../sanitizer_common/sanitizer_symbolizer.cc \ 59 ../sanitizer_common/sanitizer_symbolizer_itanium.cc \ 60 ../sanitizer_common/sanitizer_symbolizer_linux.cc \ 61 ../sanitizer_common/sanitizer_symbolizer_mac.cc \ 62 ../sanitizer_common/sanitizer_symbolizer_win.cc \ 63 ../sanitizer_common/sanitizer_win.cc \ 64 65asan_rtl_cflags := \ 66 -fvisibility=hidden \ 67 -fno-exceptions \ 68 -DASAN_LOW_MEMORY=1 \ 69 -DASAN_NEEDS_SEGV=$(ASAN_NEEDS_SEGV) \ 70 -DASAN_HAS_EXCEPTIONS=$(ASAN_HAS_EXCEPTIONS) \ 71 -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=$(ASAN_FLEXIBLE_MAPPING_AND_OFFSET) \ 72 -Wno-covered-switch-default \ 73 -Wno-sign-compare \ 74 -Wno-unused-parameter \ 75 -D__WORDSIZE=32 76 77asan_test_files := \ 78 tests/asan_globals_test.cc \ 79 tests/asan_test.cc 80 81#tests/asan_noinst_test.cc \ 82#tests/asan_test_main.cc \ 83 84asan_test_cflags := \ 85 -mllvm -asan-blacklist=external/compiler-rt/lib/asan/tests/asan_test.ignore \ 86 -DASAN_LOW_MEMORY=1 \ 87 -DASAN_UAR=0 \ 88 -DASAN_NEEDS_SEGV=$(ASAN_NEEDS_SEGV) \ 89 -DASAN_HAS_EXCEPTIONS=$(ASAN_HAS_EXCEPTIONS) \ 90 -DASAN_HAS_BLACKLIST=1 \ 91 -Wno-covered-switch-default \ 92 -Wno-sign-compare \ 93 -Wno-unused-parameter \ 94 -D__WORDSIZE=32 95 96 97include $(CLEAR_VARS) 98 99LOCAL_MODULE := libasan 100LOCAL_MODULE_TAGS := optional 101LOCAL_C_INCLUDES := bionic external/compiler-rt/lib external/compiler-rt/include 102LOCAL_CFLAGS += $(asan_rtl_cflags) 103LOCAL_SRC_FILES := asan_android_stub.cc 104LOCAL_CPP_EXTENSION := .cc 105LOCAL_CLANG := true 106include $(BUILD_STATIC_LIBRARY) 107 108 109include $(CLEAR_VARS) 110 111LOCAL_MODULE := libasan_preload 112LOCAL_MODULE_TAGS := eng 113LOCAL_C_INCLUDES := \ 114 bionic \ 115 external/compiler-rt/lib \ 116 external/compiler-rt/include 117LOCAL_CFLAGS += $(asan_rtl_cflags) 118LOCAL_SRC_FILES := $(asan_rtl_files) 119LOCAL_CPP_EXTENSION := .cc 120LOCAL_SHARED_LIBRARIES := libc libdl 121LOCAL_CLANG := true 122include $(BUILD_SHARED_LIBRARY) 123 124 125include $(CLEAR_VARS) 126 127LOCAL_MODULE := asanwrapper 128LOCAL_MODULE_TAGS := eng 129LOCAL_C_INCLUDES := \ 130 bionic \ 131 external/stlport/stlport 132LOCAL_SRC_FILES := asanwrapper.cc 133LOCAL_CPP_EXTENSION := .cc 134LOCAL_SHARED_LIBRARIES := libstlport libc 135 136include $(BUILD_EXECUTABLE) 137 138 139include $(CLEAR_VARS) 140 141LOCAL_MODULE := libasan_noinst_test 142LOCAL_MODULE_TAGS := tests 143LOCAL_C_INCLUDES := \ 144 bionic \ 145 external/stlport/stlport \ 146 external/gtest/include \ 147 external/compiler-rt/include \ 148 external/compiler-rt/lib 149LOCAL_CFLAGS += \ 150 -Wno-unused-parameter \ 151 -Wno-sign-compare \ 152 -DASAN_UAR=0 \ 153 -DASAN_HAS_BLACKLIST=1 \ 154 -DASAN_HAS_EXCEPTIONS=$(ASAN_HAS_EXCEPTIONS) \ 155 -DASAN_NEEDS_SEGV=$(ASAN_NEEDS_SEGV) \ 156 -D__WORDSIZE=32 157LOCAL_SRC_FILES := tests/asan_noinst_test.cc tests/asan_test_main.cc 158LOCAL_CPP_EXTENSION := .cc 159LOCAL_CLANG := true 160include $(BUILD_STATIC_LIBRARY) 161 162 163include $(CLEAR_VARS) 164 165LOCAL_MODULE := asan_test 166LOCAL_MODULE_TAGS := tests 167LOCAL_C_INCLUDES := \ 168 bionic \ 169 external/stlport/stlport \ 170 external/gtest/include \ 171 external/compiler-rt/lib 172LOCAL_CFLAGS += $(asan_test_cflags) 173LOCAL_SRC_FILES := $(asan_test_files) 174LOCAL_CPP_EXTENSION := .cc 175LOCAL_STATIC_LIBRARIES := libgtest libasan_noinst_test 176LOCAL_SHARED_LIBRARIES := libc libstlport 177LOCAL_ADDRESS_SANITIZER := true 178 179include $(BUILD_EXECUTABLE) 180 181endif # ifeq($(TARGET_ARCH),arm) 182