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 26libart_cc_defaults { 27 name: "libart_defaults", 28 defaults: ["art_defaults"], 29 host_supported: true, 30 srcs: [ 31 "aot_class_linker.cc", 32 "art_field.cc", 33 "art_method.cc", 34 "backtrace_helper.cc", 35 "barrier.cc", 36 "base/locks.cc", 37 "base/mem_map_arena_pool.cc", 38 "base/mutex.cc", 39 "base/quasi_atomic.cc", 40 "base/timing_logger.cc", 41 "cha.cc", 42 "class_linker.cc", 43 "class_loader_context.cc", 44 "class_root.cc", 45 "class_table.cc", 46 "common_throws.cc", 47 "compiler_filter.cc", 48 "debug_print.cc", 49 "debugger.cc", 50 "dex/dex_file_annotations.cc", 51 "dex_register_location.cc", 52 "dex_to_dex_decompiler.cc", 53 "elf_file.cc", 54 "exec_utils.cc", 55 "fault_handler.cc", 56 "gc/allocation_record.cc", 57 "gc/allocator/dlmalloc.cc", 58 "gc/allocator/rosalloc.cc", 59 "gc/accounting/bitmap.cc", 60 "gc/accounting/card_table.cc", 61 "gc/accounting/heap_bitmap.cc", 62 "gc/accounting/mod_union_table.cc", 63 "gc/accounting/remembered_set.cc", 64 "gc/accounting/space_bitmap.cc", 65 "gc/collector/concurrent_copying.cc", 66 "gc/collector/garbage_collector.cc", 67 "gc/collector/immune_region.cc", 68 "gc/collector/immune_spaces.cc", 69 "gc/collector/mark_sweep.cc", 70 "gc/collector/partial_mark_sweep.cc", 71 "gc/collector/semi_space.cc", 72 "gc/collector/sticky_mark_sweep.cc", 73 "gc/gc_cause.cc", 74 "gc/heap.cc", 75 "gc/reference_processor.cc", 76 "gc/reference_queue.cc", 77 "gc/scoped_gc_critical_section.cc", 78 "gc/space/bump_pointer_space.cc", 79 "gc/space/dlmalloc_space.cc", 80 "gc/space/image_space.cc", 81 "gc/space/large_object_space.cc", 82 "gc/space/malloc_space.cc", 83 "gc/space/region_space.cc", 84 "gc/space/rosalloc_space.cc", 85 "gc/space/space.cc", 86 "gc/space/zygote_space.cc", 87 "gc/task_processor.cc", 88 "gc/verification.cc", 89 "hidden_api.cc", 90 "hprof/hprof.cc", 91 "image.cc", 92 "index_bss_mapping.cc", 93 "indirect_reference_table.cc", 94 "instrumentation.cc", 95 "intern_table.cc", 96 "interpreter/interpreter.cc", 97 "interpreter/interpreter_cache.cc", 98 "interpreter/interpreter_common.cc", 99 "interpreter/interpreter_intrinsics.cc", 100 "interpreter/interpreter_switch_impl0.cc", 101 "interpreter/interpreter_switch_impl1.cc", 102 "interpreter/interpreter_switch_impl2.cc", 103 "interpreter/interpreter_switch_impl3.cc", 104 "interpreter/lock_count_data.cc", 105 "interpreter/shadow_frame.cc", 106 "interpreter/unstarted_runtime.cc", 107 "java_frame_root_info.cc", 108 "jdwp/jdwp_event.cc", 109 "jdwp/jdwp_expand_buf.cc", 110 "jdwp/jdwp_handler.cc", 111 "jdwp/jdwp_main.cc", 112 "jdwp/jdwp_request.cc", 113 "jdwp/jdwp_socket.cc", 114 "jdwp/object_registry.cc", 115 "jit/debugger_interface.cc", 116 "jit/jit.cc", 117 "jit/jit_code_cache.cc", 118 "jit/profiling_info.cc", 119 "jit/profile_saver.cc", 120 "jni/check_jni.cc", 121 "jni/java_vm_ext.cc", 122 "jni/jni_env_ext.cc", 123 "jni/jni_internal.cc", 124 "linear_alloc.cc", 125 "managed_stack.cc", 126 "method_handles.cc", 127 "mirror/array.cc", 128 "mirror/class.cc", 129 "mirror/class_ext.cc", 130 "mirror/dex_cache.cc", 131 "mirror/emulated_stack_frame.cc", 132 "mirror/executable.cc", 133 "mirror/field.cc", 134 "mirror/method.cc", 135 "mirror/method_handle_impl.cc", 136 "mirror/method_handles_lookup.cc", 137 "mirror/method_type.cc", 138 "mirror/object.cc", 139 "mirror/stack_trace_element.cc", 140 "mirror/string.cc", 141 "mirror/throwable.cc", 142 "mirror/var_handle.cc", 143 "monitor.cc", 144 "monitor_objects_stack_visitor.cc", 145 "native_bridge_art_interface.cc", 146 "native_stack_dump.cc", 147 "native/dalvik_system_DexFile.cc", 148 "native/dalvik_system_VMDebug.cc", 149 "native/dalvik_system_VMRuntime.cc", 150 "native/dalvik_system_VMStack.cc", 151 "native/dalvik_system_ZygoteHooks.cc", 152 "native/java_lang_Class.cc", 153 "native/java_lang_Object.cc", 154 "native/java_lang_String.cc", 155 "native/java_lang_StringFactory.cc", 156 "native/java_lang_System.cc", 157 "native/java_lang_Thread.cc", 158 "native/java_lang_Throwable.cc", 159 "native/java_lang_VMClassLoader.cc", 160 "native/java_lang_invoke_MethodHandleImpl.cc", 161 "native/java_lang_ref_FinalizerReference.cc", 162 "native/java_lang_ref_Reference.cc", 163 "native/java_lang_reflect_Array.cc", 164 "native/java_lang_reflect_Constructor.cc", 165 "native/java_lang_reflect_Executable.cc", 166 "native/java_lang_reflect_Field.cc", 167 "native/java_lang_reflect_Method.cc", 168 "native/java_lang_reflect_Parameter.cc", 169 "native/java_lang_reflect_Proxy.cc", 170 "native/java_util_concurrent_atomic_AtomicLong.cc", 171 "native/libcore_util_CharsetUtils.cc", 172 "native/org_apache_harmony_dalvik_ddmc_DdmServer.cc", 173 "native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc", 174 "native/sun_misc_Unsafe.cc", 175 "non_debuggable_classes.cc", 176 "oat.cc", 177 "oat_file.cc", 178 "oat_file_assistant.cc", 179 "oat_file_manager.cc", 180 "oat_quick_method_header.cc", 181 "object_lock.cc", 182 "offsets.cc", 183 "parsed_options.cc", 184 "plugin.cc", 185 "quick_exception_handler.cc", 186 "read_barrier.cc", 187 "reference_table.cc", 188 "reflection.cc", 189 "runtime.cc", 190 "runtime_callbacks.cc", 191 "runtime_common.cc", 192 "runtime_intrinsics.cc", 193 "runtime_options.cc", 194 "scoped_thread_state_change.cc", 195 "signal_catcher.cc", 196 "stack.cc", 197 "stack_map.cc", 198 "thread.cc", 199 "thread_list.cc", 200 "thread_pool.cc", 201 "ti/agent.cc", 202 "trace.cc", 203 "transaction.cc", 204 "var_handles.cc", 205 "vdex_file.cc", 206 "verifier/class_verifier.cc", 207 "verifier/instruction_flags.cc", 208 "verifier/method_verifier.cc", 209 "verifier/reg_type.cc", 210 "verifier/reg_type_cache.cc", 211 "verifier/register_line.cc", 212 "verifier/verifier_deps.cc", 213 "verify_object.cc", 214 "well_known_classes.cc", 215 216 "arch/context.cc", 217 "arch/instruction_set_features.cc", 218 "arch/memcmp16.cc", 219 "arch/arm/instruction_set_features_arm.cc", 220 "arch/arm/registers_arm.cc", 221 "arch/arm64/instruction_set_features_arm64.cc", 222 "arch/arm64/registers_arm64.cc", 223 "arch/mips/instruction_set_features_mips.cc", 224 "arch/mips/registers_mips.cc", 225 "arch/mips64/instruction_set_features_mips64.cc", 226 "arch/mips64/registers_mips64.cc", 227 "arch/x86/instruction_set_features_x86.cc", 228 "arch/x86/registers_x86.cc", 229 "arch/x86_64/registers_x86_64.cc", 230 "entrypoints/entrypoint_utils.cc", 231 "entrypoints/jni/jni_entrypoints.cc", 232 "entrypoints/math_entrypoints.cc", 233 "entrypoints/quick/quick_alloc_entrypoints.cc", 234 "entrypoints/quick/quick_cast_entrypoints.cc", 235 "entrypoints/quick/quick_deoptimization_entrypoints.cc", 236 "entrypoints/quick/quick_dexcache_entrypoints.cc", 237 "entrypoints/quick/quick_entrypoints_enum.cc", 238 "entrypoints/quick/quick_field_entrypoints.cc", 239 "entrypoints/quick/quick_fillarray_entrypoints.cc", 240 "entrypoints/quick/quick_jni_entrypoints.cc", 241 "entrypoints/quick/quick_lock_entrypoints.cc", 242 "entrypoints/quick/quick_math_entrypoints.cc", 243 "entrypoints/quick/quick_thread_entrypoints.cc", 244 "entrypoints/quick/quick_throw_entrypoints.cc", 245 "entrypoints/quick/quick_trampoline_entrypoints.cc", 246 ], 247 248 arch: { 249 arm: { 250 srcs: [ 251 "interpreter/mterp/mterp.cc", 252 ":libart_mterp.arm", 253 "arch/arm/context_arm.cc", 254 "arch/arm/entrypoints_init_arm.cc", 255 "arch/arm/instruction_set_features_assembly_tests.S", 256 "arch/arm/jni_entrypoints_arm.S", 257 "arch/arm/memcmp16_arm.S", 258 "arch/arm/quick_entrypoints_arm.S", 259 "arch/arm/quick_entrypoints_cc_arm.cc", 260 "arch/arm/thread_arm.cc", 261 "arch/arm/fault_handler_arm.cc", 262 ], 263 }, 264 arm64: { 265 srcs: [ 266 "interpreter/mterp/mterp.cc", 267 ":libart_mterp.arm64", 268 "arch/arm64/context_arm64.cc", 269 "arch/arm64/entrypoints_init_arm64.cc", 270 "arch/arm64/jni_entrypoints_arm64.S", 271 "arch/arm64/memcmp16_arm64.S", 272 "arch/arm64/quick_entrypoints_arm64.S", 273 "arch/arm64/thread_arm64.cc", 274 "monitor_pool.cc", 275 "arch/arm64/fault_handler_arm64.cc", 276 ], 277 }, 278 x86: { 279 srcs: [ 280 "interpreter/mterp/mterp.cc", 281 ":libart_mterp.x86", 282 "arch/x86/context_x86.cc", 283 "arch/x86/entrypoints_init_x86.cc", 284 "arch/x86/jni_entrypoints_x86.S", 285 "arch/x86/memcmp16_x86.S", 286 "arch/x86/quick_entrypoints_x86.S", 287 "arch/x86/thread_x86.cc", 288 "arch/x86/fault_handler_x86.cc", 289 ], 290 }, 291 x86_64: { 292 srcs: [ 293 // Note that the fault_handler_x86.cc is not a mistake. This file is 294 // shared between the x86 and x86_64 architectures. 295 "interpreter/mterp/mterp.cc", 296 ":libart_mterp.x86_64", 297 "arch/x86_64/context_x86_64.cc", 298 "arch/x86_64/entrypoints_init_x86_64.cc", 299 "arch/x86_64/jni_entrypoints_x86_64.S", 300 "arch/x86_64/memcmp16_x86_64.S", 301 "arch/x86_64/quick_entrypoints_x86_64.S", 302 "arch/x86_64/thread_x86_64.cc", 303 "monitor_pool.cc", 304 "arch/x86/fault_handler_x86.cc", 305 ], 306 }, 307 mips: { 308 srcs: [ 309 "interpreter/mterp/mterp.cc", 310 ":libart_mterp.mips", 311 "arch/mips/context_mips.cc", 312 "arch/mips/entrypoints_init_mips.cc", 313 "arch/mips/jni_entrypoints_mips.S", 314 "arch/mips/memcmp16_mips.S", 315 "arch/mips/quick_entrypoints_mips.S", 316 "arch/mips/thread_mips.cc", 317 "arch/mips/fault_handler_mips.cc", 318 ], 319 }, 320 mips64: { 321 srcs: [ 322 "interpreter/mterp/mterp.cc", 323 ":libart_mterp.mips64", 324 "arch/mips64/context_mips64.cc", 325 "arch/mips64/entrypoints_init_mips64.cc", 326 "arch/mips64/jni_entrypoints_mips64.S", 327 "arch/mips64/memcmp16_mips64.S", 328 "arch/mips64/quick_entrypoints_mips64.S", 329 "arch/mips64/thread_mips64.cc", 330 "monitor_pool.cc", 331 "arch/mips64/fault_handler_mips64.cc", 332 ], 333 }, 334 }, 335 target: { 336 android: { 337 srcs: [ 338 "jdwp/jdwp_adb.cc", 339 "monitor_android.cc", 340 "runtime_android.cc", 341 "thread_android.cc", 342 ], 343 shared_libs: [ 344 "libdl_android", 345 ], 346 static_libs: [ 347 "libz", // For adler32. 348 ], 349 cflags: [ 350 // ART is allowed to link to libicuuc directly 351 // since they are in the same module 352 "-DANDROID_LINK_SHARED_ICU4C", 353 ], 354 }, 355 android_arm: { 356 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 357 }, 358 android_arm64: { 359 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 360 }, 361 android_x86: { 362 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 363 }, 364 android_x86_64: { 365 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS, 366 }, 367 host: { 368 srcs: [ 369 "monitor_linux.cc", 370 "runtime_linux.cc", 371 "thread_linux.cc", 372 ], 373 shared_libs: [ 374 "libz", // For adler32. 375 ], 376 }, 377 }, 378 cflags: ["-DBUILDING_LIBART=1"], 379 generated_sources: ["art_operator_srcs"], 380 // asm_support_gen.h (used by asm_support.h) is generated with cpp-define-generator 381 generated_headers: ["cpp-define-generator-asm-support"], 382 // export our headers so the libart-gtest targets can use it as well. 383 export_generated_headers: ["cpp-define-generator-asm-support"], 384 include_dirs: [ 385 "art/sigchainlib", 386 "external/zlib", 387 ], 388 header_libs: [ 389 "art_cmdlineparser_headers", 390 "cpp-define-generator-definitions", 391 "libicuuc_headers", 392 "libnativehelper_header_only", 393 "jni_platform_headers", 394 ], 395 shared_libs: [ 396 "libartpalette", 397 "libnativebridge", 398 "libnativeloader", 399 "libbacktrace", 400 "liblog", 401 // For common macros. 402 "libbase", 403 ], 404 static: { 405 static_libs: ["libsigchain_dummy"], 406 }, 407 shared: { 408 shared_libs: ["libsigchain"], 409 }, 410 export_include_dirs: ["."], 411 // ART's macros.h depends on libbase's macros.h. 412 // Note: runtime_options.h depends on cmdline. But we don't really want to export this 413 // generically. dex2oat takes care of it itself. 414 export_shared_lib_headers: ["libbase"], 415} 416 417libart_static_cc_defaults { 418 name: "libart_static_base_defaults", 419 static_libs: [ 420 "libartpalette", 421 "libbacktrace", 422 "libbase", 423 "libdexfile_external", // libunwindstack dependency 424 "libdexfile_support", // libunwindstack dependency 425 "liblog", 426 "libnativebridge", 427 "libnativeloader", 428 "libsigchain_dummy", 429 "libunwindstack", 430 "libz", 431 ], 432} 433 434cc_defaults { 435 name: "libart_static_defaults", 436 defaults: [ 437 "libart_static_base_defaults", 438 "libartbase_static_defaults", 439 "libdexfile_static_defaults", 440 "libprofile_static_defaults", 441 ], 442 static_libs: [ 443 "libart", 444 "libelffile", 445 ], 446} 447 448cc_defaults { 449 name: "libartd_static_defaults", 450 defaults: [ 451 "libart_static_base_defaults", 452 "libartbased_static_defaults", 453 "libdexfiled_static_defaults", 454 "libprofiled_static_defaults", 455 ], 456 static_libs: [ 457 "libartd", 458 "libelffiled", 459 ], 460} 461 462gensrcs { 463 name: "art_operator_srcs", 464 cmd: "$(location generate_operator_out) art/runtime $(in) > $(out)", 465 tools: ["generate_operator_out"], 466 srcs: [ 467 "base/callee_save_type.h", 468 "base/locks.h", 469 "class_loader_context.h", 470 "class_status.h", 471 "debugger.h", 472 "gc_root.h", 473 "gc/allocator_type.h", 474 "gc/allocator/rosalloc.h", 475 "gc/collector_type.h", 476 "gc/collector/gc_type.h", 477 "gc/heap.h", 478 "gc/space/region_space.h", 479 "gc/space/space.h", 480 "gc/weak_root_state.h", 481 "image.h", 482 "instrumentation.h", 483 "indirect_reference_table.h", 484 "jdwp_provider.h", 485 "jdwp/jdwp.h", 486 "jdwp/jdwp_constants.h", 487 "lock_word.h", 488 "oat.h", 489 "object_callbacks.h", 490 "process_state.h", 491 "stack.h", 492 "suspend_reason.h", 493 "thread.h", 494 "thread_state.h", 495 "ti/agent.h", 496 "trace.h", 497 "verifier/verifier_enums.h", 498 ], 499 output_extension: "operator_out.cc", 500} 501 502// We always build dex2oat and dependencies, even if the host build is otherwise disabled, since 503// they are used to cross compile for the target. 504 505art_cc_library { 506 name: "libart", 507 defaults: ["libart_defaults"], 508 // Leave the symbols in the shared library so that stack unwinders can 509 // produce meaningful name resolution. 510 strip: { 511 keep_symbols: true, 512 }, 513 whole_static_libs: [ 514 ], 515 static_libs: [ 516 "libelffile", 517 ], 518 shared_libs: [ 519 "libartbase", 520 "libdexfile", 521 "libprofile", 522 ], 523 export_shared_lib_headers: [ 524 "libdexfile", 525 ], 526 target: { 527 android: { 528 lto: { 529 thin: true, 530 }, 531 }, 532 }, 533} 534 535art_cc_library { 536 name: "libartd", 537 defaults: [ 538 "art_debug_defaults", 539 "libart_defaults", 540 ], 541 whole_static_libs: [ 542 ], 543 static_libs: [ 544 "libelffiled", 545 ], 546 shared_libs: [ 547 "libartbased", 548 "libdexfiled", 549 "libprofiled", 550 ], 551 export_shared_lib_headers: [ 552 "libdexfiled", 553 ], 554} 555 556art_cc_library { 557 name: "libart-runtime-gtest", 558 defaults: ["libart-gtest-defaults"], 559 srcs: [ 560 "common_runtime_test.cc", 561 "dexopt_test.cc", 562 ], 563 shared_libs: [ 564 "libartd", 565 "libartbase-art-gtest", 566 "libbase", 567 "libbacktrace", 568 ], 569 header_libs: [ 570 "libnativehelper_header_only", 571 ], 572} 573 574art_cc_test { 575 name: "art_runtime_tests", 576 defaults: [ 577 "art_gtest_defaults", 578 ], 579 srcs: [ 580 "arch/arch_test.cc", 581 "arch/instruction_set_features_test.cc", 582 "arch/memcmp16_test.cc", 583 "arch/stub_test.cc", 584 "arch/arm/instruction_set_features_arm_test.cc", 585 "arch/arm64/instruction_set_features_arm64_test.cc", 586 "arch/mips/instruction_set_features_mips_test.cc", 587 "arch/mips64/instruction_set_features_mips64_test.cc", 588 "arch/x86/instruction_set_features_x86_test.cc", 589 "arch/x86_64/instruction_set_features_x86_64_test.cc", 590 "barrier_test.cc", 591 "base/mutex_test.cc", 592 "base/timing_logger_test.cc", 593 "cha_test.cc", 594 "class_linker_test.cc", 595 "class_loader_context_test.cc", 596 "class_table_test.cc", 597 "compiler_filter_test.cc", 598 "entrypoints/math_entrypoints_test.cc", 599 "entrypoints/quick/quick_trampoline_entrypoints_test.cc", 600 "entrypoints_order_test.cc", 601 "exec_utils_test.cc", 602 "gc/accounting/card_table_test.cc", 603 "gc/accounting/mod_union_table_test.cc", 604 "gc/accounting/space_bitmap_test.cc", 605 "gc/collector/immune_spaces_test.cc", 606 "gc/heap_test.cc", 607 "gc/heap_verification_test.cc", 608 "gc/reference_queue_test.cc", 609 "gc/space/dlmalloc_space_static_test.cc", 610 "gc/space/dlmalloc_space_random_test.cc", 611 "gc/space/image_space_test.cc", 612 "gc/space/large_object_space_test.cc", 613 "gc/space/rosalloc_space_static_test.cc", 614 "gc/space/rosalloc_space_random_test.cc", 615 "gc/space/space_create_test.cc", 616 "gc/system_weak_test.cc", 617 "gc/task_processor_test.cc", 618 "gtest_test.cc", 619 "handle_scope_test.cc", 620 "hidden_api_test.cc", 621 "imtable_test.cc", 622 "indirect_reference_table_test.cc", 623 "instrumentation_test.cc", 624 "intern_table_test.cc", 625 "interpreter/safe_math_test.cc", 626 "interpreter/unstarted_runtime_test.cc", 627 "jdwp/jdwp_options_test.cc", 628 "jit/profiling_info_test.cc", 629 "jni/java_vm_ext_test.cc", 630 "jni/jni_internal_test.cc", 631 "method_handles_test.cc", 632 "mirror/dex_cache_test.cc", 633 "mirror/method_type_test.cc", 634 "mirror/object_test.cc", 635 "mirror/var_handle_test.cc", 636 "monitor_pool_test.cc", 637 "monitor_test.cc", 638 "oat_file_test.cc", 639 "oat_file_assistant_test.cc", 640 "parsed_options_test.cc", 641 "prebuilt_tools_test.cc", 642 "proxy_test.cc", 643 "reference_table_test.cc", 644 "runtime_callbacks_test.cc", 645 "runtime_test.cc", 646 "subtype_check_info_test.cc", 647 "subtype_check_test.cc", 648 "thread_pool_test.cc", 649 "transaction_test.cc", 650 "two_runtimes_test.cc", 651 "vdex_file_test.cc", 652 "verifier/method_verifier_test.cc", 653 "verifier/reg_type_test.cc", 654 ], 655 shared_libs: [ 656 "libbacktrace", 657 ], 658 header_libs: [ 659 "art_cmdlineparser_headers", // For parsed_options_test. 660 ], 661 include_dirs: [ 662 "external/zlib", 663 ], 664} 665 666art_cc_test { 667 name: "art_runtime_compiler_tests", 668 defaults: [ 669 "art_gtest_defaults", 670 ], 671 srcs: [ 672 "reflection_test.cc", 673 "module_exclusion_test.cc", 674 ], 675 shared_libs: [ 676 "libartd-compiler", 677 "libvixld", 678 ], 679} 680 681cc_library_headers { 682 name: "libart_runtime_headers", 683 host_supported: true, 684 export_include_dirs: ["."], 685} 686 687genrule { 688 name: "libart_mterp.arm", 689 out: ["mterp_arm.S"], 690 srcs: ["interpreter/mterp/arm/*.S"], 691 tool_files: ["interpreter/mterp/gen_mterp.py", "interpreter/mterp/common/gen_setup.py"], 692 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 693} 694 695genrule { 696 name: "libart_mterp.arm64", 697 out: ["mterp_arm64.S"], 698 srcs: ["interpreter/mterp/arm64/*.S"], 699 tool_files: ["interpreter/mterp/gen_mterp.py", "interpreter/mterp/common/gen_setup.py"], 700 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 701} 702 703genrule { 704 name: "libart_mterp.mips", 705 out: ["mterp_mips.S"], 706 srcs: ["interpreter/mterp/mips/*.S"], 707 tool_files: ["interpreter/mterp/gen_mterp.py", "interpreter/mterp/common/gen_setup.py"], 708 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 709} 710 711genrule { 712 name: "libart_mterp.mips64", 713 out: ["mterp_mips64.S"], 714 srcs: ["interpreter/mterp/mips64/*.S"], 715 tool_files: ["interpreter/mterp/gen_mterp.py", "interpreter/mterp/common/gen_setup.py"], 716 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 717} 718 719genrule { 720 name: "libart_mterp.x86", 721 out: ["mterp_x86.S"], 722 srcs: ["interpreter/mterp/x86/*.S"], 723 tool_files: ["interpreter/mterp/gen_mterp.py", "interpreter/mterp/common/gen_setup.py"], 724 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 725} 726 727genrule { 728 name: "libart_mterp.x86_64", 729 out: ["mterp_x86_64.S"], 730 srcs: ["interpreter/mterp/x86_64/*.S"], 731 tool_files: ["interpreter/mterp/gen_mterp.py", "interpreter/mterp/common/gen_setup.py"], 732 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)", 733} 734