1*795d594fSAndroid Build Coastguard Worker// 2*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2011 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 Workerpackage { 18*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 19*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 20*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 21*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 22*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 23*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 24*795d594fSAndroid Build Coastguard Worker default_team: "trendy_team_art_performance", 25*795d594fSAndroid Build Coastguard Worker} 26*795d594fSAndroid Build Coastguard Worker 27*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 28*795d594fSAndroid Build Coastguard Worker name: "libart-dex2oat-defaults", 29*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 30*795d594fSAndroid Build Coastguard Worker host_supported: true, 31*795d594fSAndroid Build Coastguard Worker srcs: [ 32*795d594fSAndroid Build Coastguard Worker "aot_class_linker.cc", 33*795d594fSAndroid Build Coastguard Worker "dex/quick_compiler_callbacks.cc", 34*795d594fSAndroid Build Coastguard Worker "dex/verification_results.cc", 35*795d594fSAndroid Build Coastguard Worker "driver/compiled_method.cc", 36*795d594fSAndroid Build Coastguard Worker "driver/compiled_method_storage.cc", 37*795d594fSAndroid Build Coastguard Worker "driver/compiler_driver.cc", 38*795d594fSAndroid Build Coastguard Worker "interpreter/interpreter_switch_impl1.cc", 39*795d594fSAndroid Build Coastguard Worker "linker/code_info_table_deduper.cc", 40*795d594fSAndroid Build Coastguard Worker "linker/elf_writer.cc", 41*795d594fSAndroid Build Coastguard Worker "linker/elf_writer_quick.cc", 42*795d594fSAndroid Build Coastguard Worker "linker/image_writer.cc", 43*795d594fSAndroid Build Coastguard Worker "linker/multi_oat_relative_patcher.cc", 44*795d594fSAndroid Build Coastguard Worker "linker/oat_writer.cc", 45*795d594fSAndroid Build Coastguard Worker "linker/relative_patcher.cc", 46*795d594fSAndroid Build Coastguard Worker "sdk_checker.cc", 47*795d594fSAndroid Build Coastguard Worker "transaction.cc", 48*795d594fSAndroid Build Coastguard Worker "utils/swap_space.cc", 49*795d594fSAndroid Build Coastguard Worker ], 50*795d594fSAndroid Build Coastguard Worker 51*795d594fSAndroid Build Coastguard Worker codegen: { 52*795d594fSAndroid Build Coastguard Worker arm: { 53*795d594fSAndroid Build Coastguard Worker srcs: [ 54*795d594fSAndroid Build Coastguard Worker "linker/arm/relative_patcher_arm_base.cc", 55*795d594fSAndroid Build Coastguard Worker "linker/arm/relative_patcher_thumb2.cc", 56*795d594fSAndroid Build Coastguard Worker ], 57*795d594fSAndroid Build Coastguard Worker }, 58*795d594fSAndroid Build Coastguard Worker arm64: { 59*795d594fSAndroid Build Coastguard Worker srcs: [ 60*795d594fSAndroid Build Coastguard Worker "linker/arm64/relative_patcher_arm64.cc", 61*795d594fSAndroid Build Coastguard Worker ], 62*795d594fSAndroid Build Coastguard Worker }, 63*795d594fSAndroid Build Coastguard Worker riscv64: { 64*795d594fSAndroid Build Coastguard Worker srcs: [ 65*795d594fSAndroid Build Coastguard Worker "linker/riscv64/relative_patcher_riscv64.cc", 66*795d594fSAndroid Build Coastguard Worker ], 67*795d594fSAndroid Build Coastguard Worker }, 68*795d594fSAndroid Build Coastguard Worker x86: { 69*795d594fSAndroid Build Coastguard Worker srcs: [ 70*795d594fSAndroid Build Coastguard Worker "linker/x86/relative_patcher_x86.cc", 71*795d594fSAndroid Build Coastguard Worker "linker/x86/relative_patcher_x86_base.cc", 72*795d594fSAndroid Build Coastguard Worker ], 73*795d594fSAndroid Build Coastguard Worker }, 74*795d594fSAndroid Build Coastguard Worker x86_64: { 75*795d594fSAndroid Build Coastguard Worker srcs: [ 76*795d594fSAndroid Build Coastguard Worker "linker/x86_64/relative_patcher_x86_64.cc", 77*795d594fSAndroid Build Coastguard Worker ], 78*795d594fSAndroid Build Coastguard Worker }, 79*795d594fSAndroid Build Coastguard Worker }, 80*795d594fSAndroid Build Coastguard Worker 81*795d594fSAndroid Build Coastguard Worker generated_sources: ["art_dex2oat_operator_srcs"], 82*795d594fSAndroid Build Coastguard Worker shared_libs: [ 83*795d594fSAndroid Build Coastguard Worker "libbase", 84*795d594fSAndroid Build Coastguard Worker "liblog", 85*795d594fSAndroid Build Coastguard Worker "liblz4", 86*795d594fSAndroid Build Coastguard Worker "libz", 87*795d594fSAndroid Build Coastguard Worker ], 88*795d594fSAndroid Build Coastguard Worker static_libs: [ 89*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", // For SHA-1 checksumming of build ID 90*795d594fSAndroid Build Coastguard Worker ], 91*795d594fSAndroid Build Coastguard Worker export_include_dirs: ["."], 92*795d594fSAndroid Build Coastguard Worker} 93*795d594fSAndroid Build Coastguard Worker 94*795d594fSAndroid Build Coastguard Workergensrcs { 95*795d594fSAndroid Build Coastguard Worker name: "art_dex2oat_operator_srcs", 96*795d594fSAndroid Build Coastguard Worker cmd: "$(location generate_operator_out) art/dex2oat $(in) > $(out)", 97*795d594fSAndroid Build Coastguard Worker tools: ["generate_operator_out"], 98*795d594fSAndroid Build Coastguard Worker srcs: [ 99*795d594fSAndroid Build Coastguard Worker "linker/image_writer.h", 100*795d594fSAndroid Build Coastguard Worker ], 101*795d594fSAndroid Build Coastguard Worker output_extension: "operator_out.cc", 102*795d594fSAndroid Build Coastguard Worker} 103*795d594fSAndroid Build Coastguard Worker 104*795d594fSAndroid Build Coastguard Workercc_defaults { 105*795d594fSAndroid Build Coastguard Worker name: "libart-dex2oat_static_base_defaults", 106*795d594fSAndroid Build Coastguard Worker whole_static_libs: [ 107*795d594fSAndroid Build Coastguard Worker "libbase", 108*795d594fSAndroid Build Coastguard Worker "liblog", 109*795d594fSAndroid Build Coastguard Worker "liblz4", 110*795d594fSAndroid Build Coastguard Worker "libz", 111*795d594fSAndroid Build Coastguard Worker ], 112*795d594fSAndroid Build Coastguard Worker static_libs: [ 113*795d594fSAndroid Build Coastguard Worker // Cannot use whole_static_libs for libcrypto_for_art since it's a 114*795d594fSAndroid Build Coastguard Worker // subset that contains unused functions that depend on missing symbols. 115*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 116*795d594fSAndroid Build Coastguard Worker ], 117*795d594fSAndroid Build Coastguard Worker} 118*795d594fSAndroid Build Coastguard Worker 119*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 120*795d594fSAndroid Build Coastguard Worker name: "libart-dex2oat", 121*795d594fSAndroid Build Coastguard Worker defaults: ["libart-dex2oat-defaults"], 122*795d594fSAndroid Build Coastguard Worker shared_libs: [ 123*795d594fSAndroid Build Coastguard Worker "libart", 124*795d594fSAndroid Build Coastguard Worker "libartpalette", 125*795d594fSAndroid Build Coastguard Worker "libprofile", 126*795d594fSAndroid Build Coastguard Worker ], 127*795d594fSAndroid Build Coastguard Worker static_libs: [ 128*795d594fSAndroid Build Coastguard Worker "libelffile", 129*795d594fSAndroid Build Coastguard Worker ], 130*795d594fSAndroid Build Coastguard Worker apex_available: [ 131*795d594fSAndroid Build Coastguard Worker "com.android.art", 132*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 133*795d594fSAndroid Build Coastguard Worker ], 134*795d594fSAndroid Build Coastguard Worker} 135*795d594fSAndroid Build Coastguard Worker 136*795d594fSAndroid Build Coastguard Workercc_defaults { 137*795d594fSAndroid Build Coastguard Worker name: "libart-dex2oat_static_defaults", 138*795d594fSAndroid Build Coastguard Worker defaults: [ 139*795d594fSAndroid Build Coastguard Worker "libart-dex2oat_static_base_defaults", 140*795d594fSAndroid Build Coastguard Worker "libart_static_defaults", 141*795d594fSAndroid Build Coastguard Worker "libprofile_static_defaults", 142*795d594fSAndroid Build Coastguard Worker ], 143*795d594fSAndroid Build Coastguard Worker whole_static_libs: [ 144*795d594fSAndroid Build Coastguard Worker "libart-dex2oat", 145*795d594fSAndroid Build Coastguard Worker ], 146*795d594fSAndroid Build Coastguard Worker} 147*795d594fSAndroid Build Coastguard Worker 148*795d594fSAndroid Build Coastguard Worker// Collect all the static defaults and build a host-only static library, which 149*795d594fSAndroid Build Coastguard Worker// is then used for the (mostly) static host dex2oat binary. 150*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 151*795d594fSAndroid Build Coastguard Worker name: "libdex2oat_static", 152*795d594fSAndroid Build Coastguard Worker device_supported: false, 153*795d594fSAndroid Build Coastguard Worker host_supported: true, 154*795d594fSAndroid Build Coastguard Worker defaults: [ 155*795d594fSAndroid Build Coastguard Worker "art_defaults", 156*795d594fSAndroid Build Coastguard Worker "libart-dex2oat_static_defaults", 157*795d594fSAndroid Build Coastguard Worker "libart_static_defaults", 158*795d594fSAndroid Build Coastguard Worker "libartbase_static_defaults", 159*795d594fSAndroid Build Coastguard Worker "libdexfile_static_defaults", 160*795d594fSAndroid Build Coastguard Worker "libprofile_static_defaults", 161*795d594fSAndroid Build Coastguard Worker ], 162*795d594fSAndroid Build Coastguard Worker} 163*795d594fSAndroid Build Coastguard Worker 164*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 165*795d594fSAndroid Build Coastguard Worker name: "libartd-dex2oat", 166*795d594fSAndroid Build Coastguard Worker defaults: [ 167*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 168*795d594fSAndroid Build Coastguard Worker "libart-dex2oat-defaults", 169*795d594fSAndroid Build Coastguard Worker ], 170*795d594fSAndroid Build Coastguard Worker shared_libs: [ 171*795d594fSAndroid Build Coastguard Worker "libartd", 172*795d594fSAndroid Build Coastguard Worker "libartpalette", 173*795d594fSAndroid Build Coastguard Worker "libprofiled", 174*795d594fSAndroid Build Coastguard Worker ], 175*795d594fSAndroid Build Coastguard Worker static_libs: [ 176*795d594fSAndroid Build Coastguard Worker "libelffiled", 177*795d594fSAndroid Build Coastguard Worker ], 178*795d594fSAndroid Build Coastguard Worker apex_available: [ 179*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 180*795d594fSAndroid Build Coastguard Worker ], 181*795d594fSAndroid Build Coastguard Worker} 182*795d594fSAndroid Build Coastguard Worker 183*795d594fSAndroid Build Coastguard Workercc_defaults { 184*795d594fSAndroid Build Coastguard Worker name: "libartd-dex2oat_static_defaults", 185*795d594fSAndroid Build Coastguard Worker defaults: [ 186*795d594fSAndroid Build Coastguard Worker "libart-dex2oat_static_base_defaults", 187*795d594fSAndroid Build Coastguard Worker "libartd_static_defaults", 188*795d594fSAndroid Build Coastguard Worker "libprofiled_static_defaults", 189*795d594fSAndroid Build Coastguard Worker ], 190*795d594fSAndroid Build Coastguard Worker whole_static_libs: [ 191*795d594fSAndroid Build Coastguard Worker "libartd-dex2oat", 192*795d594fSAndroid Build Coastguard Worker ], 193*795d594fSAndroid Build Coastguard Worker} 194*795d594fSAndroid Build Coastguard Worker 195*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 196*795d594fSAndroid Build Coastguard Worker name: "libdex2oatd_static", 197*795d594fSAndroid Build Coastguard Worker device_supported: false, 198*795d594fSAndroid Build Coastguard Worker host_supported: true, 199*795d594fSAndroid Build Coastguard Worker defaults: [ 200*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 201*795d594fSAndroid Build Coastguard Worker "libartbased_static_defaults", 202*795d594fSAndroid Build Coastguard Worker "libartd-dex2oat_static_defaults", 203*795d594fSAndroid Build Coastguard Worker "libartd_static_defaults", 204*795d594fSAndroid Build Coastguard Worker "libdexfiled_static_defaults", 205*795d594fSAndroid Build Coastguard Worker "libprofiled_static_defaults", 206*795d594fSAndroid Build Coastguard Worker ], 207*795d594fSAndroid Build Coastguard Worker} 208*795d594fSAndroid Build Coastguard Worker 209*795d594fSAndroid Build Coastguard Workercc_defaults { 210*795d594fSAndroid Build Coastguard Worker name: "dex2oat-defaults", 211*795d594fSAndroid Build Coastguard Worker host_supported: true, 212*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 213*795d594fSAndroid Build Coastguard Worker 214*795d594fSAndroid Build Coastguard Worker srcs: [ 215*795d594fSAndroid Build Coastguard Worker "dex2oat_options.cc", 216*795d594fSAndroid Build Coastguard Worker "dex2oat.cc", 217*795d594fSAndroid Build Coastguard Worker ], 218*795d594fSAndroid Build Coastguard Worker header_libs: [ 219*795d594fSAndroid Build Coastguard Worker "art_cmdlineparser_headers", 220*795d594fSAndroid Build Coastguard Worker ], 221*795d594fSAndroid Build Coastguard Worker 222*795d594fSAndroid Build Coastguard Worker target: { 223*795d594fSAndroid Build Coastguard Worker android: { 224*795d594fSAndroid Build Coastguard Worker compile_multilib: "both", 225*795d594fSAndroid Build Coastguard Worker shared_libs: [ 226*795d594fSAndroid Build Coastguard Worker "libartpalette", 227*795d594fSAndroid Build Coastguard Worker "libbase", 228*795d594fSAndroid Build Coastguard Worker "liblz4", // libart(d)-dex2oat dependency; must be repeated here since it's a static lib. 229*795d594fSAndroid Build Coastguard Worker "liblog", 230*795d594fSAndroid Build Coastguard Worker "libsigchain", 231*795d594fSAndroid Build Coastguard Worker "libz", 232*795d594fSAndroid Build Coastguard Worker ], 233*795d594fSAndroid Build Coastguard Worker static_libs: [ 234*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 235*795d594fSAndroid Build Coastguard Worker ], 236*795d594fSAndroid Build Coastguard Worker }, 237*795d594fSAndroid Build Coastguard Worker }, 238*795d594fSAndroid Build Coastguard Worker} 239*795d594fSAndroid Build Coastguard Worker 240*795d594fSAndroid Build Coastguard Workerart_cc_binary { 241*795d594fSAndroid Build Coastguard Worker name: "dex2oat", 242*795d594fSAndroid Build Coastguard Worker defaults: [ 243*795d594fSAndroid Build Coastguard Worker "dex2oat-defaults", 244*795d594fSAndroid Build Coastguard Worker ], 245*795d594fSAndroid Build Coastguard Worker // Modules that do dexpreopting, e.g. android_app, depend implicitly on 246*795d594fSAndroid Build Coastguard Worker // either dex2oat or dex2oatd in ART source builds. 247*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 248*795d594fSAndroid Build Coastguard Worker 249*795d594fSAndroid Build Coastguard Worker multilib: { 250*795d594fSAndroid Build Coastguard Worker lib32: { 251*795d594fSAndroid Build Coastguard Worker suffix: "32", 252*795d594fSAndroid Build Coastguard Worker }, 253*795d594fSAndroid Build Coastguard Worker lib64: { 254*795d594fSAndroid Build Coastguard Worker suffix: "64", 255*795d594fSAndroid Build Coastguard Worker }, 256*795d594fSAndroid Build Coastguard Worker }, 257*795d594fSAndroid Build Coastguard Worker symlink_preferred_arch: true, 258*795d594fSAndroid Build Coastguard Worker 259*795d594fSAndroid Build Coastguard Worker target: { 260*795d594fSAndroid Build Coastguard Worker android: { 261*795d594fSAndroid Build Coastguard Worker shared_libs: [ 262*795d594fSAndroid Build Coastguard Worker "libart", 263*795d594fSAndroid Build Coastguard Worker "libartbase", 264*795d594fSAndroid Build Coastguard Worker "libdexfile#impl", 265*795d594fSAndroid Build Coastguard Worker "libprofile", 266*795d594fSAndroid Build Coastguard Worker ], 267*795d594fSAndroid Build Coastguard Worker static_libs: [ 268*795d594fSAndroid Build Coastguard Worker "libart-dex2oat", 269*795d594fSAndroid Build Coastguard Worker "libelffile", 270*795d594fSAndroid Build Coastguard Worker ], 271*795d594fSAndroid Build Coastguard Worker lto: { 272*795d594fSAndroid Build Coastguard Worker thin: true, 273*795d594fSAndroid Build Coastguard Worker }, 274*795d594fSAndroid Build Coastguard Worker }, 275*795d594fSAndroid Build Coastguard Worker host: { 276*795d594fSAndroid Build Coastguard Worker static_libs: [ 277*795d594fSAndroid Build Coastguard Worker // Since libcrypto_for_art cannot be a whole_static_libs in 278*795d594fSAndroid Build Coastguard Worker // libart-dex2oat_static_base_defaults, and we cannot use a 279*795d594fSAndroid Build Coastguard Worker // defaults directly only for host here, we have to repeat this 280*795d594fSAndroid Build Coastguard Worker // dependency. 281*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 282*795d594fSAndroid Build Coastguard Worker // Make the host binary static, except for system libraries. 283*795d594fSAndroid Build Coastguard Worker // This avoids having to bundle host dynamic libs in prebuilts. 284*795d594fSAndroid Build Coastguard Worker "libdex2oat_static", 285*795d594fSAndroid Build Coastguard Worker ], 286*795d594fSAndroid Build Coastguard Worker stl: "c++_static", 287*795d594fSAndroid Build Coastguard Worker // Override the prefer32 added by art_cc_binary when 288*795d594fSAndroid Build Coastguard Worker // HOST_PREFER_32_BIT is in use. Necessary because the logic in 289*795d594fSAndroid Build Coastguard Worker // Soong for setting ctx.Config().BuildOSTarget (used in 290*795d594fSAndroid Build Coastguard Worker // dexpreopt.RegisterToolDeps) doesn't take host prefer32 into 291*795d594fSAndroid Build Coastguard Worker // account. Note that this override cannot be in cc_defaults because 292*795d594fSAndroid Build Coastguard Worker // it'd get overridden by the load hook even when it uses 293*795d594fSAndroid Build Coastguard Worker // PrependProperties. 294*795d594fSAndroid Build Coastguard Worker compile_multilib: "64", 295*795d594fSAndroid Build Coastguard Worker }, 296*795d594fSAndroid Build Coastguard Worker }, 297*795d594fSAndroid Build Coastguard Worker 298*795d594fSAndroid Build Coastguard Worker apex_available: [ 299*795d594fSAndroid Build Coastguard Worker "com.android.art", 300*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 301*795d594fSAndroid Build Coastguard Worker "test_broken_com.android.art", 302*795d594fSAndroid Build Coastguard Worker ], 303*795d594fSAndroid Build Coastguard Worker} 304*795d594fSAndroid Build Coastguard Worker 305*795d594fSAndroid Build Coastguard Workerart_cc_binary { 306*795d594fSAndroid Build Coastguard Worker name: "dex2oatd", 307*795d594fSAndroid Build Coastguard Worker defaults: [ 308*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 309*795d594fSAndroid Build Coastguard Worker "dex2oat-defaults", 310*795d594fSAndroid Build Coastguard Worker ], 311*795d594fSAndroid Build Coastguard Worker // Modules that do dexpreopting, e.g. android_app, depend implicitly on 312*795d594fSAndroid Build Coastguard Worker // either dex2oat or dex2oatd in ART source builds. 313*795d594fSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 314*795d594fSAndroid Build Coastguard Worker 315*795d594fSAndroid Build Coastguard Worker multilib: { 316*795d594fSAndroid Build Coastguard Worker lib32: { 317*795d594fSAndroid Build Coastguard Worker suffix: "32", 318*795d594fSAndroid Build Coastguard Worker }, 319*795d594fSAndroid Build Coastguard Worker lib64: { 320*795d594fSAndroid Build Coastguard Worker suffix: "64", 321*795d594fSAndroid Build Coastguard Worker }, 322*795d594fSAndroid Build Coastguard Worker }, 323*795d594fSAndroid Build Coastguard Worker symlink_preferred_arch: true, 324*795d594fSAndroid Build Coastguard Worker 325*795d594fSAndroid Build Coastguard Worker target: { 326*795d594fSAndroid Build Coastguard Worker android: { 327*795d594fSAndroid Build Coastguard Worker shared_libs: [ 328*795d594fSAndroid Build Coastguard Worker "libartbased", 329*795d594fSAndroid Build Coastguard Worker "libartd", 330*795d594fSAndroid Build Coastguard Worker "libdexfiled#impl", 331*795d594fSAndroid Build Coastguard Worker "libprofiled", 332*795d594fSAndroid Build Coastguard Worker ], 333*795d594fSAndroid Build Coastguard Worker static_libs: [ 334*795d594fSAndroid Build Coastguard Worker "libartd-dex2oat", 335*795d594fSAndroid Build Coastguard Worker "libelffiled", 336*795d594fSAndroid Build Coastguard Worker ], 337*795d594fSAndroid Build Coastguard Worker }, 338*795d594fSAndroid Build Coastguard Worker host: { 339*795d594fSAndroid Build Coastguard Worker // Comments for host in dex2oat apply here too. 340*795d594fSAndroid Build Coastguard Worker static_libs: [ 341*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 342*795d594fSAndroid Build Coastguard Worker "libdex2oatd_static", 343*795d594fSAndroid Build Coastguard Worker ], 344*795d594fSAndroid Build Coastguard Worker stl: "c++_static", 345*795d594fSAndroid Build Coastguard Worker compile_multilib: "64", 346*795d594fSAndroid Build Coastguard Worker }, 347*795d594fSAndroid Build Coastguard Worker }, 348*795d594fSAndroid Build Coastguard Worker 349*795d594fSAndroid Build Coastguard Worker apex_available: [ 350*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 351*795d594fSAndroid Build Coastguard Worker ], 352*795d594fSAndroid Build Coastguard Worker} 353*795d594fSAndroid Build Coastguard Worker 354*795d594fSAndroid Build Coastguard Workercc_defaults { 355*795d594fSAndroid Build Coastguard Worker name: "dex2oats-defaults", 356*795d594fSAndroid Build Coastguard Worker device_supported: false, 357*795d594fSAndroid Build Coastguard Worker static_executable: true, 358*795d594fSAndroid Build Coastguard Worker defaults: [ 359*795d594fSAndroid Build Coastguard Worker "dex2oat-defaults", 360*795d594fSAndroid Build Coastguard Worker ], 361*795d594fSAndroid Build Coastguard Worker target: { 362*795d594fSAndroid Build Coastguard Worker darwin: { 363*795d594fSAndroid Build Coastguard Worker enabled: false, 364*795d594fSAndroid Build Coastguard Worker }, 365*795d594fSAndroid Build Coastguard Worker }, 366*795d594fSAndroid Build Coastguard Worker ldflags: [ 367*795d594fSAndroid Build Coastguard Worker // We need this because GC stress mode makes use of 368*795d594fSAndroid Build Coastguard Worker // _Unwind_GetIP and _Unwind_Backtrace and the symbols are also 369*795d594fSAndroid Build Coastguard Worker // defined in libgcc_eh.a(unwind-dw2.o) 370*795d594fSAndroid Build Coastguard Worker // TODO: Having this is not ideal as it might obscure errors. 371*795d594fSAndroid Build Coastguard Worker // Try to get rid of it. 372*795d594fSAndroid Build Coastguard Worker "-z muldefs", 373*795d594fSAndroid Build Coastguard Worker ], 374*795d594fSAndroid Build Coastguard Worker} 375*795d594fSAndroid Build Coastguard Worker 376*795d594fSAndroid Build Coastguard Workerart_cc_binary { 377*795d594fSAndroid Build Coastguard Worker name: "dex2oats", 378*795d594fSAndroid Build Coastguard Worker defaults: ["dex2oats-defaults"], 379*795d594fSAndroid Build Coastguard Worker static_libs: [ 380*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 381*795d594fSAndroid Build Coastguard Worker "libdex2oat_static", 382*795d594fSAndroid Build Coastguard Worker ], 383*795d594fSAndroid Build Coastguard Worker visibility: ["//tools/vendor/google_prebuilts/arc"], 384*795d594fSAndroid Build Coastguard Worker} 385*795d594fSAndroid Build Coastguard Worker 386*795d594fSAndroid Build Coastguard Workerart_cc_binary { 387*795d594fSAndroid Build Coastguard Worker name: "dex2oatds", 388*795d594fSAndroid Build Coastguard Worker defaults: [ 389*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 390*795d594fSAndroid Build Coastguard Worker "dex2oats-defaults", 391*795d594fSAndroid Build Coastguard Worker ], 392*795d594fSAndroid Build Coastguard Worker static_libs: [ 393*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 394*795d594fSAndroid Build Coastguard Worker "libdex2oatd_static", 395*795d594fSAndroid Build Coastguard Worker ], 396*795d594fSAndroid Build Coastguard Worker} 397*795d594fSAndroid Build Coastguard Worker 398*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 399*795d594fSAndroid Build Coastguard Worker name: "libart-dex2oat-gtest", 400*795d594fSAndroid Build Coastguard Worker defaults: ["libart-gtest-defaults"], 401*795d594fSAndroid Build Coastguard Worker srcs: [ 402*795d594fSAndroid Build Coastguard Worker "common_compiler_driver_test.cc", 403*795d594fSAndroid Build Coastguard Worker "common_transaction_test.cc", 404*795d594fSAndroid Build Coastguard Worker ], 405*795d594fSAndroid Build Coastguard Worker static_libs: [ 406*795d594fSAndroid Build Coastguard Worker "libart-dex2oat", 407*795d594fSAndroid Build Coastguard Worker "libart-gtest", 408*795d594fSAndroid Build Coastguard Worker ], 409*795d594fSAndroid Build Coastguard Worker} 410*795d594fSAndroid Build Coastguard Worker 411*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 412*795d594fSAndroid Build Coastguard Worker name: "libartd-dex2oat-gtest", 413*795d594fSAndroid Build Coastguard Worker defaults: [ 414*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 415*795d594fSAndroid Build Coastguard Worker "libart-gtest-defaults", 416*795d594fSAndroid Build Coastguard Worker ], 417*795d594fSAndroid Build Coastguard Worker srcs: [ 418*795d594fSAndroid Build Coastguard Worker "common_compiler_driver_test.cc", 419*795d594fSAndroid Build Coastguard Worker "common_transaction_test.cc", 420*795d594fSAndroid Build Coastguard Worker ], 421*795d594fSAndroid Build Coastguard Worker static_libs: [ 422*795d594fSAndroid Build Coastguard Worker "libartd-dex2oat", 423*795d594fSAndroid Build Coastguard Worker "libartd-gtest", 424*795d594fSAndroid Build Coastguard Worker ], 425*795d594fSAndroid Build Coastguard Worker} 426*795d594fSAndroid Build Coastguard Worker 427*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 428*795d594fSAndroid Build Coastguard Worker name: "art_dex2oat_tests_defaults", 429*795d594fSAndroid Build Coastguard Worker device_common_data: [ 430*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-AbstractMethod", 431*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ArrayClassWithUnresolvedComponent", 432*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-DefaultMethods", 433*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Dex2oatVdexPublicSdkDex", 434*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Dex2oatVdexTestDex", 435*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ImageLayoutA", 436*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ImageLayoutB", 437*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-LinkageTest", 438*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Main", 439*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MainEmptyUncompressed", 440*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MainEmptyUncompressedAligned", 441*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MainStripped", 442*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MainUncompressedAligned", 443*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ManyMethods", 444*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MultiDex", 445*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MultiDexModifiedSecondary", 446*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MultiDexUncompressedAligned", 447*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-MyClassNatives", 448*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Nested", 449*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ProfileTestMultiDex", 450*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-StaticLeafMethods", 451*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Statics", 452*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-StringLiterals", 453*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-SuperWithAccessChecks", 454*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Transaction", 455*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-VerifierDeps", 456*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-VerifierDepsMulti", 457*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-VerifySoftFailDuringClinit", 458*795d594fSAndroid Build Coastguard Worker ], 459*795d594fSAndroid Build Coastguard Worker tidy_timeout_srcs: [ 460*795d594fSAndroid Build Coastguard Worker "dex2oat_test.cc", 461*795d594fSAndroid Build Coastguard Worker "transaction_test.cc", 462*795d594fSAndroid Build Coastguard Worker "verifier_deps_test.cc", 463*795d594fSAndroid Build Coastguard Worker "linker/arm/relative_patcher_thumb2_test.cc", 464*795d594fSAndroid Build Coastguard Worker "linker/arm64/relative_patcher_arm64_test.cc", 465*795d594fSAndroid Build Coastguard Worker ], 466*795d594fSAndroid Build Coastguard Worker srcs: [ 467*795d594fSAndroid Build Coastguard Worker "dex2oat_test.cc", 468*795d594fSAndroid Build Coastguard Worker "dex2oat_vdex_test.cc", 469*795d594fSAndroid Build Coastguard Worker "dex2oat_image_test.cc", 470*795d594fSAndroid Build Coastguard Worker "driver/compiled_method_storage_test.cc", 471*795d594fSAndroid Build Coastguard Worker "driver/compiler_driver_test.cc", 472*795d594fSAndroid Build Coastguard Worker "interpreter/unstarted_runtime_transaction_test.cc", 473*795d594fSAndroid Build Coastguard Worker "linker/code_info_table_deduper_test.cc", 474*795d594fSAndroid Build Coastguard Worker "linker/elf_writer_test.cc", 475*795d594fSAndroid Build Coastguard Worker "linker/image_test.cc", 476*795d594fSAndroid Build Coastguard Worker "linker/image_write_read_test.cc", 477*795d594fSAndroid Build Coastguard Worker "linker/index_bss_mapping_encoder_test.cc", 478*795d594fSAndroid Build Coastguard Worker "linker/multi_oat_relative_patcher_test.cc", 479*795d594fSAndroid Build Coastguard Worker "linker/oat_writer_test.cc", 480*795d594fSAndroid Build Coastguard Worker "transaction_test.cc", 481*795d594fSAndroid Build Coastguard Worker "verifier_deps_test.cc", 482*795d594fSAndroid Build Coastguard Worker "utils/swap_space_test.cc", 483*795d594fSAndroid Build Coastguard Worker ], 484*795d594fSAndroid Build Coastguard Worker target: { 485*795d594fSAndroid Build Coastguard Worker host: { 486*795d594fSAndroid Build Coastguard Worker required: [ 487*795d594fSAndroid Build Coastguard Worker "dex2oatd", 488*795d594fSAndroid Build Coastguard Worker "art_boot_images", 489*795d594fSAndroid Build Coastguard Worker ], 490*795d594fSAndroid Build Coastguard Worker }, 491*795d594fSAndroid Build Coastguard Worker }, 492*795d594fSAndroid Build Coastguard Worker 493*795d594fSAndroid Build Coastguard Worker codegen: { 494*795d594fSAndroid Build Coastguard Worker arm: { 495*795d594fSAndroid Build Coastguard Worker srcs: [ 496*795d594fSAndroid Build Coastguard Worker "linker/arm/relative_patcher_thumb2_test.cc", 497*795d594fSAndroid Build Coastguard Worker ], 498*795d594fSAndroid Build Coastguard Worker }, 499*795d594fSAndroid Build Coastguard Worker arm64: { 500*795d594fSAndroid Build Coastguard Worker srcs: [ 501*795d594fSAndroid Build Coastguard Worker "linker/arm64/relative_patcher_arm64_test.cc", 502*795d594fSAndroid Build Coastguard Worker ], 503*795d594fSAndroid Build Coastguard Worker }, 504*795d594fSAndroid Build Coastguard Worker riscv64: { 505*795d594fSAndroid Build Coastguard Worker srcs: [ 506*795d594fSAndroid Build Coastguard Worker "linker/riscv64/relative_patcher_riscv64_test.cc", 507*795d594fSAndroid Build Coastguard Worker ], 508*795d594fSAndroid Build Coastguard Worker }, 509*795d594fSAndroid Build Coastguard Worker x86: { 510*795d594fSAndroid Build Coastguard Worker srcs: [ 511*795d594fSAndroid Build Coastguard Worker "linker/x86/relative_patcher_x86_test.cc", 512*795d594fSAndroid Build Coastguard Worker ], 513*795d594fSAndroid Build Coastguard Worker }, 514*795d594fSAndroid Build Coastguard Worker x86_64: { 515*795d594fSAndroid Build Coastguard Worker srcs: [ 516*795d594fSAndroid Build Coastguard Worker "linker/x86_64/relative_patcher_x86_64_test.cc", 517*795d594fSAndroid Build Coastguard Worker ], 518*795d594fSAndroid Build Coastguard Worker }, 519*795d594fSAndroid Build Coastguard Worker }, 520*795d594fSAndroid Build Coastguard Worker 521*795d594fSAndroid Build Coastguard Worker shared_libs: [ 522*795d594fSAndroid Build Coastguard Worker "liblog", 523*795d594fSAndroid Build Coastguard Worker ], 524*795d594fSAndroid Build Coastguard Worker static_libs: [ 525*795d594fSAndroid Build Coastguard Worker "libcrypto_for_art", 526*795d594fSAndroid Build Coastguard Worker "libgmock", 527*795d594fSAndroid Build Coastguard Worker "liblz4", // libart(d)-dex2oat dependency; must be repeated here since it's a static lib. 528*795d594fSAndroid Build Coastguard Worker ], 529*795d594fSAndroid Build Coastguard Worker} 530*795d594fSAndroid Build Coastguard Worker 531*795d594fSAndroid Build Coastguard Worker// Version of ART gtest `art_dex2oat_tests` bundled with the ART APEX on target. 532*795d594fSAndroid Build Coastguard Worker// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete. 533*795d594fSAndroid Build Coastguard Workerart_cc_test { 534*795d594fSAndroid Build Coastguard Worker name: "art_dex2oat_tests", 535*795d594fSAndroid Build Coastguard Worker defaults: [ 536*795d594fSAndroid Build Coastguard Worker "art_gtest_defaults", 537*795d594fSAndroid Build Coastguard Worker "art_dex2oat_tests_defaults", 538*795d594fSAndroid Build Coastguard Worker ], 539*795d594fSAndroid Build Coastguard Worker static_libs: [ 540*795d594fSAndroid Build Coastguard Worker "libartd-dex2oat", 541*795d594fSAndroid Build Coastguard Worker "libartd-dex2oat-gtest", 542*795d594fSAndroid Build Coastguard Worker "libvixld", 543*795d594fSAndroid Build Coastguard Worker ], 544*795d594fSAndroid Build Coastguard Worker} 545*795d594fSAndroid Build Coastguard Worker 546*795d594fSAndroid Build Coastguard Worker// Standalone version of ART gtest `art_dex2oat_tests`, not bundled with the ART APEX on target. 547*795d594fSAndroid Build Coastguard Workerart_cc_test { 548*795d594fSAndroid Build Coastguard Worker name: "art_standalone_dex2oat_tests", 549*795d594fSAndroid Build Coastguard Worker defaults: [ 550*795d594fSAndroid Build Coastguard Worker "art_standalone_gtest_defaults", 551*795d594fSAndroid Build Coastguard Worker "art_dex2oat_tests_defaults", 552*795d594fSAndroid Build Coastguard Worker ], 553*795d594fSAndroid Build Coastguard Worker data: [":generate-boot-image"], 554*795d594fSAndroid Build Coastguard Worker static_libs: [ 555*795d594fSAndroid Build Coastguard Worker "libart-dex2oat", 556*795d594fSAndroid Build Coastguard Worker "libart-dex2oat-gtest", 557*795d594fSAndroid Build Coastguard Worker "libvixl", 558*795d594fSAndroid Build Coastguard Worker ], 559*795d594fSAndroid Build Coastguard Worker test_config: "art_standalone_dex2oat_tests.xml", 560*795d594fSAndroid Build Coastguard Worker} 561*795d594fSAndroid Build Coastguard Worker 562*795d594fSAndroid Build Coastguard Worker// Counterpart to art_standalone_dex2oat_tests for tests that go into CTS/MCTS. 563*795d594fSAndroid Build Coastguard Workerart_cc_test { 564*795d594fSAndroid Build Coastguard Worker name: "art_standalone_dex2oat_cts_tests", 565*795d594fSAndroid Build Coastguard Worker defaults: ["art_standalone_gtest_defaults"], 566*795d594fSAndroid Build Coastguard Worker srcs: ["dex2oat_cts_test.cc"], 567*795d594fSAndroid Build Coastguard Worker data: [ 568*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-Main", 569*795d594fSAndroid Build Coastguard Worker ":generate-boot-image", 570*795d594fSAndroid Build Coastguard Worker ], 571*795d594fSAndroid Build Coastguard Worker test_config: "art_standalone_dex2oat_cts_tests.xml", 572*795d594fSAndroid Build Coastguard Worker test_suites: [ 573*795d594fSAndroid Build Coastguard Worker "cts", 574*795d594fSAndroid Build Coastguard Worker "mts-art", 575*795d594fSAndroid Build Coastguard Worker "mcts-art", 576*795d594fSAndroid Build Coastguard Worker ], 577*795d594fSAndroid Build Coastguard Worker} 578