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 15LOCAL_PATH:= $(call my-dir) 16 17ifeq ($(TARGET_ARCH),arm) 18 arch := arm 19else ifeq ($(TARGET_ARCH),x86) 20 arch := x86 21endif 22ifdef arch 23 24common_cflags := \ 25 -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wmissing-declarations \ 26 -Wno-pointer-sign -Wno-sign-compare -Wno-unused-parameter -Wno-shadow \ 27 -fno-strict-aliasing -fno-stack-protector \ 28 -DVGA_$(arch)=1 \ 29 -DVGO_linux=1 \ 30 -DVGP_$(arch)_linux=1 \ 31 -DVGPV_$(arch)_linux_android=1 \ 32 -DVG_PLATFORM=\"$(arch)-linux\" \ 33 -DVG_LIBDIR=\"/system/lib/valgrind\" \ 34 -DANDROID_SYMBOLS_DIR=\"/data/local/symbols\" \ 35 -DANDROID_HARDWARE_nexus_s 36 37common_includes := \ 38 external/valgrind/main \ 39 external/valgrind/main/include \ 40 external/valgrind/main/VEX/pub \ 41 external/valgrind/main/coregrind 42 43vex_ldflags := -nodefaultlibs 44 45ifeq ($(TARGET_ARCH),arm) 46tool_ldflags := -static -Wl,--build-id=none,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -u _start -e_start 47else 48tool_ldflags := -static -Wl,-Ttext=0x38000000 -nodefaultlibs -nostartfiles -u _start -e_start 49endif 50 51preload_ldflags := -nodefaultlibs -Wl,-z,interpose,-z,initfirst 52# Remove this when the all toolchains are GCC 4.4 53ifeq ($(TARGET_ARCH),arm) 54 preload_ldflags += -Wl,--icf=none 55endif 56 57# Build libvex-($arch)-linux.a 58include $(CLEAR_VARS) 59 60LOCAL_MODULE := libvex-$(arch)-linux 61LOCAL_MODULE_TAGS := optional 62LOCAL_ARM_MODE := arm 63 64LOCAL_SRC_FILES := \ 65 VEX/priv/main_globals.c \ 66 VEX/priv/main_main.c \ 67 VEX/priv/main_util.c \ 68 VEX/priv/ir_defs.c \ 69 VEX/priv/ir_match.c \ 70 VEX/priv/ir_opt.c \ 71 VEX/priv/guest_generic_bb_to_IR.c \ 72 VEX/priv/guest_generic_x87.c \ 73 VEX/priv/guest_x86_helpers.c \ 74 VEX/priv/guest_x86_toIR.c \ 75 VEX/priv/guest_amd64_helpers.c \ 76 VEX/priv/guest_amd64_toIR.c \ 77 VEX/priv/guest_ppc_helpers.c \ 78 VEX/priv/guest_ppc_toIR.c \ 79 VEX/priv/guest_arm_helpers.c \ 80 VEX/priv/guest_arm_toIR.c \ 81 VEX/priv/guest_s390_helpers.c \ 82 VEX/priv/guest_s390_toIR.c \ 83 VEX/priv/host_generic_regs.c \ 84 VEX/priv/host_generic_simd64.c \ 85 VEX/priv/host_generic_simd128.c \ 86 VEX/priv/host_generic_reg_alloc2.c \ 87 VEX/priv/host_x86_defs.c \ 88 VEX/priv/host_x86_isel.c \ 89 VEX/priv/host_amd64_defs.c \ 90 VEX/priv/host_amd64_isel.c \ 91 VEX/priv/host_ppc_defs.c \ 92 VEX/priv/host_ppc_isel.c \ 93 VEX/priv/host_arm_defs.c \ 94 VEX/priv/host_arm_isel.c \ 95 VEX/priv/host_s390_defs.c \ 96 VEX/priv/host_s390_disasm.c \ 97 VEX/priv/host_s390_isel.c 98 99 100LOCAL_C_INCLUDES := $(common_includes) 101 102LOCAL_CFLAGS := $(common_cflags) \ 103 -Wbad-function-cast \ 104 -Wcast-qual \ 105 -Wcast-align \ 106 -fstrict-aliasing 107 108include $(BUILD_STATIC_LIBRARY) 109 110# Build libcoregrind-$(arch)-linux.a 111include $(CLEAR_VARS) 112 113LOCAL_MODULE := libcoregrind-$(arch)-linux 114LOCAL_MODULE_TAGS := optional 115LOCAL_ARM_MODE := arm 116 117LOCAL_SRC_FILES := \ 118 coregrind/link_tool_exe.c \ 119 coregrind/m_commandline.c \ 120 coregrind/m_clientstate.c \ 121 coregrind/m_cpuid.S \ 122 coregrind/m_debugger.c \ 123 coregrind/m_debuglog.c \ 124 coregrind/m_errormgr.c \ 125 coregrind/m_execontext.c \ 126 coregrind/m_hashtable.c \ 127 coregrind/m_libcbase.c \ 128 coregrind/m_libcassert.c \ 129 coregrind/m_libcfile.c \ 130 coregrind/m_libcprint.c \ 131 coregrind/m_libcproc.c \ 132 coregrind/m_libcsetjmp.c \ 133 coregrind/m_libcsignal.c \ 134 coregrind/m_machine.c \ 135 coregrind/m_main.c \ 136 coregrind/m_mallocfree.c \ 137 coregrind/m_options.c \ 138 coregrind/m_oset.c \ 139 coregrind/m_redir.c \ 140 coregrind/m_seqmatch.c \ 141 coregrind/m_signals.c \ 142 coregrind/m_sparsewa.c \ 143 coregrind/m_stacks.c \ 144 coregrind/m_stacktrace.c \ 145 coregrind/m_syscall.c \ 146 coregrind/m_threadstate.c \ 147 coregrind/m_tooliface.c \ 148 coregrind/m_trampoline.S \ 149 coregrind/m_translate.c \ 150 coregrind/m_transtab.c \ 151 coregrind/m_vki.c \ 152 coregrind/m_vkiscnums.c \ 153 coregrind/m_wordfm.c \ 154 coregrind/m_xarray.c \ 155 coregrind/m_aspacehl.c \ 156 coregrind/m_start-amd64-darwin.S \ 157 coregrind/m_start-x86-darwin.S \ 158 coregrind/m_aspacemgr/aspacemgr-common.c \ 159 coregrind/m_aspacemgr/aspacemgr-linux.c \ 160 coregrind/m_coredump/coredump-elf.c \ 161 coregrind/m_coredump/coredump-macho.c \ 162 coregrind/m_debuginfo/misc.c \ 163 coregrind/m_debuginfo/d3basics.c \ 164 coregrind/m_debuginfo/debuginfo.c \ 165 coregrind/m_debuginfo/readdwarf.c \ 166 coregrind/m_debuginfo/readdwarf3.c \ 167 coregrind/m_debuginfo/readelf.c \ 168 coregrind/m_debuginfo/readmacho.c \ 169 coregrind/m_debuginfo/readpdb.c \ 170 coregrind/m_debuginfo/storage.c \ 171 coregrind/m_debuginfo/tytypes.c \ 172 coregrind/m_demangle/cp-demangle.c \ 173 coregrind/m_demangle/cplus-dem.c \ 174 coregrind/m_demangle/demangle.c \ 175 coregrind/m_demangle/dyn-string.c \ 176 coregrind/m_demangle/safe-ctype.c \ 177 coregrind/m_dispatch/dispatch-x86-linux.S \ 178 coregrind/m_dispatch/dispatch-amd64-linux.S \ 179 coregrind/m_dispatch/dispatch-ppc32-linux.S \ 180 coregrind/m_dispatch/dispatch-ppc64-linux.S \ 181 coregrind/m_dispatch/dispatch-arm-linux.S \ 182 coregrind/m_dispatch/dispatch-x86-darwin.S \ 183 coregrind/m_dispatch/dispatch-amd64-darwin.S \ 184 coregrind/m_initimg/initimg-linux.c \ 185 coregrind/m_initimg/initimg-darwin.c \ 186 coregrind/m_initimg/initimg-pathscan.c \ 187 coregrind/m_mach/mach_basics.c \ 188 coregrind/m_mach/mach_msg.c \ 189 coregrind/m_mach/mach_traps-x86-darwin.S \ 190 coregrind/m_mach/mach_traps-amd64-darwin.S \ 191 coregrind/m_replacemalloc/replacemalloc_core.c \ 192 coregrind/m_scheduler/scheduler.c \ 193 coregrind/m_scheduler/sema.c \ 194 coregrind/m_sigframe/sigframe-x86-linux.c \ 195 coregrind/m_sigframe/sigframe-amd64-linux.c \ 196 coregrind/m_sigframe/sigframe-ppc32-linux.c \ 197 coregrind/m_sigframe/sigframe-ppc64-linux.c \ 198 coregrind/m_sigframe/sigframe-arm-linux.c \ 199 coregrind/m_sigframe/sigframe-x86-darwin.c \ 200 coregrind/m_sigframe/sigframe-amd64-darwin.c \ 201 coregrind/m_sigframe/sigframe-s390x-linux.c \ 202 coregrind/m_syswrap/syscall-x86-linux.S \ 203 coregrind/m_syswrap/syscall-amd64-linux.S \ 204 coregrind/m_syswrap/syscall-ppc32-linux.S \ 205 coregrind/m_syswrap/syscall-ppc64-linux.S \ 206 coregrind/m_syswrap/syscall-arm-linux.S \ 207 coregrind/m_syswrap/syscall-x86-darwin.S \ 208 coregrind/m_syswrap/syscall-amd64-darwin.S \ 209 coregrind/m_syswrap/syscall-s390x-linux.S \ 210 coregrind/m_syswrap/syswrap-main.c \ 211 coregrind/m_syswrap/syswrap-generic.c \ 212 coregrind/m_syswrap/syswrap-linux.c \ 213 coregrind/m_syswrap/syswrap-linux-variants.c \ 214 coregrind/m_syswrap/syswrap-darwin.c \ 215 coregrind/m_syswrap/syswrap-x86-linux.c \ 216 coregrind/m_syswrap/syswrap-amd64-linux.c \ 217 coregrind/m_syswrap/syswrap-ppc32-linux.c \ 218 coregrind/m_syswrap/syswrap-ppc64-linux.c \ 219 coregrind/m_syswrap/syswrap-arm-linux.c \ 220 coregrind/m_syswrap/syswrap-x86-darwin.c \ 221 coregrind/m_syswrap/syswrap-amd64-darwin.c \ 222 coregrind/m_syswrap/syswrap-s390x-linux.c \ 223 coregrind/m_ume/elf.c \ 224 coregrind/m_ume/macho.c \ 225 coregrind/m_ume/main.c \ 226 coregrind/m_ume/script.c \ 227 coregrind/vgdb.c \ 228 coregrind/m_gdbserver/inferiors.c \ 229 coregrind/m_gdbserver/m_gdbserver.c \ 230 coregrind/m_gdbserver/regcache.c \ 231 coregrind/m_gdbserver/remote-utils.c \ 232 coregrind/m_gdbserver/server.c \ 233 coregrind/m_gdbserver/signals.c \ 234 coregrind/m_gdbserver/target.c \ 235 coregrind/m_gdbserver/utils.c \ 236 coregrind/m_gdbserver/valgrind-low-amd64.c \ 237 coregrind/m_gdbserver/valgrind-low-arm.c \ 238 coregrind/m_gdbserver/valgrind-low.c \ 239 coregrind/m_gdbserver/valgrind-low-ppc32.c \ 240 coregrind/m_gdbserver/valgrind-low-ppc64.c \ 241 coregrind/m_gdbserver/valgrind-low-s390x.c \ 242 coregrind/m_gdbserver/valgrind-low-x86.c \ 243 coregrind/m_gdbserver/version.c 244 245LOCAL_C_INCLUDES := $(common_includes) 246 247LOCAL_LDFLAGS := $(vex_ldflags) 248 249LOCAL_CFLAGS := $(common_cflags) 250 251include $(BUILD_STATIC_LIBRARY) 252 253# Build libreplacemalloc_toolpreload-$(arch)-linux.a 254include $(CLEAR_VARS) 255 256LOCAL_MODULE := libreplacemalloc_toolpreload-$(arch)-linux 257LOCAL_MODULE_TAGS := optional 258LOCAL_ARM_MODE := arm 259 260LOCAL_SRC_FILES := \ 261 coregrind/m_replacemalloc/vg_replace_malloc.c 262 263LOCAL_C_INCLUDES := $(common_includes) 264 265LOCAL_LDFLAGS := $(preload_ldflags) 266 267LOCAL_CFLAGS := $(common_cflags) 268 269include $(BUILD_STATIC_LIBRARY) 270 271# Build vgpreload_core-$(arch)-linux.so 272include $(CLEAR_VARS) 273 274LOCAL_MODULE := vgpreload_core-$(arch)-linux 275LOCAL_MODULE_TAGS := optional 276LOCAL_MODULE_CLASS := SHARED_LIBRARIES 277LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 278LOCAL_ARM_MODE := arm 279LOCAL_STRIP_MODULE := false 280LOCAL_NO_CRT := true 281LOCAL_PRELINK_MODULE := false 282 283LOCAL_SRC_FILES := \ 284 coregrind/vg_preloaded.c 285 286LOCAL_C_INCLUDES := $(common_includes) 287 288LOCAL_LDFLAGS := $(preload_ldflags) 289 290LOCAL_CFLAGS := $(common_cflags) 291 292include $(BUILD_SHARED_LIBRARY) 293 294# Build memcheck-$(arch)-linux 295include $(CLEAR_VARS) 296 297LOCAL_MODULE := memcheck-$(arch)-linux 298LOCAL_MODULE_TAGS := optional 299LOCAL_MODULE_CLASS := SHARED_LIBRARIES 300LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 301LOCAL_ARM_MODE := arm 302LOCAL_FORCE_STATIC_EXECUTABLE := true 303LOCAL_NO_CRT := true 304LOCAL_SYSTEM_SHARED_LIBRARIES := 305 306LOCAL_SRC_FILES := \ 307 memcheck/mc_leakcheck.c \ 308 memcheck/mc_malloc_wrappers.c \ 309 memcheck/mc_main.c \ 310 memcheck/mc_translate.c \ 311 memcheck/mc_machine.c \ 312 memcheck/mc_errors.c 313 314LOCAL_C_INCLUDES := $(common_includes) 315 316LOCAL_LDFLAGS := $(tool_ldflags) 317 318LOCAL_CFLAGS := $(common_cflags) 319 320LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 321 322include $(BUILD_EXECUTABLE) 323 324# Build vgpreload_memcheck-$(arch)-linux.so 325include $(CLEAR_VARS) 326 327LOCAL_MODULE := vgpreload_memcheck-$(arch)-linux 328LOCAL_MODULE_TAGS := optional 329LOCAL_MODULE_CLASS := SHARED_LIBRARIES 330LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 331LOCAL_ARM_MODE := arm 332LOCAL_STRIP_MODULE := false 333LOCAL_NO_CRT := true 334LOCAL_PRELINK_MODULE := false 335 336LOCAL_SRC_FILES := \ 337 memcheck/mc_replace_strmem.c 338 339LOCAL_C_INCLUDES := $(common_includes) 340 341LOCAL_LDFLAGS := $(preload_ldflags) 342 343LOCAL_CFLAGS := $(common_cflags) 344 345LOCAL_WHOLE_STATIC_LIBRARIES := libreplacemalloc_toolpreload-$(arch)-linux 346 347include $(BUILD_SHARED_LIBRARY) 348 349# Build cachegrind-$(arch)-linux 350include $(CLEAR_VARS) 351 352LOCAL_MODULE := cachegrind-$(arch)-linux 353LOCAL_MODULE_TAGS := optional 354LOCAL_MODULE_CLASS := SHARED_LIBRARIES 355LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 356LOCAL_ARM_MODE := arm 357LOCAL_FORCE_STATIC_EXECUTABLE := true 358LOCAL_NO_CRT := true 359LOCAL_SYSTEM_SHARED_LIBRARIES := 360 361LOCAL_SRC_FILES := \ 362 cachegrind/cg-arch.c \ 363 cachegrind/cg-arm.c \ 364 cachegrind/cg_main.c \ 365 cachegrind/cg-ppc32.c \ 366 cachegrind/cg-ppc64.c \ 367 cachegrind/cg-s390x.c \ 368 cachegrind/cg-x86-amd64.c 369 370LOCAL_C_INCLUDES := $(common_includes) 371 372LOCAL_LDFLAGS := $(tool_ldflags) 373 374LOCAL_CFLAGS := $(common_cflags) 375 376LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 377 378include $(BUILD_EXECUTABLE) 379 380# Build callgrind-$(arch)-linux 381include $(CLEAR_VARS) 382 383LOCAL_MODULE := callgrind-$(arch)-linux 384LOCAL_MODULE_TAGS := optional 385LOCAL_MODULE_CLASS := SHARED_LIBRARIES 386LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 387LOCAL_ARM_MODE := arm 388LOCAL_FORCE_STATIC_EXECUTABLE := true 389LOCAL_NO_CRT := true 390LOCAL_SYSTEM_SHARED_LIBRARIES := 391 392LOCAL_SRC_FILES := \ 393 callgrind/bb.c \ 394 callgrind/bbcc.c \ 395 callgrind/callstack.c \ 396 callgrind/clo.c \ 397 callgrind/command.c \ 398 callgrind/context.c \ 399 callgrind/costs.c \ 400 callgrind/debug.c \ 401 callgrind/dump.c \ 402 callgrind/events.c \ 403 callgrind/fn.c \ 404 callgrind/jumps.c \ 405 callgrind/main.c \ 406 callgrind/sim.c \ 407 callgrind/threads.c \ 408 cachegrind/cg-arch.c \ 409 cachegrind/cg-arm.c \ 410 cachegrind/cg-ppc32.c \ 411 cachegrind/cg-ppc64.c \ 412 cachegrind/cg-s390x.c \ 413 cachegrind/cg-x86-amd64.c 414 415LOCAL_C_INCLUDES := $(common_includes) \ 416 external/valgrind/main/cachegrind 417 418LOCAL_LDFLAGS := $(tool_ldflags) 419 420LOCAL_CFLAGS := $(common_cflags) 421 422LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 423 424include $(BUILD_EXECUTABLE) 425 426# Build helgrind-$(arch)-linux 427include $(CLEAR_VARS) 428 429LOCAL_MODULE := helgrind-$(arch)-linux 430LOCAL_MODULE_TAGS := optional 431LOCAL_MODULE_CLASS := SHARED_LIBRARIES 432LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 433LOCAL_ARM_MODE := arm 434LOCAL_FORCE_STATIC_EXECUTABLE := true 435LOCAL_NO_CRT := true 436LOCAL_SYSTEM_SHARED_LIBRARIES := 437 438LOCAL_SRC_FILES := \ 439 helgrind/hg_basics.c \ 440 helgrind/hg_errors.c \ 441 helgrind/hg_lock_n_thread.c \ 442 helgrind/hg_main.c \ 443 helgrind/hg_wordset.c \ 444 helgrind/libhb_core.c 445 446LOCAL_C_INCLUDES := $(common_includes) 447 448LOCAL_LDFLAGS := $(tool_ldflags) 449 450LOCAL_CFLAGS := $(common_cflags) 451 452LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 453 454include $(BUILD_EXECUTABLE) 455 456# Build vgpreload_helgrind-$(arch)-linux.so 457include $(CLEAR_VARS) 458 459LOCAL_MODULE := vgpreload_helgrind-$(arch)-linux 460LOCAL_MODULE_TAGS := optional 461LOCAL_MODULE_CLASS := SHARED_LIBRARIES 462LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 463LOCAL_ARM_MODE := arm 464LOCAL_STRIP_MODULE := false 465LOCAL_NO_CRT := true 466LOCAL_PRELINK_MODULE := false 467 468LOCAL_SRC_FILES := \ 469 helgrind/hg_intercepts.c 470 471LOCAL_C_INCLUDES := $(common_includes) 472 473LOCAL_LDFLAGS := $(preload_ldflags) 474 475LOCAL_CFLAGS := $(common_cflags) 476 477LOCAL_WHOLE_STATIC_LIBRARIES := libreplacemalloc_toolpreload-$(arch)-linux 478 479include $(BUILD_SHARED_LIBRARY) 480 481# Build drd-$(arch)-linux 482include $(CLEAR_VARS) 483 484LOCAL_MODULE := drd-$(arch)-linux 485LOCAL_MODULE_TAGS := optional 486LOCAL_MODULE_CLASS := SHARED_LIBRARIES 487LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 488LOCAL_ARM_MODE := arm 489LOCAL_FORCE_STATIC_EXECUTABLE := true 490LOCAL_NO_CRT := true 491LOCAL_SYSTEM_SHARED_LIBRARIES := 492 493LOCAL_SRC_FILES := \ 494 drd/drd_barrier.c \ 495 drd/drd_bitmap2_node.c \ 496 drd/drd_clientobj.c \ 497 drd/drd_clientreq.c \ 498 drd/drd_cond.c \ 499 drd/drd_cond_initializer.c \ 500 drd/drd_error.c \ 501 drd/drd_hb.c \ 502 drd/drd_load_store.c \ 503 drd/drd_main.c \ 504 drd/drd_malloc_wrappers.c \ 505 drd/drd_mutex.c \ 506 drd/drd_rwlock.c \ 507 drd/drd_semaphore.c \ 508 drd/drd_suppression.c 509 510LOCAL_C_INCLUDES := $(common_includes) 511 512LOCAL_LDFLAGS := $(tool_ldflags) 513 514LOCAL_CFLAGS := $(common_cflags) 515 516LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 517 518include $(BUILD_EXECUTABLE) 519 520# Build vgpreload_drd-$(arch)-linux.so 521include $(CLEAR_VARS) 522 523LOCAL_MODULE := vgpreload_drd-$(arch)-linux 524LOCAL_MODULE_TAGS := optional 525LOCAL_MODULE_CLASS := SHARED_LIBRARIES 526LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 527LOCAL_ARM_MODE := arm 528LOCAL_STRIP_MODULE := false 529LOCAL_NO_CRT := true 530LOCAL_PRELINK_MODULE := false 531 532LOCAL_SRC_FILES := \ 533 drd/drd_pthread_intercepts.c \ 534 drd/drd_qtcore_intercepts.c \ 535 drd/drd_strmem_intercepts.c 536 537LOCAL_C_INCLUDES := $(common_includes) 538 539LOCAL_LDFLAGS := $(preload_ldflags) 540 541LOCAL_CFLAGS := $(common_cflags) 542 543LOCAL_WHOLE_STATIC_LIBRARIES := libreplacemalloc_toolpreload-$(arch)-linux 544 545include $(BUILD_SHARED_LIBRARY) 546 547# Build massif-$(arch)-linux 548include $(CLEAR_VARS) 549 550LOCAL_MODULE := massif-$(arch)-linux 551LOCAL_MODULE_TAGS := optional 552LOCAL_MODULE_CLASS := SHARED_LIBRARIES 553LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 554LOCAL_ARM_MODE := arm 555LOCAL_FORCE_STATIC_EXECUTABLE := true 556LOCAL_NO_CRT := true 557LOCAL_SYSTEM_SHARED_LIBRARIES := 558 559LOCAL_SRC_FILES := \ 560 massif/ms_main.c 561 562LOCAL_C_INCLUDES := $(common_includes) 563 564LOCAL_LDFLAGS := $(tool_ldflags) 565 566LOCAL_CFLAGS := $(common_cflags) 567 568LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 569 570include $(BUILD_EXECUTABLE) 571 572# Build vgpreload_massif-$(arch)-linux.so 573include $(CLEAR_VARS) 574 575LOCAL_MODULE := vgpreload_massif-$(arch)-linux 576LOCAL_MODULE_TAGS := optional 577LOCAL_MODULE_CLASS := SHARED_LIBRARIES 578LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 579LOCAL_ARM_MODE := arm 580LOCAL_STRIP_MODULE := false 581LOCAL_NO_CRT := true 582LOCAL_PRELINK_MODULE := false 583 584LOCAL_SRC_FILES := 585 586LOCAL_C_INCLUDES := $(common_includes) 587 588LOCAL_LDFLAGS := $(preload_ldflags) 589 590LOCAL_CFLAGS := $(common_cflags) 591 592LOCAL_WHOLE_STATIC_LIBRARIES := libreplacemalloc_toolpreload-$(arch)-linux 593 594include $(BUILD_SHARED_LIBRARY) 595 596# Build none-$(arch)-linux 597include $(CLEAR_VARS) 598 599LOCAL_MODULE := none-$(arch)-linux 600LOCAL_MODULE_TAGS := optional 601LOCAL_MODULE_CLASS := SHARED_LIBRARIES 602LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 603LOCAL_ARM_MODE := arm 604LOCAL_FORCE_STATIC_EXECUTABLE := true 605LOCAL_NO_CRT := true 606LOCAL_SYSTEM_SHARED_LIBRARIES := 607 608LOCAL_SRC_FILES := \ 609 none/nl_main.c 610 611LOCAL_C_INCLUDES := $(common_includes) 612 613LOCAL_LDFLAGS := $(tool_ldflags) 614 615LOCAL_CFLAGS := $(common_cflags) 616 617LOCAL_STATIC_LIBRARIES := libcoregrind-$(arch)-linux libvex-$(arch)-linux 618 619include $(BUILD_EXECUTABLE) 620 621# Build valgrind 622include $(CLEAR_VARS) 623 624LOCAL_MODULE := valgrind 625LOCAL_MODULE_TAGS := optional 626LOCAL_ARM_MODE := arm 627 628LOCAL_SRC_FILES := \ 629 coregrind/launcher-linux.c \ 630 coregrind/m_debuglog.c 631 632LOCAL_C_INCLUDES := $(common_includes) 633 634LOCAL_CFLAGS := $(common_cflags) 635 636include $(BUILD_EXECUTABLE) 637 638# Copy prebuilt suppressions 639include $(CLEAR_VARS) 640 641LOCAL_MODULE := default.supp 642LOCAL_MODULE_TAGS := optional 643LOCAL_MODULE_CLASS := SHARED_LIBRARIES 644LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/valgrind 645LOCAL_SRC_FILES := bionic.supp 646 647include $(BUILD_PREBUILT) 648 649endif 650