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