Android.mk revision dfa4f80f74b3652d0704cfb2a36cb19a0e7b5581
1e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# Copyright (C) 2011 The Android Open Source Project 2e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# 3e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# Licensed under the Apache License, Version 2.0 (the "License"); 4e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# you may not use this file except in compliance with the License. 5e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# You may obtain a copy of the License at 6e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# 7e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# http://www.apache.org/licenses/LICENSE-2.0 8e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# 9e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# Unless required by applicable law or agreed to in writing, software 10e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# distributed under the License is distributed on an "AS IS" BASIS, 11e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# See the License for the specific language governing permissions and 13e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# limitations under the License. 14e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 15e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_PATH:= $(call my-dir) 16e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 17e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovifeq ($(TARGET_ARCH),arm) 18e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov arch := arm 19e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovelse ifeq ($(TARGET_ARCH),x86) 20e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov arch := x86 21e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovendif 22e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovifdef arch 23e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 24e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovcommon_cflags := \ 25e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -Wall -Wno-deprecated -fno-exceptions -fno-stack-protector \ 26e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -DTS_VALGRIND=1 \ 27e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -DTS_VERSION=\"exported\" \ 28e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -DVGA_$(arch)=1 \ 29e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -DVGO_linux=1 \ 30e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -DVGP_$(arch)_linux=1 \ 31e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -DVG_PLATFORM=\"$(arch)-linux\" \ 32e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -D_STLP_NO_IOSTREAMS=1 33e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 34e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovcommon_cxxflags := \ 35e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov -fno-rtti 36e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 37e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovcommon_includes := \ 38e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov external/valgrind/main \ 39e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov external/valgrind/main/include \ 40e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov external/valgrind/main/VEX/pub \ 41e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov external/valgrind/dynamic_annotations 42e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 43e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovifeq ($(TARGET_ARCH),arm) 44e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovtool_ldflags := -static -Wl,--build-id=none,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -u _start -e_start 45e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovelse 46e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovtool_ldflags := -static -Wl,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -u _start -e_start 47e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovendif 48e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 49e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovpreload_ldflags := -nodefaultlibs -Wl,-z,interpose,-z,initfirst 50e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# Remove this when the all toolchains are GCC 4.4 51e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovifeq ($(TARGET_ARCH),arm) 52e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov preload_ldflags += -Wl,--icf=none 53e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovendif 54e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 55e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# TODO(eugenis): Add ts_event_names.h generation step 56e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 57e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# Build tsan-$(arch)-linux 58e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovinclude $(CLEAR_VARS) 59e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 60e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE := tsan-$(arch)-linux 61e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE_TAGS := optional 62e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE_CLASS := SHARED_LIBRARIES 63e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 64e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_ARM_MODE := arm 65e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_FORCE_STATIC_EXECUTABLE := true 66e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_NO_CRT := true 67e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_SYSTEM_SHARED_LIBRARIES := 68e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_CPP_EXTENSION := .cc 69e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_SRC_FILES := \ 70e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov thread_sanitizer.cc \ 71e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov ts_valgrind.cc \ 72e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov ts_valgrind_libc.cc \ 73e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov ts_util.cc \ 74e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov suppressions.cc \ 75e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov ignore.cc \ 76e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov common_util.cc \ 77e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov ts_race_verifier.cc 78e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_C_INCLUDES := \ 79e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov bionic \ 80e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov external/stlport/stlport \ 81e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov $(common_includes) 82e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_LDFLAGS := $(tool_ldflags) 83e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_CFLAGS := $(common_cflags) 84e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_CXXFLAGS := $(common_cxxflags) 85e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 86e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 87e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovinclude $(BUILD_EXECUTABLE) 88e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 89e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 90e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov# Build vgpreload_tsan-$(arch)-linux.so 91e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovinclude $(CLEAR_VARS) 92e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 93e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE := vgpreload_tsan-$(arch)-linux 94e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE_TAGS := optional 95e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE_CLASS := SHARED_LIBRARIES 96e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 97e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_ARM_MODE := arm 98e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_STRIP_MODULE := false 99e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_NO_CRT := true 100dfa4f80f74b3652d0704cfb2a36cb19a0e7b5581Evgeniy StepanovLOCAL_PRELINK_MODULE := false 101e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_SRC_FILES := \ 102e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov ts_valgrind_intercepts.c 103e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_C_INCLUDES := $(common_includes) 104e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_LDFLAGS := $(preload_ldflags) 105e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy StepanovLOCAL_CFLAGS := $(common_cflags) 106e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 107e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovinclude $(BUILD_SHARED_LIBRARY) 108e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanov 109e907eacfd144e7e9983e20d2b7961aebfe453bc5Evgeniy Stepanovendif 110