1// 2// Copyright (C) 2011 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15// 16 17// Keep the __jit_debug_register_code symbol as a unique symbol during ICF for architectures where 18// we use gold as the linker (arm, x86, x86_64). The symbol is used by the debuggers to detect when 19// new jit code is generated. We don't want it to be called when a different function with the same 20// (empty) body is called. 21JIT_DEBUG_REGISTER_CODE_LDFLAGS = [ 22 "-Wl,--keep-unique,__jit_debug_register_code", 23 "-Wl,--keep-unique,__dex_debug_register_code", 24] 25 26// These are defaults for native shared libaries that are expected to be 27// in stack traces often. 28libart_cc_defaults { 29 name: "libart_nativeunwind_defaults", 30 arch: { 31 arm: { 32 // Arm 32 bit does not produce complete exidx unwind information 33 // so keep the .debug_frame which is relatively small and does 34 // include needed unwind information. 35 // See b/132992102 and b/145790995 for details. 36 strip: { 37 keep_symbols_and_debug_frame: true, 38 }, 39 }, 40 // For all other architectures, leave the symbols in the shared library 41 // so that stack unwinders can produce meaningful name resolution. 42 arm64: { 43 strip: { 44 keep_symbols: true, 45 }, 46 }, 47 x86: { 48 strip: { 49 keep_symbols: true, 50 }, 51 }, 52 x86_64: { 53 strip: { 54 keep_symbols: true, 55 }, 56 }, 57 }, 58} 59 60libart_cc_defaults { 61 name: "libart_defaults", 62 defaults: ["art_defaults"], 63 visibility: [ 64 // Visibility for prebuilt binaries from the prebuilt of this module. 65 // TODO(b/155921753): Restrict this when prebuilts are in their proper 66 // locations. 67 "//prebuilts:__subpackages__", 68 ], 69 host_supported: true, 70 srcs: [ 71 "aot_class_linker.cc", 72 "art_field.cc", 73 "art_method.cc", 74 "backtrace_helper.cc", 75 "barrier.cc", 76 "base/locks.cc", 77 "base/mem_map_arena_pool.cc", 78 "base/mutex.cc", 79 "base/quasi_atomic.cc", 80 "base/timing_logger.cc", 81 "cha.cc", 82 "class_linker.cc", 83 "class_loader_context.cc", 84 "class_root.cc", 85 "class_table.cc", 86 "common_throws.cc", 87 "compiler_filter.cc", 88 "debug_print.cc", 89 "debugger.cc", 90 "dex/dex_file_annotations.cc", 91 "dex_register_location.cc", 92 "dex_to_dex_decompiler.cc", 93 "elf_file.cc", 94 "exec_utils.cc", 95 "fault_handler.cc", 96 "gc/allocation_record.cc", 97 "gc/allocator/dlmalloc.cc", 98 "gc/allocator/rosalloc.cc", 99 "gc/accounting/bitmap.cc", 100 "gc/accounting/card_table.cc", 101 "gc/accounting/heap_bitmap.cc", 102 "gc/accounting/mod_union_table.cc", 103 "gc/accounting/remembered_set.cc", 104 "gc/accounting/space_bitmap.cc", 105 "gc/collector/concurrent_copying.cc", 106 "gc/collector/garbage_collector.cc", 107 "gc/collector/immune_region.cc", 108 "gc/collector/immune_spaces.cc", 109 "gc/collector/mark_sweep.cc", 110 "gc/collector/partial_mark_sweep.cc", 111 "gc/collector/semi_space.cc", 112 "gc/collector/sticky_mark_sweep.cc", 113 "gc/gc_cause.cc", 114 "gc/heap.cc", 115 "gc/reference_processor.cc", 116 "gc/reference_queue.cc", 117 "gc/scoped_gc_critical_section.cc", 118 "gc/space/bump_pointer_space.cc", 119 "gc/space/dlmalloc_space.cc", 120 "gc/space/image_space.cc", 121 "gc/space/large_object_space.cc", 122 "gc/space/malloc_space.cc", 123 "gc/space/region_space.cc", 124 "gc/space/rosalloc_space.cc", 125 "gc/space/space.cc", 126 "gc/space/zygote_space.cc", 127 "gc/task_processor.cc", 128 "gc/verification.cc", 129 "handle.cc", 130 "hidden_api.cc", 131 "hprof/hprof.cc", 132 "image.cc", 133 "index_bss_mapping.cc", 134 "indirect_reference_table.cc", 135 "instrumentation.cc", 136 "intern_table.cc", 137 "interpreter/interpreter.cc", 138 "interpreter/interpreter_cache.cc", 139 "interpreter/interpreter_common.cc", 140 "interpreter/interpreter_intrinsics.cc", 141 "interpreter/interpreter_switch_impl0.cc", 142 "interpreter/interpreter_switch_impl1.cc", 143 "interpreter/interpreter_switch_impl2.cc", 144 "interpreter/interpreter_switch_impl3.cc", 145 "interpreter/lock_count_data.cc", 146 "interpreter/shadow_frame.cc", 147 "interpreter/unstarted_runtime.cc", 148 "java_frame_root_info.cc", 149 "jit/debugger_interface.cc", 150 "jit/jit.cc", 151 "jit/jit_code_cache.cc", 152 "jit/jit_memory_region.cc", 153 "jit/profiling_info.cc", 154 "jit/profile_saver.cc", 155 "jni/check_jni.cc", 156 "jni/java_vm_ext.cc", 157 "jni/jni_env_ext.cc", 158 "jni/jni_id_manager.cc", 159 "jni/jni_internal.cc", 160 "linear_alloc.cc", 161 "managed_stack.cc", 162 "method_handles.cc", 163 "mirror/array.cc", 164 "mirror/class.cc", 165 "mirror/class_ext.cc", 166 "mirror/dex_cache.cc", 167 "mirror/emulated_stack_frame.cc", 168 "mirror/executable.cc", 169 "mirror/field.cc", 170 "mirror/method.cc", 171 "mirror/method_handle_impl.cc", 172 "mirror/method_handles_lookup.cc", 173 "mirror/method_type.cc", 174 "mirror/object.cc", 175 "mirror/stack_trace_element.cc", 176 "mirror/string.cc", 177 "mirror/throwable.cc", 178 "mirror/var_handle.cc", 179 "monitor.cc", 180 "monitor_objects_stack_visitor.cc", 181 "native_bridge_art_interface.cc", 182 "native_stack_dump.cc", 183 "native/dalvik_system_DexFile.cc", 184 "native/dalvik_system_BaseDexClassLoader.cc", 185 "native/dalvik_system_VMDebug.cc", 186 "native/dalvik_system_VMRuntime.cc", 187 "native/dalvik_system_VMStack.cc", 188 "native/dalvik_system_ZygoteHooks.cc", 189 "native/java_lang_Class.cc", 190 "native/java_lang_Object.cc", 191 "native/java_lang_String.cc", 192 "native/java_lang_StringFactory.cc", 193 "native/java_lang_System.cc", 194 "native/java_lang_Thread.cc", 195 "native/java_lang_Throwable.cc", 196 "native/java_lang_VMClassLoader.cc", 197 "native/java_lang_invoke_MethodHandleImpl.cc", 198 "native/java_lang_ref_FinalizerReference.cc", 199 "native/java_lang_ref_Reference.cc", 200 "native/java_lang_reflect_Array.cc", 201 "native/java_lang_reflect_Constructor.cc", 202 "native/java_lang_reflect_Executable.cc", 203 "native/java_lang_reflect_Field.cc", 204 "native/java_lang_reflect_Method.cc", 205 "native/java_lang_reflect_Parameter.cc", 206 "native/java_lang_reflect_Proxy.cc", 207 "native/java_util_concurrent_atomic_AtomicLong.cc", 208 "native/libcore_util_CharsetUtils.cc", 209 "native/org_apache_harmony_dalvik_ddmc_DdmServer.cc", 210 "native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc", 211 "native/sun_misc_Unsafe.cc", 212 "non_debuggable_classes.cc", 213 "nterp_helpers.cc", 214 "oat.cc", 215 "oat_file.cc", 216 "oat_file_assistant.cc", 217 "oat_file_manager.cc", 218 "oat_quick_method_header.cc", 219 "object_lock.cc", 220 "offsets.cc", 221 "parsed_options.cc", 222 "plugin.cc", 223 "quick_exception_handler.cc", 224 "read_barrier.cc", 225 "reference_table.cc", 226 "reflection.cc", 227 "reflective_handle_scope.cc", 228 "reflective_value_visitor.cc", 229 "runtime.cc", 230 "runtime_callbacks.cc", 231 "runtime_common.cc", 232 "runtime_intrinsics.cc", 233 "runtime_options.cc", 234 "scoped_thread_state_change.cc", 235 "signal_catcher.cc", 236 "stack.cc", 237 "stack_map.cc", 238 "string_builder_append.cc", 239 "thread.cc", 240 "thread_list.cc", 241 "thread_pool.cc", 242 "ti/agent.cc", 243 "trace.cc", 244 "transaction.cc", 245 "var_handles.cc", 246 "vdex_file.cc", 247 "verifier/class_verifier.cc", 248 "verifier/instruction_flags.cc", 249 "verifier/method_verifier.cc", 250 "verifier/reg_type.cc", 251 "verifier/reg_type_cache.cc", 252 "verifier/register_line.cc", 253 "verifier/verifier_deps.cc", 254 "verify_object.cc", 255 "well_known_classes.cc", 256 257 "arch/context.cc", 258 "arch/instruction_set_features.cc", 259 "arch/memcmp16.cc", 260 "arch/arm/instruction_set_features_arm.cc", 261 "arch/arm/registers_arm.cc", 262 "arch/arm64/instruction_set_features_arm64.cc", 263 "arch/arm64/registers_arm64.cc", 264 "arch/x86/instruction_set_features_x86.cc", 265 "arch/x86/registers_x86.cc", 266 "arch/x86_64/registers_x86_64.cc", 267 "entrypoints/entrypoint_utils.cc", 268 "entrypoints/jni/jni_entrypoints.cc", 269 "entrypoints/math_entrypoints.cc", 270 "entrypoints/quick/quick_alloc_entrypoints.cc", 271 "entrypoints/quick/quick_cast_entrypoints.cc", 272 "entrypoints/quick/quick_deoptimization_entrypoints.cc", 273 "entrypoints/quick/quick_dexcache_entrypoints.cc", 274 "entrypoints/quick/quick_entrypoints_enum.cc", 275 "entrypoints/quick/quick_field_entrypoints.cc", 276 "entrypoints/quick/quick_fillarray_entrypoints.cc", 277 "entrypoints/quick/quick_jni_entrypoints.cc", 278 "entrypoints/quick/quick_lock_entrypoints.cc", 279 "entrypoints/quick/quick_math_entrypoints.cc", 280 "entrypoints/quick/quick_string_builder_append_entrypoints.cc", 281 "entrypoints/quick/quick_thread_entrypoints.cc", 282 "entrypoints/quick/quick_throw_entrypoints.cc", 283 "entrypoints/quick/quick_trampoline_entrypoints.cc", 284 ], 285 286 arch: { 287 arm: { 288 srcs: [ 289 "interpreter/mterp/mterp.cc", 290 "interpreter/mterp/nterp_stub.cc", 291 ":libart_mterp.arm", 292 "arch/arm/context_arm.cc", 293 "arch/arm/entrypoints_init_arm.cc", 294 "arch/arm/instruction_set_features_assembly_tests.S", 295 "arch/arm/jni_entrypoints_arm.S", 296 "arch/arm/memcmp16_arm.S", 297 "arch/arm/quick_entrypoints_arm.S", 298 "arch/arm/quick_entrypoints_cc_arm.cc", 299 "arch/arm/thread_arm.cc", 300 "arch/arm/fault_handler_arm.cc", 301 ], 302 }, 303 arm64: { 304 srcs: [ 305 "interpreter/mterp/mterp.cc", 306 "interpreter/mterp/nterp.cc", 307 ":libart_mterp.arm64", 308 ":libart_mterp.arm64ng", 309 "arch/arm64/context_arm64.cc", 310 "arch/arm64/entrypoints_init_arm64.cc", 311 "arch/arm64/jni_entrypoints_arm64.S", 312 "arch/arm64/memcmp16_arm64.S", 313 "arch/arm64/quick_entrypoints_arm64.S", 314 "arch/arm64/thread_arm64.cc", 315 "monitor_pool.cc", 316 "arch/arm64/fault_handler_arm64.cc", 317 ], 318 }, 319 x86: { 320 srcs: [ 321 "interpreter/mterp/mterp.cc", 322 "interpreter/mterp/nterp_stub.cc", 323 ":libart_mterp.x86", 324 "arch/x86/context_x86.cc", 325 "arch/x86/entrypoints_init_x86.cc", 326 "arch/x86/jni_entrypoints_x86.S", 327 "arch/x86/memcmp16_x86.S", 328 "arch/x86/quick_entrypoints_x86.S", 329 "arch/x86/thread_x86.cc", 330 "arch/x86/fault_handler_x86.cc", 331 ], 332 avx: { 333 asflags: ["-DMTERP_USE_AVX"], 334 }, 335 avx2: { 336 asflags: ["-DMTERP_USE_AVX"], 337 }, 338 }, 339 x86_64: { 340 srcs: [ 341 // Note that the fault_handler_x86.cc is not a mistake. This file is 342 // shared between the x86 and x86_64 architectures. 343 "interpreter/mterp/mterp.cc", 344 "interpreter/mterp/nterp.cc", 345 ":libart_mterp.x86_64", 346 ":libart_mterp.x86_64ng", 347 "arch/x86_64/context_x86_64.cc", 348 "arch/x86_64/entrypoints_init_x86_64.cc", 349 "arch/x86_64/jni_entrypoints_x86_64.S", 350 "arch/x86_64/memcmp16_x86_64.S", 351 "arch/x86_64/quick_entrypoints_x86_64.S", 352 "arch/x86_64/thread_x86_64.cc", 353 "monitor_pool.cc", 354 "arch/x86/fault_handler_x86.cc", 355 ], 356 avx: { 357 asflags: ["-DMTERP_USE_AVX"], 358 }, 359 avx2: { 360 asflags: ["-DMTERP_USE_AVX"], 361 }, 362 }, 363 }, 364 target: { 365 android: { 366 srcs: [ 367 "monitor_android.cc", 368 "runtime_android.cc", 369 "thread_android.cc", 370 ], 371 header_libs: [ 372 "libandroidicu_headers", 373 ], 374 shared_libs: [ 375 "libdl_android", 376 "libz", // For adler32. 377 ], 378 }, 379 android_arm: { 380 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 381 }, 382 android_arm64: { 383 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 384 }, 385 android_x86: { 386 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 387 }, 388 android_x86_64: { 389 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 390 }, 391 host: { 392 srcs: [ 393 "monitor_linux.cc", 394 "runtime_linux.cc", 395 "thread_linux.cc", 396 ], 397 header_libs: [ 398 "libicuuc_headers", 399 ], 400 shared_libs: [ 401 "libz", // For adler32. 402 ], 403 }, 404 }, 405 cflags: ["-DBUILDING_LIBART=1"], 406 generated_sources: ["art_operator_srcs"], 407 // asm_support_gen.h (used by asm_support.h) is generated with cpp-define-generator 408 generated_headers: ["cpp-define-generator-asm-support"], 409 // export our headers so the libart-gtest targets can use it as well. 410 export_generated_headers: ["cpp-define-generator-asm-support"], 411 header_libs: [ 412 "art_cmdlineparser_headers", 413 "cpp-define-generator-definitions", 414 "jni_platform_headers", 415 "libnativehelper_header_only", 416 ], 417 shared_libs: [ 418 "libartpalette", 419 "libnativebridge", 420 "libnativeloader", 421 "libbacktrace", 422 "liblog", 423 // For common macros. 424 "libbase", 425 "libunwindstack", 426 "libsigchain", 427 ], 428 export_include_dirs: ["."], 429 // ART's macros.h depends on libbase's macros.h. 430 // Note: runtime_options.h depends on cmdline. But we don't really want to export this 431 // generically. dex2oat takes care of it itself. 432 export_shared_lib_headers: ["libbase"], 433} 434 435cc_defaults { 436 name: "libart_pgo", 437 438 pgo: { 439 sampling: true, 440 }, 441 target: { 442 android_arm64: { 443 pgo: { 444 profile_file: "art/libart_arm_arm64.profdata", 445 }, 446 }, 447 android_arm: { 448 pgo: { 449 profile_file: "art/libart_arm_arm64.profdata", 450 }, 451 }, 452 android_x86_64: { 453 pgo: { 454 profile_file: "art/libart_x86_x86_64.profdata", 455 }, 456 }, 457 android_x86: { 458 pgo: { 459 profile_file: "art/libart_x86_x86_64.profdata", 460 }, 461 }, 462 }, 463} 464 465libart_static_cc_defaults { 466 name: "libart_static_base_defaults", 467 static_libs: [ 468 "libartpalette", 469 "libbacktrace", 470 "libbase", 471 "liblog", 472 "libnativebridge", 473 "libnativeloader", 474 "libsigchain_fake", 475 "libunwindstack", 476 "libz", 477 ], 478} 479 480cc_defaults { 481 name: "libart_static_defaults", 482 defaults: [ 483 "libart_static_base_defaults", 484 "libartbase_static_defaults", 485 "libdexfile_static_defaults", 486 "libprofile_static_defaults", 487 ], 488 static_libs: [ 489 "libart", 490 "libdexfile_support_static", 491 "libelffile", 492 ], 493} 494 495cc_defaults { 496 name: "libartd_static_defaults", 497 defaults: [ 498 "libart_static_base_defaults", 499 "libartbased_static_defaults", 500 "libdexfiled_static_defaults", 501 "libprofiled_static_defaults", 502 ], 503 static_libs: [ 504 "libartd", 505 "libdexfiled_support_static", 506 "libelffiled", 507 ], 508} 509 510gensrcs { 511 name: "art_operator_srcs", 512 cmd: "$(location generate_operator_out) art/runtime $(in) > $(out)", 513 tools: ["generate_operator_out"], 514 srcs: [ 515 "base/callee_save_type.h", 516 "base/locks.h", 517 "class_status.h", 518 "compilation_kind.h", 519 "gc_root.h", 520 "gc/allocator_type.h", 521 "gc/allocator/rosalloc.h", 522 "gc/collector_type.h", 523 "gc/collector/gc_type.h", 524 "gc/space/region_space.h", 525 "gc/space/space.h", 526 "gc/weak_root_state.h", 527 "image.h", 528 "instrumentation.h", 529 "indirect_reference_table.h", 530 "jdwp_provider.h", 531 "jni_id_type.h", 532 "lock_word.h", 533 "oat_file.h", 534 "process_state.h", 535 "reflective_value_visitor.h", 536 "stack.h", 537 "suspend_reason.h", 538 "thread.h", 539 "thread_state.h", 540 "trace.h", 541 "verifier/verifier_enums.h", 542 ], 543 output_extension: "operator_out.cc", 544} 545 546// We always build dex2oat and dependencies, even if the host build is otherwise disabled, since 547// they are used to cross compile for the target. 548 549art_cc_library { 550 name: "libart", 551 defaults: [ 552 "libart_defaults", 553 "libart_nativeunwind_defaults", 554 "libart_pgo", 555 ], 556 whole_static_libs: [ 557 ], 558 static_libs: [ 559 "libelffile", 560 ], 561 shared_libs: [ 562 "libartbase", 563 "libdexfile", 564 // We need to eagerly load it so libdexfile_support used from libunwindstack can find it. 565 "libdexfile_external", 566 "libprofile", 567 ], 568 export_shared_lib_headers: [ 569 "libdexfile", 570 ], 571 target: { 572 android: { 573 lto: { 574 thin: true, 575 }, 576 }, 577 }, 578 apex_available: [ 579 "com.android.art.release", 580 "com.android.art.debug", 581 ], 582} 583 584art_cc_library { 585 name: "libartd", 586 defaults: [ 587 "art_debug_defaults", 588 "libart_defaults", 589 ], 590 whole_static_libs: [ 591 ], 592 static_libs: [ 593 "libelffiled", 594 ], 595 shared_libs: [ 596 "libartbased", 597 "libdexfiled", 598 // We need to eagerly preload it, so that libunwindstack can find it. 599 // Otherwise, it would try to load the non-debug version with dlopen. 600 "libdexfiled_external", 601 "libprofiled", 602 ], 603 export_shared_lib_headers: [ 604 "libdexfiled", 605 ], 606 apex_available: [ 607 "com.android.art.debug", 608 ], 609} 610 611art_cc_library { 612 name: "libart-runtime-gtest", 613 defaults: ["libart-gtest-defaults"], 614 srcs: [ 615 "common_runtime_test.cc", 616 "dexopt_test.cc", 617 ], 618 shared_libs: [ 619 "libartd", 620 "libartbase-art-gtest", 621 "libbase", 622 "libbacktrace", 623 ], 624 header_libs: [ 625 "libnativehelper_header_only", 626 ], 627} 628 629art_cc_test { 630 name: "art_runtime_tests", 631 defaults: [ 632 "art_gtest_defaults", 633 ], 634 data: [ 635 ":art-gtest-jars-AllFields", 636 ":art-gtest-jars-ErroneousA", 637 ":art-gtest-jars-ErroneousB", 638 ":art-gtest-jars-ErroneousInit", 639 ":art-gtest-jars-Extension1", 640 ":art-gtest-jars-Extension2", 641 ":art-gtest-jars-ForClassLoaderA", 642 ":art-gtest-jars-ForClassLoaderB", 643 ":art-gtest-jars-ForClassLoaderC", 644 ":art-gtest-jars-ForClassLoaderD", 645 ":art-gtest-jars-HiddenApiSignatures", 646 ":art-gtest-jars-IMTA", 647 ":art-gtest-jars-IMTB", 648 ":art-gtest-jars-Instrumentation", 649 ":art-gtest-jars-Interfaces", 650 ":art-gtest-jars-LinkageTest", 651 ":art-gtest-jars-Main", 652 ":art-gtest-jars-MainStripped", 653 ":art-gtest-jars-MainUncompressedAligned", 654 ":art-gtest-jars-MethodTypes", 655 ":art-gtest-jars-MultiDex", 656 ":art-gtest-jars-MultiDexModifiedSecondary", 657 ":art-gtest-jars-MultiDexUncompressedAligned", 658 ":art-gtest-jars-MyClass", 659 ":art-gtest-jars-MyClassNatives", 660 ":art-gtest-jars-Nested", 661 ":art-gtest-jars-Packages", 662 ":art-gtest-jars-ProfileTestMultiDex", 663 ":art-gtest-jars-ProtoCompare", 664 ":art-gtest-jars-ProtoCompare2", 665 ":art-gtest-jars-StaticLeafMethods", 666 ":art-gtest-jars-Statics", 667 ":art-gtest-jars-StaticsFromCode", 668 ":art-gtest-jars-Transaction", 669 ":art-gtest-jars-VerifierDeps", 670 ":art-gtest-jars-VerifierDepsMulti", 671 ":art-gtest-jars-XandY", 672 ], 673 srcs: [ 674 "arch/arch_test.cc", 675 "arch/instruction_set_features_test.cc", 676 "arch/memcmp16_test.cc", 677 "arch/stub_test.cc", 678 "arch/arm/instruction_set_features_arm_test.cc", 679 "arch/arm64/instruction_set_features_arm64_test.cc", 680 "arch/x86/instruction_set_features_x86_test.cc", 681 "arch/x86_64/instruction_set_features_x86_64_test.cc", 682 "barrier_test.cc", 683 "base/mutex_test.cc", 684 "base/timing_logger_test.cc", 685 "cha_test.cc", 686 "class_linker_test.cc", 687 "class_loader_context_test.cc", 688 "class_table_test.cc", 689 "compiler_filter_test.cc", 690 "entrypoints/math_entrypoints_test.cc", 691 "entrypoints/quick/quick_trampoline_entrypoints_test.cc", 692 "entrypoints_order_test.cc", 693 "exec_utils_test.cc", 694 "gc/accounting/card_table_test.cc", 695 "gc/accounting/mod_union_table_test.cc", 696 "gc/accounting/space_bitmap_test.cc", 697 "gc/collector/immune_spaces_test.cc", 698 "gc/heap_test.cc", 699 "gc/heap_verification_test.cc", 700 "gc/reference_queue_test.cc", 701 "gc/space/dlmalloc_space_static_test.cc", 702 "gc/space/dlmalloc_space_random_test.cc", 703 "gc/space/image_space_test.cc", 704 "gc/space/large_object_space_test.cc", 705 "gc/space/rosalloc_space_static_test.cc", 706 "gc/space/rosalloc_space_random_test.cc", 707 "gc/space/space_create_test.cc", 708 "gc/system_weak_test.cc", 709 "gc/task_processor_test.cc", 710 "gtest_test.cc", 711 "handle_scope_test.cc", 712 "hidden_api_test.cc", 713 "imtable_test.cc", 714 "indirect_reference_table_test.cc", 715 "instrumentation_test.cc", 716 "intern_table_test.cc", 717 "interpreter/safe_math_test.cc", 718 "interpreter/unstarted_runtime_test.cc", 719 "jit/jit_memory_region_test.cc", 720 "jit/profile_saver_test.cc", 721 "jit/profiling_info_test.cc", 722 "jni/java_vm_ext_test.cc", 723 "jni/jni_internal_test.cc", 724 "method_handles_test.cc", 725 "mirror/dex_cache_test.cc", 726 "mirror/method_type_test.cc", 727 "mirror/object_test.cc", 728 "mirror/var_handle_test.cc", 729 "monitor_pool_test.cc", 730 "monitor_test.cc", 731 "oat_file_test.cc", 732 "oat_file_assistant_test.cc", 733 "parsed_options_test.cc", 734 "prebuilt_tools_test.cc", 735 "proxy_test.cc", 736 "reference_table_test.cc", 737 "runtime_callbacks_test.cc", 738 "runtime_test.cc", 739 "subtype_check_info_test.cc", 740 "subtype_check_test.cc", 741 "thread_pool_test.cc", 742 "transaction_test.cc", 743 "two_runtimes_test.cc", 744 "vdex_file_test.cc", 745 "verifier/method_verifier_test.cc", 746 "verifier/reg_type_test.cc", 747 ], 748 required: ["dex2oatd"], 749 shared_libs: [ 750 "libbacktrace", 751 ], 752 header_libs: [ 753 "art_cmdlineparser_headers", // For parsed_options_test. 754 ], 755} 756 757art_cc_test { 758 name: "art_runtime_compiler_tests", 759 defaults: [ 760 "art_gtest_defaults", 761 ], 762 srcs: [ 763 "reflection_test.cc", 764 "module_exclusion_test.cc", 765 ], 766 required: ["dex2oatd"], 767 data: [ 768 ":art-gtest-jars-Main", 769 ":art-gtest-jars-NonStaticLeafMethods", 770 ":art-gtest-jars-StaticLeafMethods", 771 ], 772 shared_libs: [ 773 "libartd-compiler", 774 "libvixld", 775 ], 776} 777 778cc_library_headers { 779 name: "libart_runtime_headers_ndk", 780 host_supported: true, 781 export_include_dirs: ["."], 782 sdk_version: "current", 783 784 apex_available: [ 785 "com.android.art.debug", 786 "com.android.art.release", 787 ], 788} 789 790genrule { 791 name: "libart_mterp.arm", 792 out: ["mterp_arm.S"], 793 srcs: ["interpreter/mterp/arm/*.S"], 794 tool_files: [ 795 "interpreter/mterp/gen_mterp.py", 796 "interpreter/mterp/common/gen_setup.py", 797 ], 798 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 799} 800 801genrule { 802 name: "libart_mterp.arm64", 803 out: ["mterp_arm64.S"], 804 srcs: ["interpreter/mterp/arm64/*.S"], 805 tool_files: [ 806 "interpreter/mterp/gen_mterp.py", 807 "interpreter/mterp/common/gen_setup.py", 808 ], 809 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 810} 811 812genrule { 813 name: "libart_mterp.x86", 814 out: ["mterp_x86.S"], 815 srcs: ["interpreter/mterp/x86/*.S"], 816 tool_files: [ 817 "interpreter/mterp/gen_mterp.py", 818 "interpreter/mterp/common/gen_setup.py", 819 ], 820 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 821} 822 823genrule { 824 name: "libart_mterp.x86_64", 825 out: ["mterp_x86_64.S"], 826 srcs: ["interpreter/mterp/x86_64/*.S"], 827 tool_files: [ 828 "interpreter/mterp/gen_mterp.py", 829 "interpreter/mterp/common/gen_setup.py", 830 ], 831 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 832} 833 834genrule { 835 name: "libart_mterp.x86_64ng", 836 out: ["mterp_x86_64ng.S"], 837 srcs: [ 838 "interpreter/mterp/x86_64ng/*.S", 839 "interpreter/mterp/x86_64/arithmetic.S", 840 "interpreter/mterp/x86_64/floating_point.S", 841 ], 842 tool_files: [ 843 "interpreter/mterp/gen_mterp.py", 844 "interpreter/mterp/common/gen_setup.py", 845 ], 846 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 847} 848 849genrule { 850 name: "libart_mterp.arm64ng", 851 out: ["mterp_arm64ng.S"], 852 srcs: [ 853 "interpreter/mterp/arm64ng/*.S", 854 "interpreter/mterp/arm64/arithmetic.S", 855 "interpreter/mterp/arm64/floating_point.S", 856 ], 857 tool_files: [ 858 "interpreter/mterp/gen_mterp.py", 859 "interpreter/mterp/common/gen_setup.py", 860 ], 861 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 862} 863