1d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Copyright (C) 2011 The Android Open Source Project 2753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# 3753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# Licensed under the Apache License, Version 2.0 (the "License"); 4753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# you may not use this file except in compliance with the License. 5753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# You may obtain a copy of the License at 6753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# 7753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# http://www.apache.org/licenses/LICENSE-2.0 8753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# 9753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# Unless required by applicable law or agreed to in writing, software 10753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# distributed under the License is distributed on an "AS IS" BASIS, 11753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# See the License for the specific language governing permissions and 13753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng# limitations under the License. 14753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng 15d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_PATH:= $(call my-dir) 16753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng 17d447437611f456054f628462106044a119fa6b02Dmitriy IvanovANDROID_HARDWARE := ANDROID_HARDWARE_generic 18753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng 19d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifneq ($(filter arm arm64 x86 x86_64,$(TARGET_ARCH)),) 20753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng 21d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_arch:=$(TARGET_ARCH) 22753e06917ea5bb4684b560f29c1c46fd58227519Ben Cheng 23d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifneq ($(filter x86_64, $(TARGET_ARCH)),) 24d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov vg_arch:=amd64 25d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 26d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 27d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovcommon_cflags := \ 28d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wmissing-declarations \ 29d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -Wno-pointer-sign -Wno-sign-compare -Wno-unused-parameter -Wno-shadow \ 30d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -fno-strict-aliasing -fno-stack-protector \ 31d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGO_linux=1 \ 32d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DANDROID_SYMBOLS_DIR=\"/data/local/symbols\" \ 33d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -std=gnu99 34d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 35d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(TARGET_IS_64_BIT),true) 36d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov vg_target_module_path := /system/lib64/valgrind 37d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovelse 38d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov vg_target_module_path := /system/lib/valgrind 39d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 40d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 41d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtarget_arch_cflags := \ 42d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGA_$(vg_arch)=1 \ 43d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGP_$(vg_arch)_linux=1 \ 44d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGPV_$(vg_arch)_linux_android=1 \ 45d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_LIBDIR=\"$(vg_target_module_path)\" \ 46d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_PLATFORM=\"$(vg_arch)-linux\" 47d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 48d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifdef TARGET_2ND_ARCH 49d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtarget_2nd_arch_cflags := \ 50d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGA_$(TARGET_2ND_ARCH)=1 \ 51d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGP_$(TARGET_2ND_ARCH)_linux=1 \ 52d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGPV_$(TARGET_2ND_ARCH)_linux_android=1 \ 53d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_LIBDIR=\"$(vg_target_module_path)\" \ 54d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_PLATFORM=\"$(TARGET_2ND_ARCH)-linux\" 55d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_second_arch := $(TARGET_2ND_ARCH) 56d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 57d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 58d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 59d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# The supported host platform are linux amd64 and linux x86 60d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovhost_arch_cflags := \ 61d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGA_amd64=1 \ 62d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGP_amd64_linux=1 \ 63d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_PLATFORM=\"amd64-linux\" \ 64d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_LIBDIR=\"$(realpath $(HOST_OUT_SHARED_LIBRARIES))/valgrind\" 65d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 66d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovhost_2nd_arch_cflags := \ 67d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGA_x86=1 \ 68d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVGP_x86_linux=1 \ 69d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_PLATFORM=\"x86-linux\" \ 70d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -DVG_LIBDIR=\"$(realpath $(HOST_OUT_SHARED_LIBRARIES))/valgrind\" 71d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 72d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovcommon_includes := \ 73d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov external/valgrind \ 74d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov external/valgrind/include \ 75d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov external/valgrind/VEX/pub \ 76d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov external/valgrind/coregrind 77d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 78d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvex_ldflags := -nodefaultlibs 79d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 80d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq (,$(filter $(TARGET_ARCH),arm arm64)) 81d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtool_ldflags := -static -Wl,--build-id=none,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -Wl,-e,_start 82d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovelse 83d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtool_ldflags := -static -Wl,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -Wl,-e,_start 84d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 85d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 86d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovcommon_cflags += -D$(ANDROID_HARDWARE) 87d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 88d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovpreload_ldflags := -nodefaultlibs -Wl,-z,interpose,-z,initfirst 89d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Remove this when the all toolchains are GCC 4.4 90d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(TARGET_ARCH),arm) 91d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov preload_ldflags += -Wl,--icf=none 92d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 93d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 94d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build libvex-($TARGET_ARCH)-linux.a 95d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module=libvex 96d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 97d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) \ 98d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -Wbad-function-cast \ 99d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -Wcast-qual \ 100d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -Wcast-align \ 101d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov -fstrict-aliasing \ 102d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 103d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 104d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/main_globals.c \ 105d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/main_main.c \ 106d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/main_util.c \ 107d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/ir_defs.c \ 108d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/ir_match.c \ 109d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/ir_opt.c \ 110d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/ir_inject.c \ 111d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_generic_bb_to_IR.c \ 112d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_generic_x87.c \ 113d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_mips_helpers.c \ 114d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_mips_toIR.c \ 115d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_x86_helpers.c \ 116d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_x86_toIR.c \ 117d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_amd64_helpers.c \ 118d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_amd64_toIR.c \ 119d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_ppc_helpers.c \ 120d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_ppc_toIR.c \ 121d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_arm_helpers.c \ 122d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_arm_toIR.c \ 123d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_arm64_helpers.c \ 124d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_arm64_toIR.c \ 125d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_s390_helpers.c \ 126d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/guest_s390_toIR.c \ 127d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_generic_maddf.c \ 128d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_generic_regs.c \ 129d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_generic_simd64.c \ 130d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_generic_simd128.c \ 131d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_generic_simd256.c \ 132d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_generic_reg_alloc2.c \ 133d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_x86_defs.c \ 134d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_x86_isel.c \ 135d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_amd64_defs.c \ 136d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_amd64_isel.c \ 137d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_mips_defs.c \ 138d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_mips_isel.c \ 139d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_ppc_defs.c \ 140d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_ppc_isel.c \ 141d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_arm_defs.c \ 142d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_arm_isel.c \ 143d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_arm64_defs.c \ 144d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_arm64_isel.c \ 145d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_s390_defs.c \ 146d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/host_s390_isel.c \ 147d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov VEX/priv/s390_disasm.c 148d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 149d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := STATIC_LIBRARY 150d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 151d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 152d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build libcoregrind-$(TARGET_ARCH)-linux.a 153d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := libcoregrind 154d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := STATIC_LIBRARY 155d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 156d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 157d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_addrinfo.c \ 158d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_cache.c \ 159d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_commandline.c \ 160d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_clientstate.c \ 161d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_cpuid.S \ 162d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debugger.c \ 163d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuglog.c \ 164d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_errormgr.c \ 165d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_execontext.c \ 166d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_hashtable.c \ 167d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcbase.c \ 168d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcassert.c \ 169d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcfile.c \ 170d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcprint.c \ 171d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcproc.c \ 172d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcsetjmp.c \ 173d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_libcsignal.c \ 174d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_machine.c \ 175d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_main.c \ 176d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_mallocfree.c \ 177d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_options.c \ 178d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_oset.c \ 179d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_poolalloc.c \ 180d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_rangemap.c \ 181d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_redir.c \ 182d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_seqmatch.c \ 183d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_signals.c \ 184d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sparsewa.c \ 185d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_stacks.c \ 186d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_stacktrace.c \ 187d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syscall.c \ 188d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_threadstate.c \ 189d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_tooliface.c \ 190d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_trampoline.S \ 191d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_translate.c \ 192d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_transtab.c \ 193d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_vki.c \ 194d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_vkiscnums.c \ 195d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_wordfm.c \ 196d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_xarray.c \ 197d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_aspacehl.c \ 198d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_aspacemgr/aspacemgr-common.c \ 199d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_aspacemgr/aspacemgr-linux.c \ 200d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_aspacemgr/aspacemgr-segnames.c \ 201d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_coredump/coredump-elf.c \ 202d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_coredump/coredump-macho.c \ 203d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/image.c \ 204d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/misc.c \ 205d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/d3basics.c \ 206d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/debuginfo.c \ 207d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/readdwarf.c \ 208d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/readdwarf3.c \ 209d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/readelf.c \ 210d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/readexidx.c \ 211d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/readmacho.c \ 212d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/readpdb.c \ 213d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/storage.c \ 214d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuginfo/tytypes.c \ 215d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_deduppoolalloc.c \ 216d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_demangle/cp-demangle.c \ 217d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_demangle/cplus-dem.c \ 218d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_demangle/demangle.c \ 219d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_demangle/dyn-string.c \ 220d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_demangle/safe-ctype.c \ 221d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-x86-linux.S \ 222d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-amd64-linux.S \ 223d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-ppc32-linux.S \ 224d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-ppc64be-linux.S \ 225d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-ppc64le-linux.S \ 226d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-arm-linux.S \ 227d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-arm64-linux.S \ 228d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-x86-darwin.S \ 229d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_dispatch/dispatch-amd64-darwin.S \ 230d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_initimg/initimg-linux.c \ 231d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_initimg/initimg-darwin.c \ 232d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_initimg/initimg-pathscan.c \ 233d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_mach/mach_basics.c \ 234d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_mach/mach_msg.c \ 235d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_mach/mach_traps-x86-darwin.S \ 236d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_mach/mach_traps-amd64-darwin.S \ 237d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_replacemalloc/replacemalloc_core.c \ 238d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sbprofile.c \ 239d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_scheduler/sched-lock.c \ 240d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_scheduler/sched-lock-generic.c \ 241d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_scheduler/scheduler.c \ 242d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_scheduler/sema.c \ 243d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_scheduler/ticket-lock-linux.c \ 244d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-common.c \ 245d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-x86-linux.c \ 246d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-amd64-linux.c \ 247d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-ppc32-linux.c \ 248d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-ppc64-linux.c \ 249d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-arm-linux.c \ 250d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-arm64-linux.c \ 251d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-x86-darwin.c \ 252d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-amd64-darwin.c \ 253d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_sigframe/sigframe-s390x-linux.c \ 254d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-x86-linux.S \ 255d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-amd64-linux.S \ 256d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-ppc32-linux.S \ 257d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-ppc64be-linux.S \ 258d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-ppc64le-linux.S \ 259d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-arm-linux.S \ 260d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-arm64-linux.S \ 261d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-x86-darwin.S \ 262d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-amd64-darwin.S \ 263d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syscall-s390x-linux.S \ 264d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-main.c \ 265d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-generic.c \ 266d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-linux.c \ 267d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-linux-variants.c \ 268d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-darwin.c \ 269d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-x86-linux.c \ 270d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-amd64-linux.c \ 271d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-ppc32-linux.c \ 272d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-ppc64-linux.c \ 273d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-arm-linux.c \ 274d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-arm64-linux.c \ 275d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-x86-darwin.c \ 276d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-amd64-darwin.c \ 277d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-s390x-linux.c \ 278d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_syswrap/syswrap-xen.c \ 279d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_ume/elf.c \ 280d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_ume/macho.c \ 281d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_ume/main.c \ 282d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_ume/script.c \ 283d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/vgdb.c \ 284d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/inferiors.c \ 285d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/m_gdbserver.c \ 286d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/regcache.c \ 287d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/remote-utils.c \ 288d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/server.c \ 289d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/signals.c \ 290d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/target.c \ 291d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/utils.c \ 292d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-amd64.c \ 293d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-arm.c \ 294d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-arm64.c \ 295d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-ppc32.c \ 296d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-ppc64.c \ 297d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-s390x.c \ 298d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/valgrind-low-x86.c \ 299d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_gdbserver/version.c 300d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 301d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(vex_ldflags) 302d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 303d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 304d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 305d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 306d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build libreplacemalloc_toolpreload-$(TARGET_ARCH)-linux.a 307d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := libreplacemalloc_toolpreload 308d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := STATIC_LIBRARY 309d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 310d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 311d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_replacemalloc/vg_replace_malloc.c 312d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 313d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(preload_ldflags) 314d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 315d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 316d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 317d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 318d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 319d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build vgpreload_core-$(TARGET_ARCH)-linux.so 320d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := vgpreload_core 321d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := SHARED_LIBRARY 322d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 323d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 324d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 325d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/vg_preloaded.c 326d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 327d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#LOCAL_STRIP_MODULE := false 328d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#vg_local_no_crt := true 329d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 330d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(preload_ldflags) 331d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 332d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 333d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_arch_cflags := $(target_arch_cflags) 334d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 335d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 336d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 337d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build memcheck-$(TARGET_ARCH)-linux 338d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := memcheck 339d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 340d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 341d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 342d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_leakcheck.c \ 343d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_malloc_wrappers.c \ 344d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_main.c \ 345d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_translate.c \ 346d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_machine.c \ 347d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_errors.c 348d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 349d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 350d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 351d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 352d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 353d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 354d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 355d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 356d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 357d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 358d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build vgpreload_memcheck-$(TARGET_ARCH)-linux.so 359d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := vgpreload_memcheck 360d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 361d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := SHARED_LIBRARY 362d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 363d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 364d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov memcheck/mc_replace_strmem.c 365d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 366d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(preload_ldflags) 367d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 368d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 369d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_whole_static_libraries := libreplacemalloc_toolpreload 370d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 371d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 372d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 373d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build cachegrind-$(TARGET_ARCH)-linux 374d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := cachegrind 375d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 376d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 377d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 378d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 379d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 380d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 381d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov cachegrind/cg_arch.c \ 382d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov cachegrind/cg_main.c 383d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 384d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 385d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 386d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 387d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 388d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 389d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 390d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 391d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#LOCAL_FORCE_STATIC_EXECUTABLE := true 392d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 393d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build callgrind-$(TARGET_ARCH)-linux 394d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 395d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := callgrind 396d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 397d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 398d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 399d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 400d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 401d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 402d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/bb.c \ 403d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/bbcc.c \ 404d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/callstack.c \ 405d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/clo.c \ 406d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/context.c \ 407d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/costs.c \ 408d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/debug.c \ 409d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/dump.c \ 410d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/events.c \ 411d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/fn.c \ 412d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/jumps.c \ 413d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/main.c \ 414d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/sim.c \ 415d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov callgrind/threads.c 416d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 417d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_c_includes := external/valgrind/cachegrind 418d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 419d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 420d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 421d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 422d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 423d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 424d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#LOCAL_FORCE_STATIC_EXECUTABLE := true 425d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 426d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build helgrind-$(TARGET_ARCH)-linux 427d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := helgrind 428d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 429d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 430d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 431d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 432d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 433d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_addrdescr.c \ 434d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_basics.c \ 435d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_errors.c \ 436d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_lock_n_thread.c \ 437d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_main.c \ 438d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_wordset.c \ 439d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/libhb_core.c 440d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 441d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 442d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 443d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 444d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 445d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 446d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 447d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#LOCAL_FORCE_STATIC_EXECUTABLE := true 448d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 449d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build vgpreload_helgrind-$(TARGET_ARCH)-linux.so 450d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := vgpreload_helgrind 451d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 452d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := SHARED_LIBRARY 453d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#LOCAL_STRIP_MODULE := false 454d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 455d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 456d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 457d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov helgrind/hg_intercepts.c 458d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 459d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 460d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(preload_ldflags) 461d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 462d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_whole_static_libraries := libreplacemalloc_toolpreload 463d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 464d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 465d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 466d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build drd-$(TARGET_ARCH)-linux 467d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := drd 468d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 469d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 470d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#LOCAL_FORCE_STATIC_EXECUTABLE := true 471d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 472d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 473d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 474d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 475d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_barrier.c \ 476d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_clientobj.c \ 477d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_clientreq.c \ 478d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_cond.c \ 479d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_cond_initializer.c \ 480d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_error.c \ 481d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_hb.c \ 482d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_load_store.c \ 483d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_main.c \ 484d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_malloc_wrappers.c \ 485d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_mutex.c \ 486d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_rwlock.c \ 487d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_semaphore.c \ 488d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_suppression.c 489d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 490d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 491d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 492d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 493d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 494d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 495d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 496d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 497d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build vgpreload_drd-$(TARGET_ARCH)-linux.so 498d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := vgpreload_drd 499d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 500d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := SHARED_LIBRARY 501d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 502d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 503d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 504d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_pthread_intercepts.c \ 505d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_qtcore_intercepts.c \ 506d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov drd/drd_strmem_intercepts.c 507d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 508d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(preload_ldflags) 509d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 510d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 511d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_whole_static_libraries := libreplacemalloc_toolpreload 512d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 513d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 514d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 515d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build massif-$(TARGET_ARCH)-linux 516d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := massif 517d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 518d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 519d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 520d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 521d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 522d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 523d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov massif/ms_main.c 524d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 525d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 526d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 527d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 528d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 529d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 530d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 531d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 532d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build vgpreload_massif-$(TARGET_ARCH)-linux.so 533d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := vgpreload_massif 534d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 535d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := SHARED_LIBRARY 536d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 537d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 538d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := 539d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 540d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(preload_ldflags) 541d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 542d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_whole_static_libraries := libreplacemalloc_toolpreload 543d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 544d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 545d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 546d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build none-$(TARGET_ARCH)-linux 547d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module := none 548d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_module_class := SHARED_LIBRARIES 549d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_target := EXECUTABLE 550d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 551d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_no_crt := true 552d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_without_system_shared_libraries := true 553d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 554d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_src_files := \ 555d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov none/nl_main.c 556d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 557d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_ldflags := $(tool_ldflags) 558d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_cflags := $(common_cflags) 559d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovvg_local_static_libraries := libcoregrind libvex 560d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 561d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.build_all.mk 562d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 563d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build valgrind 564d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(CLEAR_VARS) 565d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE := valgrind 566d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_ARM_MODE := arm 567d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_SRC_FILES := \ 568d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/launcher-linux.c \ 569d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuglog.c 570d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 571d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_C_INCLUDES := $(common_includes) 572d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_CFLAGS := $(common_cflags) 573d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 574d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_CFLAGS_$(TARGET_ARCH) = $(target_arch_cflags) 575d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 576d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(BUILD_EXECUTABLE) 577d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 578d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build valgrind for linux host 579d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(HOST_OS), linux) 580d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(CLEAR_VARS) 581d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE := valgrind 582d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_SRC_FILES := \ 583d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/launcher-linux.c \ 584d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov coregrind/m_debuglog.c 585d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 586d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_C_INCLUDES := $(common_includes) 587d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_CFLAGS := $(common_cflags) $(host_arch_cflags) 588d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MULTILIB := 64 589d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 590d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(BUILD_HOST_EXECUTABLE) 591d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 592d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 593d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov#vg_build_tests := true 594d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Build tests (some of them)... 595d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# TODO: tests need separate build framework it terms of 2ND_ARCH 596d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(vg_build_tests),true) 597d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(TARGET_ARCH),arm) 598d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtest := v6intThumb 599d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.test.mk 600d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtest := vfp 601d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.test.mk 602d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 603d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 604d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(TARGET_ARCH),arm64) 605d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtest := integer 606d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.test.mk 607d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtest := fp_and_simd 608d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.test.mk 609d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovtest := memory 610d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(LOCAL_PATH)/Android.test.mk 611d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 612d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 613d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 614d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov# Copy prebuilt suppressions 615d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(CLEAR_VARS) 616d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE := default.supp 617d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE_CLASS := SHARED_LIBRARIES 618d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE_PATH := $(PRODUCT_OUT)$(vg_target_module_path) 619d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_STRIP_MODULE := false 620d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_SRC_FILES := bionic.supp 621d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 622d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(BUILD_PREBUILT) 623d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 624d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovifeq ($(HOST_OS), linux) 625d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(CLEAR_VARS) 626d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_IS_HOST_MODULE := true 627d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE := default.supp 628d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE_CLASS := SHARED_LIBRARIES 629d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_MODULE_PATH := $(HOST_OUT_SHARED_LIBRARIES)/valgrind 630d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_STRIP_MODULE := false 631d447437611f456054f628462106044a119fa6b02Dmitriy IvanovLOCAL_SRC_FILES := bionic.supp 632d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 633d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovinclude $(BUILD_PREBUILT) 634d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 635d447437611f456054f628462106044a119fa6b02Dmitriy Ivanov 636d447437611f456054f628462106044a119fa6b02Dmitriy Ivanovendif 637