1*795d594fSAndroid Build Coastguard Worker// 2*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2012 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker// 4*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker// 8*795d594fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker// 10*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker// limitations under the License. 15*795d594fSAndroid Build Coastguard Worker// 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Worker// TODO We should really separate out those files that are actually needed for both variants of an 18*795d594fSAndroid Build Coastguard Worker// architecture into its own category. Currently we just include all of the 32bit variant in the 19*795d594fSAndroid Build Coastguard Worker// 64bit variant. It also might be good to allow one to compile only the 64bit variant without the 20*795d594fSAndroid Build Coastguard Worker// 32bit one. 21*795d594fSAndroid Build Coastguard Worker 22*795d594fSAndroid Build Coastguard Workerpackage { 23*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 24*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 25*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 26*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 27*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 28*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 29*795d594fSAndroid Build Coastguard Worker default_team: "trendy_team_art_performance", 30*795d594fSAndroid Build Coastguard Worker} 31*795d594fSAndroid Build Coastguard Worker 32*795d594fSAndroid Build Coastguard Worker// Common dependencies for libart-compiler_deps and libartd-compiler_deps. 33*795d594fSAndroid Build Coastguard Workercc_defaults { 34*795d594fSAndroid Build Coastguard Worker name: "libart-compiler_common_deps", 35*795d594fSAndroid Build Coastguard Worker shared_libs: [ 36*795d594fSAndroid Build Coastguard Worker "libbase", 37*795d594fSAndroid Build Coastguard Worker "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib. 38*795d594fSAndroid Build Coastguard Worker "libartpalette", 39*795d594fSAndroid Build Coastguard Worker ], 40*795d594fSAndroid Build Coastguard Worker header_libs: [ 41*795d594fSAndroid Build Coastguard Worker "libart_headers", 42*795d594fSAndroid Build Coastguard Worker "libart_generated_headers", 43*795d594fSAndroid Build Coastguard Worker ], 44*795d594fSAndroid Build Coastguard Worker} 45*795d594fSAndroid Build Coastguard Worker 46*795d594fSAndroid Build Coastguard Worker// Dependencies of libart-compiler, used to propagate libart-compiler deps when static linking. 47*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 48*795d594fSAndroid Build Coastguard Worker name: "libart-compiler_deps", 49*795d594fSAndroid Build Coastguard Worker defaults: ["libart-compiler_common_deps"], 50*795d594fSAndroid Build Coastguard Worker shared_libs: [ 51*795d594fSAndroid Build Coastguard Worker "libartbase", 52*795d594fSAndroid Build Coastguard Worker "libprofile", 53*795d594fSAndroid Build Coastguard Worker "libdexfile#impl", 54*795d594fSAndroid Build Coastguard Worker ], 55*795d594fSAndroid Build Coastguard Worker static_libs: ["libelffile"], 56*795d594fSAndroid Build Coastguard Worker codegen: { 57*795d594fSAndroid Build Coastguard Worker arm: { 58*795d594fSAndroid Build Coastguard Worker // VIXL assembly support for ARM targets. 59*795d594fSAndroid Build Coastguard Worker static_libs: [ 60*795d594fSAndroid Build Coastguard Worker "libvixl", 61*795d594fSAndroid Build Coastguard Worker ], 62*795d594fSAndroid Build Coastguard Worker }, 63*795d594fSAndroid Build Coastguard Worker arm64: { 64*795d594fSAndroid Build Coastguard Worker // VIXL assembly support for ARM64 targets. 65*795d594fSAndroid Build Coastguard Worker static_libs: [ 66*795d594fSAndroid Build Coastguard Worker "libvixl", 67*795d594fSAndroid Build Coastguard Worker ], 68*795d594fSAndroid Build Coastguard Worker }, 69*795d594fSAndroid Build Coastguard Worker }, 70*795d594fSAndroid Build Coastguard Worker // In order to save memory on device `art::HGraphVisualizerDisassembler` loads 71*795d594fSAndroid Build Coastguard Worker // `libart-disassembler.so` dynamically. Host builds of `libart-compiler` depend on 72*795d594fSAndroid Build Coastguard Worker // `libart-disassembler` directly with `shared_libs` or `static_libs`. 73*795d594fSAndroid Build Coastguard Worker target: { 74*795d594fSAndroid Build Coastguard Worker host: { 75*795d594fSAndroid Build Coastguard Worker shared: { 76*795d594fSAndroid Build Coastguard Worker shared_libs: [ 77*795d594fSAndroid Build Coastguard Worker "libart-disassembler", 78*795d594fSAndroid Build Coastguard Worker ], 79*795d594fSAndroid Build Coastguard Worker }, 80*795d594fSAndroid Build Coastguard Worker }, 81*795d594fSAndroid Build Coastguard Worker android: { 82*795d594fSAndroid Build Coastguard Worker runtime_libs: [ 83*795d594fSAndroid Build Coastguard Worker "libart-disassembler", 84*795d594fSAndroid Build Coastguard Worker ], 85*795d594fSAndroid Build Coastguard Worker }, 86*795d594fSAndroid Build Coastguard Worker }, 87*795d594fSAndroid Build Coastguard Worker} 88*795d594fSAndroid Build Coastguard Worker 89*795d594fSAndroid Build Coastguard Worker// Dependencies of libartd-compiler, used to propagate libartd-compiler deps when static linking. 90*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 91*795d594fSAndroid Build Coastguard Worker name: "libartd-compiler_deps", 92*795d594fSAndroid Build Coastguard Worker defaults: ["libart-compiler_common_deps"], 93*795d594fSAndroid Build Coastguard Worker shared_libs: [ 94*795d594fSAndroid Build Coastguard Worker "libartbased", 95*795d594fSAndroid Build Coastguard Worker "libprofiled", 96*795d594fSAndroid Build Coastguard Worker "libdexfiled#impl", 97*795d594fSAndroid Build Coastguard Worker ], 98*795d594fSAndroid Build Coastguard Worker static_libs: ["libelffiled"], 99*795d594fSAndroid Build Coastguard Worker codegen: { 100*795d594fSAndroid Build Coastguard Worker arm: { 101*795d594fSAndroid Build Coastguard Worker // VIXL assembly support for ARM targets. 102*795d594fSAndroid Build Coastguard Worker static_libs: [ 103*795d594fSAndroid Build Coastguard Worker "libvixld", 104*795d594fSAndroid Build Coastguard Worker ], 105*795d594fSAndroid Build Coastguard Worker }, 106*795d594fSAndroid Build Coastguard Worker arm64: { 107*795d594fSAndroid Build Coastguard Worker // VIXL assembly support for ARM64 targets. 108*795d594fSAndroid Build Coastguard Worker static_libs: [ 109*795d594fSAndroid Build Coastguard Worker "libvixld", 110*795d594fSAndroid Build Coastguard Worker ], 111*795d594fSAndroid Build Coastguard Worker }, 112*795d594fSAndroid Build Coastguard Worker }, 113*795d594fSAndroid Build Coastguard Worker // In order to save memory on device `art::HGraphVisualizerDisassembler` loads 114*795d594fSAndroid Build Coastguard Worker // `libartd-disassembler.so` dynamically. Host builds of `libartd-compiler` depend on 115*795d594fSAndroid Build Coastguard Worker // `libartd-disassembler` directly with `shared_libs` or `static_libs`. 116*795d594fSAndroid Build Coastguard Worker target: { 117*795d594fSAndroid Build Coastguard Worker host: { 118*795d594fSAndroid Build Coastguard Worker shared: { 119*795d594fSAndroid Build Coastguard Worker shared_libs: [ 120*795d594fSAndroid Build Coastguard Worker "libartd-disassembler", 121*795d594fSAndroid Build Coastguard Worker ], 122*795d594fSAndroid Build Coastguard Worker }, 123*795d594fSAndroid Build Coastguard Worker }, 124*795d594fSAndroid Build Coastguard Worker android: { 125*795d594fSAndroid Build Coastguard Worker runtime_libs: [ 126*795d594fSAndroid Build Coastguard Worker "libartd-disassembler", 127*795d594fSAndroid Build Coastguard Worker ], 128*795d594fSAndroid Build Coastguard Worker }, 129*795d594fSAndroid Build Coastguard Worker }, 130*795d594fSAndroid Build Coastguard Worker} 131*795d594fSAndroid Build Coastguard Worker 132*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 133*795d594fSAndroid Build Coastguard Worker name: "libart-compiler-defaults", 134*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 135*795d594fSAndroid Build Coastguard Worker host_supported: true, 136*795d594fSAndroid Build Coastguard Worker srcs: [ 137*795d594fSAndroid Build Coastguard Worker "debug/elf_debug_writer.cc", 138*795d594fSAndroid Build Coastguard Worker "dex/inline_method_analyser.cc", 139*795d594fSAndroid Build Coastguard Worker "driver/compiler_options.cc", 140*795d594fSAndroid Build Coastguard Worker "driver/dex_compilation_unit.cc", 141*795d594fSAndroid Build Coastguard Worker "jit/jit_compiler.cc", 142*795d594fSAndroid Build Coastguard Worker "jit/jit_logger.cc", 143*795d594fSAndroid Build Coastguard Worker "jni/quick/calling_convention.cc", 144*795d594fSAndroid Build Coastguard Worker "jni/quick/jni_compiler.cc", 145*795d594fSAndroid Build Coastguard Worker "optimizing/block_builder.cc", 146*795d594fSAndroid Build Coastguard Worker "optimizing/block_namer.cc", 147*795d594fSAndroid Build Coastguard Worker "optimizing/bounds_check_elimination.cc", 148*795d594fSAndroid Build Coastguard Worker "optimizing/builder.cc", 149*795d594fSAndroid Build Coastguard Worker "optimizing/cha_guard_optimization.cc", 150*795d594fSAndroid Build Coastguard Worker "optimizing/code_generation_data.cc", 151*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator.cc", 152*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_utils.cc", 153*795d594fSAndroid Build Coastguard Worker "optimizing/code_sinking.cc", 154*795d594fSAndroid Build Coastguard Worker "optimizing/constant_folding.cc", 155*795d594fSAndroid Build Coastguard Worker "optimizing/constructor_fence_redundancy_elimination.cc", 156*795d594fSAndroid Build Coastguard Worker "optimizing/data_type.cc", 157*795d594fSAndroid Build Coastguard Worker "optimizing/dead_code_elimination.cc", 158*795d594fSAndroid Build Coastguard Worker "optimizing/escape.cc", 159*795d594fSAndroid Build Coastguard Worker "optimizing/graph_checker.cc", 160*795d594fSAndroid Build Coastguard Worker "optimizing/graph_visualizer.cc", 161*795d594fSAndroid Build Coastguard Worker "optimizing/gvn.cc", 162*795d594fSAndroid Build Coastguard Worker "optimizing/handle_cache.cc", 163*795d594fSAndroid Build Coastguard Worker "optimizing/induction_var_analysis.cc", 164*795d594fSAndroid Build Coastguard Worker "optimizing/induction_var_range.cc", 165*795d594fSAndroid Build Coastguard Worker "optimizing/inliner.cc", 166*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_builder.cc", 167*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier.cc", 168*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsic_objects.cc", 169*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsics.cc", 170*795d594fSAndroid Build Coastguard Worker "optimizing/licm.cc", 171*795d594fSAndroid Build Coastguard Worker "optimizing/linear_order.cc", 172*795d594fSAndroid Build Coastguard Worker "optimizing/load_store_analysis.cc", 173*795d594fSAndroid Build Coastguard Worker "optimizing/load_store_elimination.cc", 174*795d594fSAndroid Build Coastguard Worker "optimizing/locations.cc", 175*795d594fSAndroid Build Coastguard Worker "optimizing/loop_analysis.cc", 176*795d594fSAndroid Build Coastguard Worker "optimizing/loop_optimization.cc", 177*795d594fSAndroid Build Coastguard Worker "optimizing/nodes.cc", 178*795d594fSAndroid Build Coastguard Worker "optimizing/nodes_vector.cc", 179*795d594fSAndroid Build Coastguard Worker "optimizing/optimization.cc", 180*795d594fSAndroid Build Coastguard Worker "optimizing/optimizing_compiler.cc", 181*795d594fSAndroid Build Coastguard Worker "optimizing/parallel_move_resolver.cc", 182*795d594fSAndroid Build Coastguard Worker "optimizing/prepare_for_register_allocation.cc", 183*795d594fSAndroid Build Coastguard Worker "optimizing/profiling_info_builder.cc", 184*795d594fSAndroid Build Coastguard Worker "optimizing/reference_type_info.cc", 185*795d594fSAndroid Build Coastguard Worker "optimizing/reference_type_propagation.cc", 186*795d594fSAndroid Build Coastguard Worker "optimizing/register_allocation_resolver.cc", 187*795d594fSAndroid Build Coastguard Worker "optimizing/register_allocator.cc", 188*795d594fSAndroid Build Coastguard Worker "optimizing/register_allocator_linear_scan.cc", 189*795d594fSAndroid Build Coastguard Worker "optimizing/select_generator.cc", 190*795d594fSAndroid Build Coastguard Worker "optimizing/scheduler.cc", 191*795d594fSAndroid Build Coastguard Worker "optimizing/sharpening.cc", 192*795d594fSAndroid Build Coastguard Worker "optimizing/side_effects_analysis.cc", 193*795d594fSAndroid Build Coastguard Worker "optimizing/ssa_builder.cc", 194*795d594fSAndroid Build Coastguard Worker "optimizing/ssa_liveness_analysis.cc", 195*795d594fSAndroid Build Coastguard Worker "optimizing/ssa_phi_elimination.cc", 196*795d594fSAndroid Build Coastguard Worker "optimizing/stack_map_stream.cc", 197*795d594fSAndroid Build Coastguard Worker "optimizing/superblock_cloner.cc", 198*795d594fSAndroid Build Coastguard Worker "optimizing/write_barrier_elimination.cc", 199*795d594fSAndroid Build Coastguard Worker "trampolines/trampoline_compiler.cc", 200*795d594fSAndroid Build Coastguard Worker "utils/assembler.cc", 201*795d594fSAndroid Build Coastguard Worker "utils/jni_macro_assembler.cc", 202*795d594fSAndroid Build Coastguard Worker "compiler.cc", 203*795d594fSAndroid Build Coastguard Worker ], 204*795d594fSAndroid Build Coastguard Worker 205*795d594fSAndroid Build Coastguard Worker codegen: { 206*795d594fSAndroid Build Coastguard Worker arm: { 207*795d594fSAndroid Build Coastguard Worker srcs: [ 208*795d594fSAndroid Build Coastguard Worker "jni/quick/arm/calling_convention_arm.cc", 209*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_arm_vixl.cc", 210*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_vector_arm_vixl.cc", 211*795d594fSAndroid Build Coastguard Worker "optimizing/critical_native_abi_fixup_arm.cc", 212*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_arm.cc", 213*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_shared.cc", 214*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsics_arm_vixl.cc", 215*795d594fSAndroid Build Coastguard Worker "optimizing/nodes_shared.cc", 216*795d594fSAndroid Build Coastguard Worker "optimizing/scheduler_arm.cc", 217*795d594fSAndroid Build Coastguard Worker "utils/arm/assembler_arm_vixl.cc", 218*795d594fSAndroid Build Coastguard Worker "utils/arm/constants_arm.cc", 219*795d594fSAndroid Build Coastguard Worker "utils/arm/jni_macro_assembler_arm_vixl.cc", 220*795d594fSAndroid Build Coastguard Worker "utils/arm/managed_register_arm.cc", 221*795d594fSAndroid Build Coastguard Worker ], 222*795d594fSAndroid Build Coastguard Worker }, 223*795d594fSAndroid Build Coastguard Worker arm64: { 224*795d594fSAndroid Build Coastguard Worker srcs: [ 225*795d594fSAndroid Build Coastguard Worker "jni/quick/arm64/calling_convention_arm64.cc", 226*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_arm64.cc", 227*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_vector_arm64_neon.cc", 228*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_vector_arm64_sve.cc", 229*795d594fSAndroid Build Coastguard Worker "optimizing/jit_patches_arm64.cc", 230*795d594fSAndroid Build Coastguard Worker "optimizing/scheduler_arm64.cc", 231*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_arm64.cc", 232*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsics_arm64.cc", 233*795d594fSAndroid Build Coastguard Worker "utils/arm64/assembler_arm64.cc", 234*795d594fSAndroid Build Coastguard Worker "utils/arm64/jni_macro_assembler_arm64.cc", 235*795d594fSAndroid Build Coastguard Worker "utils/arm64/managed_register_arm64.cc", 236*795d594fSAndroid Build Coastguard Worker ], 237*795d594fSAndroid Build Coastguard Worker }, 238*795d594fSAndroid Build Coastguard Worker riscv64: { 239*795d594fSAndroid Build Coastguard Worker srcs: [ 240*795d594fSAndroid Build Coastguard Worker "jni/quick/riscv64/calling_convention_riscv64.cc", 241*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_riscv64.cc", 242*795d594fSAndroid Build Coastguard Worker "optimizing/critical_native_abi_fixup_riscv64.cc", 243*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_riscv64.cc", 244*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsics_riscv64.cc", 245*795d594fSAndroid Build Coastguard Worker "utils/riscv64/assembler_riscv64.cc", 246*795d594fSAndroid Build Coastguard Worker "utils/riscv64/jni_macro_assembler_riscv64.cc", 247*795d594fSAndroid Build Coastguard Worker "utils/riscv64/managed_register_riscv64.cc", 248*795d594fSAndroid Build Coastguard Worker ], 249*795d594fSAndroid Build Coastguard Worker }, 250*795d594fSAndroid Build Coastguard Worker x86: { 251*795d594fSAndroid Build Coastguard Worker srcs: [ 252*795d594fSAndroid Build Coastguard Worker "jni/quick/x86/calling_convention_x86.cc", 253*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_x86.cc", 254*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_vector_x86.cc", 255*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsics_x86.cc", 256*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_x86_shared.cc", 257*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_x86.cc", 258*795d594fSAndroid Build Coastguard Worker "optimizing/pc_relative_fixups_x86.cc", 259*795d594fSAndroid Build Coastguard Worker "optimizing/x86_memory_gen.cc", 260*795d594fSAndroid Build Coastguard Worker "utils/x86/assembler_x86.cc", 261*795d594fSAndroid Build Coastguard Worker "utils/x86/jni_macro_assembler_x86.cc", 262*795d594fSAndroid Build Coastguard Worker "utils/x86/managed_register_x86.cc", 263*795d594fSAndroid Build Coastguard Worker ], 264*795d594fSAndroid Build Coastguard Worker }, 265*795d594fSAndroid Build Coastguard Worker x86_64: { 266*795d594fSAndroid Build Coastguard Worker srcs: [ 267*795d594fSAndroid Build Coastguard Worker "jni/quick/x86_64/calling_convention_x86_64.cc", 268*795d594fSAndroid Build Coastguard Worker "optimizing/intrinsics_x86_64.cc", 269*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_x86_64.cc", 270*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_x86_64.cc", 271*795d594fSAndroid Build Coastguard Worker "optimizing/code_generator_vector_x86_64.cc", 272*795d594fSAndroid Build Coastguard Worker "utils/x86_64/assembler_x86_64.cc", 273*795d594fSAndroid Build Coastguard Worker "utils/x86_64/jni_macro_assembler_x86_64.cc", 274*795d594fSAndroid Build Coastguard Worker "utils/x86_64/managed_register_x86_64.cc", 275*795d594fSAndroid Build Coastguard Worker ], 276*795d594fSAndroid Build Coastguard Worker }, 277*795d594fSAndroid Build Coastguard Worker }, 278*795d594fSAndroid Build Coastguard Worker generated_sources: ["art_compiler_operator_srcs"], 279*795d594fSAndroid Build Coastguard Worker header_libs: [ 280*795d594fSAndroid Build Coastguard Worker "art_cmdlineparser_headers", // For compiler_options. 281*795d594fSAndroid Build Coastguard Worker "art_disassembler_headers", 282*795d594fSAndroid Build Coastguard Worker "libnativehelper_header_only", 283*795d594fSAndroid Build Coastguard Worker ], 284*795d594fSAndroid Build Coastguard Worker 285*795d594fSAndroid Build Coastguard Worker export_include_dirs: ["."], 286*795d594fSAndroid Build Coastguard Worker} 287*795d594fSAndroid Build Coastguard Worker 288*795d594fSAndroid Build Coastguard Workercc_defaults { 289*795d594fSAndroid Build Coastguard Worker name: "libart-compiler_static_base_defaults", 290*795d594fSAndroid Build Coastguard Worker whole_static_libs: [ 291*795d594fSAndroid Build Coastguard Worker "libbase", 292*795d594fSAndroid Build Coastguard Worker ], 293*795d594fSAndroid Build Coastguard Worker} 294*795d594fSAndroid Build Coastguard Worker 295*795d594fSAndroid Build Coastguard Workergensrcs { 296*795d594fSAndroid Build Coastguard Worker name: "art_compiler_operator_srcs", 297*795d594fSAndroid Build Coastguard Worker cmd: "$(location generate_operator_out) art/compiler $(in) > $(out)", 298*795d594fSAndroid Build Coastguard Worker tools: ["generate_operator_out"], 299*795d594fSAndroid Build Coastguard Worker srcs: [ 300*795d594fSAndroid Build Coastguard Worker "linker/linker_patch.h", 301*795d594fSAndroid Build Coastguard Worker "optimizing/locations.h", 302*795d594fSAndroid Build Coastguard Worker "optimizing/nodes.h", 303*795d594fSAndroid Build Coastguard Worker "optimizing/optimizing_compiler_stats.h", 304*795d594fSAndroid Build Coastguard Worker 305*795d594fSAndroid Build Coastguard Worker "utils/arm/constants_arm.h", 306*795d594fSAndroid Build Coastguard Worker ], 307*795d594fSAndroid Build Coastguard Worker output_extension: "operator_out.cc", 308*795d594fSAndroid Build Coastguard Worker} 309*795d594fSAndroid Build Coastguard Worker 310*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 311*795d594fSAndroid Build Coastguard Worker name: "libart-compiler", 312*795d594fSAndroid Build Coastguard Worker defaults: [ 313*795d594fSAndroid Build Coastguard Worker "libart-compiler-defaults", 314*795d594fSAndroid Build Coastguard Worker "libart-compiler_deps", 315*795d594fSAndroid Build Coastguard Worker ], 316*795d594fSAndroid Build Coastguard Worker target: { 317*795d594fSAndroid Build Coastguard Worker android: { 318*795d594fSAndroid Build Coastguard Worker lto: { 319*795d594fSAndroid Build Coastguard Worker thin: true, 320*795d594fSAndroid Build Coastguard Worker }, 321*795d594fSAndroid Build Coastguard Worker }, 322*795d594fSAndroid Build Coastguard Worker }, 323*795d594fSAndroid Build Coastguard Worker apex_available: [ 324*795d594fSAndroid Build Coastguard Worker "com.android.art", 325*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 326*795d594fSAndroid Build Coastguard Worker "test_broken_com.android.art", 327*795d594fSAndroid Build Coastguard Worker ], 328*795d594fSAndroid Build Coastguard Worker} 329*795d594fSAndroid Build Coastguard Worker 330*795d594fSAndroid Build Coastguard Worker// For static linking with gtests. Same as `libart-compiler`, but without LTO. 331*795d594fSAndroid Build Coastguard Worker// When gtests static link a library with LTO enabled, they are also built with LTO. 332*795d594fSAndroid Build Coastguard Worker// This makes the build process use a lot of memory. b/277207452 333*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 334*795d594fSAndroid Build Coastguard Worker name: "libart-compiler-for-test", 335*795d594fSAndroid Build Coastguard Worker defaults: [ 336*795d594fSAndroid Build Coastguard Worker "libart-compiler-defaults", 337*795d594fSAndroid Build Coastguard Worker "libart-compiler_deps", 338*795d594fSAndroid Build Coastguard Worker ], 339*795d594fSAndroid Build Coastguard Worker} 340*795d594fSAndroid Build Coastguard Worker 341*795d594fSAndroid Build Coastguard Workercc_defaults { 342*795d594fSAndroid Build Coastguard Worker name: "libart-compiler_static_defaults", 343*795d594fSAndroid Build Coastguard Worker defaults: [ 344*795d594fSAndroid Build Coastguard Worker "libart-compiler_static_base_defaults", 345*795d594fSAndroid Build Coastguard Worker "libart-disassembler_static_defaults", 346*795d594fSAndroid Build Coastguard Worker "libartbase_static_defaults", 347*795d594fSAndroid Build Coastguard Worker "libdexfile_static_defaults", 348*795d594fSAndroid Build Coastguard Worker "libprofile_static_defaults", 349*795d594fSAndroid Build Coastguard Worker ], 350*795d594fSAndroid Build Coastguard Worker whole_static_libs: ["libart-compiler"], 351*795d594fSAndroid Build Coastguard Worker} 352*795d594fSAndroid Build Coastguard Worker 353*795d594fSAndroid Build Coastguard Worker// libart-compiler_static_defaults for standalone gtests. 354*795d594fSAndroid Build Coastguard Worker// Uses libart-compiler-for-test instead of libart-compiler. 355*795d594fSAndroid Build Coastguard Workercc_defaults { 356*795d594fSAndroid Build Coastguard Worker name: "libart-compiler-for-test_static_defaults", 357*795d594fSAndroid Build Coastguard Worker defaults: [ 358*795d594fSAndroid Build Coastguard Worker "libart-compiler_static_base_defaults", 359*795d594fSAndroid Build Coastguard Worker "libart-disassembler_static_defaults", 360*795d594fSAndroid Build Coastguard Worker "libartbase_static_defaults", 361*795d594fSAndroid Build Coastguard Worker "libdexfile_static_defaults", 362*795d594fSAndroid Build Coastguard Worker "libprofile_static_defaults", 363*795d594fSAndroid Build Coastguard Worker ], 364*795d594fSAndroid Build Coastguard Worker whole_static_libs: ["libart-compiler-for-test"], 365*795d594fSAndroid Build Coastguard Worker} 366*795d594fSAndroid Build Coastguard Worker 367*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 368*795d594fSAndroid Build Coastguard Worker name: "libartd-compiler", 369*795d594fSAndroid Build Coastguard Worker defaults: [ 370*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 371*795d594fSAndroid Build Coastguard Worker "libart-compiler-defaults", 372*795d594fSAndroid Build Coastguard Worker "libartd-compiler_deps", 373*795d594fSAndroid Build Coastguard Worker ], 374*795d594fSAndroid Build Coastguard Worker apex_available: [ 375*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 376*795d594fSAndroid Build Coastguard Worker ], 377*795d594fSAndroid Build Coastguard Worker} 378*795d594fSAndroid Build Coastguard Worker 379*795d594fSAndroid Build Coastguard Workercc_defaults { 380*795d594fSAndroid Build Coastguard Worker name: "libartd-compiler_static_defaults", 381*795d594fSAndroid Build Coastguard Worker defaults: [ 382*795d594fSAndroid Build Coastguard Worker "libart-compiler_static_base_defaults", 383*795d594fSAndroid Build Coastguard Worker "libartbased_static_defaults", 384*795d594fSAndroid Build Coastguard Worker "libartd-disassembler_static_defaults", 385*795d594fSAndroid Build Coastguard Worker "libdexfiled_static_defaults", 386*795d594fSAndroid Build Coastguard Worker "libprofiled_static_defaults", 387*795d594fSAndroid Build Coastguard Worker ], 388*795d594fSAndroid Build Coastguard Worker whole_static_libs: ["libartd-compiler"], 389*795d594fSAndroid Build Coastguard Worker} 390*795d594fSAndroid Build Coastguard Worker 391*795d594fSAndroid Build Coastguard Worker// Export headers required by `libart-runtime` to use JIT from `libart-compiler`. 392*795d594fSAndroid Build Coastguard Workercc_library_headers { 393*795d594fSAndroid Build Coastguard Worker name: "libart-compiler_jit_headers", 394*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 395*795d594fSAndroid Build Coastguard Worker host_supported: true, 396*795d594fSAndroid Build Coastguard Worker export_include_dirs: ["export"], 397*795d594fSAndroid Build Coastguard Worker apex_available: [ 398*795d594fSAndroid Build Coastguard Worker "com.android.art", 399*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 400*795d594fSAndroid Build Coastguard Worker "test_broken_com.android.art", 401*795d594fSAndroid Build Coastguard Worker ], 402*795d594fSAndroid Build Coastguard Worker} 403*795d594fSAndroid Build Coastguard Worker 404*795d594fSAndroid Build Coastguard Worker// Properties common to `libart-compiler-gtest` and `libartd-compiler-gtest`. 405*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 406*795d594fSAndroid Build Coastguard Worker name: "libart-compiler-gtest-common", 407*795d594fSAndroid Build Coastguard Worker srcs: [ 408*795d594fSAndroid Build Coastguard Worker "common_compiler_test.cc", 409*795d594fSAndroid Build Coastguard Worker ], 410*795d594fSAndroid Build Coastguard Worker header_libs: [ 411*795d594fSAndroid Build Coastguard Worker "libart_headers", 412*795d594fSAndroid Build Coastguard Worker ], 413*795d594fSAndroid Build Coastguard Worker} 414*795d594fSAndroid Build Coastguard Worker 415*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 416*795d594fSAndroid Build Coastguard Worker name: "libart-compiler-gtest", 417*795d594fSAndroid Build Coastguard Worker defaults: [ 418*795d594fSAndroid Build Coastguard Worker "libart-gtest-defaults", 419*795d594fSAndroid Build Coastguard Worker "libart-compiler-gtest-common", 420*795d594fSAndroid Build Coastguard Worker "libart-compiler-for-test_static_defaults", 421*795d594fSAndroid Build Coastguard Worker ], 422*795d594fSAndroid Build Coastguard Worker} 423*795d594fSAndroid Build Coastguard Worker 424*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 425*795d594fSAndroid Build Coastguard Worker name: "libartd-compiler-gtest", 426*795d594fSAndroid Build Coastguard Worker defaults: [ 427*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 428*795d594fSAndroid Build Coastguard Worker "libart-gtest-defaults", 429*795d594fSAndroid Build Coastguard Worker "libart-compiler-gtest-common", 430*795d594fSAndroid Build Coastguard Worker // Note that `libartd-compiler-for-test` is not required here, because 431*795d594fSAndroid Build Coastguard Worker // `libartd-compiler` doesn't use LTO. 432*795d594fSAndroid Build Coastguard Worker "libartd-compiler_static_defaults", 433*795d594fSAndroid Build Coastguard Worker ], 434*795d594fSAndroid Build Coastguard Worker} 435*795d594fSAndroid Build Coastguard Worker 436*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 437*795d594fSAndroid Build Coastguard Worker name: "art_compiler_tests_defaults", 438*795d594fSAndroid Build Coastguard Worker device_common_data: [ 439*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ExceptionHandle", 440*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Interfaces", 441*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Main", 442*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MyClassNatives", 443*795d594fSAndroid Build Coastguard Worker ], 444*795d594fSAndroid Build Coastguard Worker tidy_timeout_srcs: [ 445*795d594fSAndroid Build Coastguard Worker "jni/jni_compiler_test.cc", 446*795d594fSAndroid Build Coastguard Worker "optimizing/codegen_test.cc", 447*795d594fSAndroid Build Coastguard Worker "optimizing/constant_folding_test.cc", 448*795d594fSAndroid Build Coastguard Worker "optimizing/induction_var_range_test.cc", 449*795d594fSAndroid Build Coastguard Worker "optimizing/load_store_elimination_test.cc", 450*795d594fSAndroid Build Coastguard Worker "optimizing/ssa_test.cc", 451*795d594fSAndroid Build Coastguard Worker ], 452*795d594fSAndroid Build Coastguard Worker srcs: [ 453*795d594fSAndroid Build Coastguard Worker "compiler_reflection_test.cc", 454*795d594fSAndroid Build Coastguard Worker "debug/dwarf/dwarf_test.cc", 455*795d594fSAndroid Build Coastguard Worker "debug/src_map_elem_test.cc", 456*795d594fSAndroid Build Coastguard Worker "exception_test.cc", 457*795d594fSAndroid Build Coastguard Worker "jni/jni_compiler_test.cc", 458*795d594fSAndroid Build Coastguard Worker "linker/linker_patch_test.cc", 459*795d594fSAndroid Build Coastguard Worker "linker/output_stream_test.cc", 460*795d594fSAndroid Build Coastguard Worker "oat/jni_stub_hash_map_test.cc", 461*795d594fSAndroid Build Coastguard Worker "optimizing/bounds_check_elimination_test.cc", 462*795d594fSAndroid Build Coastguard Worker "optimizing/constant_folding_test.cc", 463*795d594fSAndroid Build Coastguard Worker "optimizing/data_type_test.cc", 464*795d594fSAndroid Build Coastguard Worker "optimizing/dead_code_elimination_test.cc", 465*795d594fSAndroid Build Coastguard Worker "optimizing/dominator_test.cc", 466*795d594fSAndroid Build Coastguard Worker "optimizing/find_loops_test.cc", 467*795d594fSAndroid Build Coastguard Worker "optimizing/graph_checker_test.cc", 468*795d594fSAndroid Build Coastguard Worker "optimizing/graph_test.cc", 469*795d594fSAndroid Build Coastguard Worker "optimizing/gvn_test.cc", 470*795d594fSAndroid Build Coastguard Worker "optimizing/induction_var_analysis_test.cc", 471*795d594fSAndroid Build Coastguard Worker "optimizing/induction_var_range_test.cc", 472*795d594fSAndroid Build Coastguard Worker "optimizing/licm_test.cc", 473*795d594fSAndroid Build Coastguard Worker "optimizing/linearize_test.cc", 474*795d594fSAndroid Build Coastguard Worker "optimizing/live_interval_test.cc", 475*795d594fSAndroid Build Coastguard Worker "optimizing/live_ranges_test.cc", 476*795d594fSAndroid Build Coastguard Worker "optimizing/liveness_test.cc", 477*795d594fSAndroid Build Coastguard Worker "optimizing/loop_optimization_test.cc", 478*795d594fSAndroid Build Coastguard Worker "optimizing/nodes_test.cc", 479*795d594fSAndroid Build Coastguard Worker "optimizing/nodes_vector_test.cc", 480*795d594fSAndroid Build Coastguard Worker "optimizing/parallel_move_test.cc", 481*795d594fSAndroid Build Coastguard Worker "optimizing/pretty_printer_test.cc", 482*795d594fSAndroid Build Coastguard Worker "optimizing/reference_type_propagation_test.cc", 483*795d594fSAndroid Build Coastguard Worker "optimizing/select_generator_test.cc", 484*795d594fSAndroid Build Coastguard Worker "optimizing/side_effects_test.cc", 485*795d594fSAndroid Build Coastguard Worker "optimizing/ssa_liveness_analysis_test.cc", 486*795d594fSAndroid Build Coastguard Worker "optimizing/ssa_test.cc", 487*795d594fSAndroid Build Coastguard Worker "optimizing/stack_map_test.cc", 488*795d594fSAndroid Build Coastguard Worker "optimizing/superblock_cloner_test.cc", 489*795d594fSAndroid Build Coastguard Worker "optimizing/suspend_check_test.cc", 490*795d594fSAndroid Build Coastguard Worker "utils/atomic_dex_ref_map_test.cc", 491*795d594fSAndroid Build Coastguard Worker "utils/dedupe_set_test.cc", 492*795d594fSAndroid Build Coastguard Worker 493*795d594fSAndroid Build Coastguard Worker "optimizing/codegen_test.cc", 494*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_test.cc", 495*795d594fSAndroid Build Coastguard Worker "optimizing/load_store_analysis_test.cc", 496*795d594fSAndroid Build Coastguard Worker "optimizing/load_store_elimination_test.cc", 497*795d594fSAndroid Build Coastguard Worker "optimizing/scheduler_test.cc", 498*795d594fSAndroid Build Coastguard Worker ], 499*795d594fSAndroid Build Coastguard Worker 500*795d594fSAndroid Build Coastguard Worker codegen: { 501*795d594fSAndroid Build Coastguard Worker arm: { 502*795d594fSAndroid Build Coastguard Worker srcs: [ 503*795d594fSAndroid Build Coastguard Worker "utils/arm/managed_register_arm_test.cc", 504*795d594fSAndroid Build Coastguard Worker ], 505*795d594fSAndroid Build Coastguard Worker }, 506*795d594fSAndroid Build Coastguard Worker arm64: { 507*795d594fSAndroid Build Coastguard Worker srcs: [ 508*795d594fSAndroid Build Coastguard Worker "utils/arm64/managed_register_arm64_test.cc", 509*795d594fSAndroid Build Coastguard Worker ], 510*795d594fSAndroid Build Coastguard Worker }, 511*795d594fSAndroid Build Coastguard Worker riscv64: { 512*795d594fSAndroid Build Coastguard Worker srcs: [ 513*795d594fSAndroid Build Coastguard Worker "optimizing/instruction_simplifier_riscv64_test.cc", 514*795d594fSAndroid Build Coastguard Worker "utils/riscv64/managed_register_riscv64_test.cc", 515*795d594fSAndroid Build Coastguard Worker ], 516*795d594fSAndroid Build Coastguard Worker }, 517*795d594fSAndroid Build Coastguard Worker x86: { 518*795d594fSAndroid Build Coastguard Worker srcs: [ 519*795d594fSAndroid Build Coastguard Worker "utils/x86/managed_register_x86_test.cc", 520*795d594fSAndroid Build Coastguard Worker 521*795d594fSAndroid Build Coastguard Worker // This test is testing architecture-independent functionality, 522*795d594fSAndroid Build Coastguard Worker // but happens to use x86 codegen as part of the test. 523*795d594fSAndroid Build Coastguard Worker "optimizing/register_allocator_test.cc", 524*795d594fSAndroid Build Coastguard Worker ], 525*795d594fSAndroid Build Coastguard Worker }, 526*795d594fSAndroid Build Coastguard Worker x86_64: { 527*795d594fSAndroid Build Coastguard Worker srcs: [ 528*795d594fSAndroid Build Coastguard Worker // Is this test a bit-rotten copy of the x86 test? b/77951326 529*795d594fSAndroid Build Coastguard Worker // "utils/x86_64/managed_register_x86_64_test.cc", 530*795d594fSAndroid Build Coastguard Worker ], 531*795d594fSAndroid Build Coastguard Worker }, 532*795d594fSAndroid Build Coastguard Worker }, 533*795d594fSAndroid Build Coastguard Worker 534*795d594fSAndroid Build Coastguard Worker header_libs: [ 535*795d594fSAndroid Build Coastguard Worker "libart_simulator_headers", 536*795d594fSAndroid Build Coastguard Worker "libnativehelper_header_only", 537*795d594fSAndroid Build Coastguard Worker ], 538*795d594fSAndroid Build Coastguard Worker 539*795d594fSAndroid Build Coastguard Worker target: { 540*795d594fSAndroid Build Coastguard Worker host: { 541*795d594fSAndroid Build Coastguard Worker shared_libs: [ 542*795d594fSAndroid Build Coastguard Worker "libartd-simulator", 543*795d594fSAndroid Build Coastguard Worker ], 544*795d594fSAndroid Build Coastguard Worker required: ["art_boot_images"], 545*795d594fSAndroid Build Coastguard Worker }, 546*795d594fSAndroid Build Coastguard Worker }, 547*795d594fSAndroid Build Coastguard Worker} 548*795d594fSAndroid Build Coastguard Worker 549*795d594fSAndroid Build Coastguard Worker// Version of ART gtest `art_compiler_tests` bundled with the ART APEX on target. 550*795d594fSAndroid Build Coastguard Worker// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete. 551*795d594fSAndroid Build Coastguard Workerart_cc_test { 552*795d594fSAndroid Build Coastguard Worker name: "art_compiler_tests", 553*795d594fSAndroid Build Coastguard Worker defaults: [ 554*795d594fSAndroid Build Coastguard Worker "art_gtest_defaults", 555*795d594fSAndroid Build Coastguard Worker "art_compiler_tests_defaults", 556*795d594fSAndroid Build Coastguard Worker ], 557*795d594fSAndroid Build Coastguard Worker static_libs: [ 558*795d594fSAndroid Build Coastguard Worker "libartd-simulator-container", 559*795d594fSAndroid Build Coastguard Worker ], 560*795d594fSAndroid Build Coastguard Worker} 561*795d594fSAndroid Build Coastguard Worker 562*795d594fSAndroid Build Coastguard Worker// Standalone version of ART gtest `art_compiler_tests`, not bundled with the ART APEX on target. 563*795d594fSAndroid Build Coastguard Workerart_cc_test { 564*795d594fSAndroid Build Coastguard Worker name: "art_standalone_compiler_tests", 565*795d594fSAndroid Build Coastguard Worker defaults: [ 566*795d594fSAndroid Build Coastguard Worker "art_standalone_gtest_defaults", 567*795d594fSAndroid Build Coastguard Worker "art_compiler_tests_defaults", 568*795d594fSAndroid Build Coastguard Worker ], 569*795d594fSAndroid Build Coastguard Worker data: [":generate-boot-image"], 570*795d594fSAndroid Build Coastguard Worker static_libs: [ 571*795d594fSAndroid Build Coastguard Worker "libart-simulator-container", 572*795d594fSAndroid Build Coastguard Worker ], 573*795d594fSAndroid Build Coastguard Worker test_config: "art_standalone_compiler_tests.xml", 574*795d594fSAndroid Build Coastguard Worker} 575*795d594fSAndroid Build Coastguard Worker 576*795d594fSAndroid Build Coastguard Workerart_cc_test { 577*795d594fSAndroid Build Coastguard Worker name: "art_compiler_host_tests", 578*795d594fSAndroid Build Coastguard Worker device_supported: false, 579*795d594fSAndroid Build Coastguard Worker defaults: [ 580*795d594fSAndroid Build Coastguard Worker "art_gtest_defaults", 581*795d594fSAndroid Build Coastguard Worker ], 582*795d594fSAndroid Build Coastguard Worker srcs: [ 583*795d594fSAndroid Build Coastguard Worker "jni/jni_cfi_test.cc", 584*795d594fSAndroid Build Coastguard Worker "optimizing/optimizing_cfi_test.cc", 585*795d594fSAndroid Build Coastguard Worker ], 586*795d594fSAndroid Build Coastguard Worker tidy_timeout_srcs: [ 587*795d594fSAndroid Build Coastguard Worker "utils/x86/assembler_x86_test.cc", 588*795d594fSAndroid Build Coastguard Worker "utils/x86_64/assembler_x86_64_test.cc", 589*795d594fSAndroid Build Coastguard Worker ], 590*795d594fSAndroid Build Coastguard Worker codegen: { 591*795d594fSAndroid Build Coastguard Worker arm: { 592*795d594fSAndroid Build Coastguard Worker srcs: [ 593*795d594fSAndroid Build Coastguard Worker "utils/assembler_thumb_test.cc", 594*795d594fSAndroid Build Coastguard Worker ], 595*795d594fSAndroid Build Coastguard Worker }, 596*795d594fSAndroid Build Coastguard Worker riscv64: { 597*795d594fSAndroid Build Coastguard Worker srcs: [ 598*795d594fSAndroid Build Coastguard Worker "utils/riscv64/assembler_riscv64_test.cc", 599*795d594fSAndroid Build Coastguard Worker "utils/riscv64/jni_macro_assembler_riscv64_test.cc", 600*795d594fSAndroid Build Coastguard Worker ], 601*795d594fSAndroid Build Coastguard Worker }, 602*795d594fSAndroid Build Coastguard Worker x86: { 603*795d594fSAndroid Build Coastguard Worker srcs: [ 604*795d594fSAndroid Build Coastguard Worker "utils/x86/assembler_x86_test.cc", 605*795d594fSAndroid Build Coastguard Worker ], 606*795d594fSAndroid Build Coastguard Worker }, 607*795d594fSAndroid Build Coastguard Worker x86_64: { 608*795d594fSAndroid Build Coastguard Worker srcs: [ 609*795d594fSAndroid Build Coastguard Worker "utils/x86_64/assembler_x86_64_test.cc", 610*795d594fSAndroid Build Coastguard Worker ], 611*795d594fSAndroid Build Coastguard Worker }, 612*795d594fSAndroid Build Coastguard Worker }, 613*795d594fSAndroid Build Coastguard Worker static_libs: [ 614*795d594fSAndroid Build Coastguard Worker "libvixld", 615*795d594fSAndroid Build Coastguard Worker ], 616*795d594fSAndroid Build Coastguard Worker} 617