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 Workercc_defaults { 28*795d594fSAndroid Build Coastguard Worker name: "oatdump-defaults", 29*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 30*795d594fSAndroid Build Coastguard Worker host_supported: true, 31*795d594fSAndroid Build Coastguard Worker srcs: ["oatdump.cc"], 32*795d594fSAndroid Build Coastguard Worker header_libs: [ 33*795d594fSAndroid Build Coastguard Worker "art_cmdlineparser_headers", 34*795d594fSAndroid Build Coastguard Worker ], 35*795d594fSAndroid Build Coastguard Worker} 36*795d594fSAndroid Build Coastguard Worker 37*795d594fSAndroid Build Coastguard Worker// Collect all the static defaults and build a host-only static library, which 38*795d594fSAndroid Build Coastguard Worker// is then used for the (mostly) static host oatdump binary. 39*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 40*795d594fSAndroid Build Coastguard Worker name: "liboatdump_static", 41*795d594fSAndroid Build Coastguard Worker device_supported: false, 42*795d594fSAndroid Build Coastguard Worker host_supported: true, 43*795d594fSAndroid Build Coastguard Worker defaults: [ 44*795d594fSAndroid Build Coastguard Worker "libart-disassembler_static_defaults", 45*795d594fSAndroid Build Coastguard Worker "libart_static_defaults", 46*795d594fSAndroid Build Coastguard Worker "libartbase_static_defaults", 47*795d594fSAndroid Build Coastguard Worker "libdexfile_static_defaults", 48*795d594fSAndroid Build Coastguard Worker "libprofile_static_defaults", 49*795d594fSAndroid Build Coastguard Worker "oatdump-defaults", 50*795d594fSAndroid Build Coastguard Worker ], 51*795d594fSAndroid Build Coastguard Worker whole_static_libs: [ 52*795d594fSAndroid Build Coastguard Worker "libbase", 53*795d594fSAndroid Build Coastguard Worker ], 54*795d594fSAndroid Build Coastguard Worker} 55*795d594fSAndroid Build Coastguard Worker 56*795d594fSAndroid Build Coastguard Workerart_cc_binary { 57*795d594fSAndroid Build Coastguard Worker name: "oatdump", 58*795d594fSAndroid Build Coastguard Worker defaults: ["oatdump-defaults"], 59*795d594fSAndroid Build Coastguard Worker 60*795d594fSAndroid Build Coastguard Worker target: { 61*795d594fSAndroid Build Coastguard Worker android: { 62*795d594fSAndroid Build Coastguard Worker shared_libs: [ 63*795d594fSAndroid Build Coastguard Worker "libart", 64*795d594fSAndroid Build Coastguard Worker "libart-disassembler", 65*795d594fSAndroid Build Coastguard Worker "libartbase", 66*795d594fSAndroid Build Coastguard Worker "libbase", 67*795d594fSAndroid Build Coastguard Worker "libdexfile#impl", 68*795d594fSAndroid Build Coastguard Worker "libprofile", 69*795d594fSAndroid Build Coastguard Worker ], 70*795d594fSAndroid Build Coastguard Worker static_libs: [ 71*795d594fSAndroid Build Coastguard Worker "libelffile", 72*795d594fSAndroid Build Coastguard Worker ], 73*795d594fSAndroid Build Coastguard Worker }, 74*795d594fSAndroid Build Coastguard Worker host: { 75*795d594fSAndroid Build Coastguard Worker // Make the host binary static, except for system libraries. 76*795d594fSAndroid Build Coastguard Worker static_libs: ["liboatdump_static"], 77*795d594fSAndroid Build Coastguard Worker stl: "c++_static", 78*795d594fSAndroid Build Coastguard Worker }, 79*795d594fSAndroid Build Coastguard Worker }, 80*795d594fSAndroid Build Coastguard Worker 81*795d594fSAndroid Build Coastguard Worker apex_available: [ 82*795d594fSAndroid Build Coastguard Worker "com.android.art", 83*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 84*795d594fSAndroid Build Coastguard Worker "test_broken_com.android.art", 85*795d594fSAndroid Build Coastguard Worker ], 86*795d594fSAndroid Build Coastguard Worker} 87*795d594fSAndroid Build Coastguard Worker 88*795d594fSAndroid Build Coastguard Worker// Collect all the static defaults and build a host-only static library, which 89*795d594fSAndroid Build Coastguard Worker// is then used for the (mostly) static host oatdump binary. 90*795d594fSAndroid Build Coastguard Workerart_cc_library_static { 91*795d594fSAndroid Build Coastguard Worker name: "liboatdumpd_static", 92*795d594fSAndroid Build Coastguard Worker device_supported: false, 93*795d594fSAndroid Build Coastguard Worker host_supported: true, 94*795d594fSAndroid Build Coastguard Worker defaults: [ 95*795d594fSAndroid Build Coastguard Worker "libartd-disassembler_static_defaults", 96*795d594fSAndroid Build Coastguard Worker "libartd_static_defaults", 97*795d594fSAndroid Build Coastguard Worker "libartbased_static_defaults", 98*795d594fSAndroid Build Coastguard Worker "libdexfiled_static_defaults", 99*795d594fSAndroid Build Coastguard Worker "libprofiled_static_defaults", 100*795d594fSAndroid Build Coastguard Worker "oatdump-defaults", 101*795d594fSAndroid Build Coastguard Worker ], 102*795d594fSAndroid Build Coastguard Worker whole_static_libs: [ 103*795d594fSAndroid Build Coastguard Worker "libbase", 104*795d594fSAndroid Build Coastguard Worker ], 105*795d594fSAndroid Build Coastguard Worker} 106*795d594fSAndroid Build Coastguard Worker 107*795d594fSAndroid Build Coastguard Workerart_cc_binary { 108*795d594fSAndroid Build Coastguard Worker name: "oatdumpd", 109*795d594fSAndroid Build Coastguard Worker defaults: [ 110*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 111*795d594fSAndroid Build Coastguard Worker "oatdump-defaults", 112*795d594fSAndroid Build Coastguard Worker ], 113*795d594fSAndroid Build Coastguard Worker 114*795d594fSAndroid Build Coastguard Worker target: { 115*795d594fSAndroid Build Coastguard Worker android: { 116*795d594fSAndroid Build Coastguard Worker shared_libs: [ 117*795d594fSAndroid Build Coastguard Worker "libartbased", 118*795d594fSAndroid Build Coastguard Worker "libartd", 119*795d594fSAndroid Build Coastguard Worker "libartd-disassembler", 120*795d594fSAndroid Build Coastguard Worker "libbase", 121*795d594fSAndroid Build Coastguard Worker "libdexfiled#impl", 122*795d594fSAndroid Build Coastguard Worker "libprofiled", 123*795d594fSAndroid Build Coastguard Worker ], 124*795d594fSAndroid Build Coastguard Worker static_libs: [ 125*795d594fSAndroid Build Coastguard Worker "libelffiled", 126*795d594fSAndroid Build Coastguard Worker ], 127*795d594fSAndroid Build Coastguard Worker }, 128*795d594fSAndroid Build Coastguard Worker host: { 129*795d594fSAndroid Build Coastguard Worker // Make the host binary static, except for system libraries. 130*795d594fSAndroid Build Coastguard Worker static_libs: ["liboatdumpd_static"], 131*795d594fSAndroid Build Coastguard Worker stl: "c++_static", 132*795d594fSAndroid Build Coastguard Worker }, 133*795d594fSAndroid Build Coastguard Worker }, 134*795d594fSAndroid Build Coastguard Worker 135*795d594fSAndroid Build Coastguard Worker apex_available: [ 136*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 137*795d594fSAndroid Build Coastguard Worker ], 138*795d594fSAndroid Build Coastguard Worker} 139*795d594fSAndroid Build Coastguard Worker 140*795d594fSAndroid Build Coastguard Workercc_defaults { 141*795d594fSAndroid Build Coastguard Worker name: "oatdumps-defaults", 142*795d594fSAndroid Build Coastguard Worker device_supported: false, 143*795d594fSAndroid Build Coastguard Worker static_executable: true, 144*795d594fSAndroid Build Coastguard Worker defaults: [ 145*795d594fSAndroid Build Coastguard Worker "oatdump-defaults", 146*795d594fSAndroid Build Coastguard Worker ], 147*795d594fSAndroid Build Coastguard Worker target: { 148*795d594fSAndroid Build Coastguard Worker darwin: { 149*795d594fSAndroid Build Coastguard Worker enabled: false, 150*795d594fSAndroid Build Coastguard Worker }, 151*795d594fSAndroid Build Coastguard Worker }, 152*795d594fSAndroid Build Coastguard Worker ldflags: [ 153*795d594fSAndroid Build Coastguard Worker // We need this because GC stress mode makes use of 154*795d594fSAndroid Build Coastguard Worker // _Unwind_GetIP and _Unwind_Backtrace and the symbols are also 155*795d594fSAndroid Build Coastguard Worker // defined in libgcc_eh.a(unwind-dw2.o) 156*795d594fSAndroid Build Coastguard Worker // TODO: Having this is not ideal as it might obscure errors. 157*795d594fSAndroid Build Coastguard Worker // Try to get rid of it. 158*795d594fSAndroid Build Coastguard Worker "-z muldefs", 159*795d594fSAndroid Build Coastguard Worker ], 160*795d594fSAndroid Build Coastguard Worker static_libs: ["libsigchain_fake"], 161*795d594fSAndroid Build Coastguard Worker} 162*795d594fSAndroid Build Coastguard Worker 163*795d594fSAndroid Build Coastguard Workerart_cc_binary { 164*795d594fSAndroid Build Coastguard Worker name: "oatdumps", 165*795d594fSAndroid Build Coastguard Worker defaults: [ 166*795d594fSAndroid Build Coastguard Worker "libart_static_defaults", 167*795d594fSAndroid Build Coastguard Worker "libartbase_static_defaults", 168*795d594fSAndroid Build Coastguard Worker "libdexfile_static_defaults", 169*795d594fSAndroid Build Coastguard Worker "libprofile_static_defaults", 170*795d594fSAndroid Build Coastguard Worker "oatdumps-defaults", 171*795d594fSAndroid Build Coastguard Worker ], 172*795d594fSAndroid Build Coastguard Worker static_libs: [ 173*795d594fSAndroid Build Coastguard Worker "libart-disassembler", 174*795d594fSAndroid Build Coastguard Worker "libvixl", 175*795d594fSAndroid Build Coastguard Worker ], 176*795d594fSAndroid Build Coastguard Worker} 177*795d594fSAndroid Build Coastguard Worker 178*795d594fSAndroid Build Coastguard Workerart_cc_binary { 179*795d594fSAndroid Build Coastguard Worker name: "oatdumpds", 180*795d594fSAndroid Build Coastguard Worker defaults: [ 181*795d594fSAndroid Build Coastguard Worker "art_debug_defaults", 182*795d594fSAndroid Build Coastguard Worker "libartd_static_defaults", 183*795d594fSAndroid Build Coastguard Worker "libartbased_static_defaults", 184*795d594fSAndroid Build Coastguard Worker "libdexfiled_static_defaults", 185*795d594fSAndroid Build Coastguard Worker "libprofiled_static_defaults", 186*795d594fSAndroid Build Coastguard Worker "oatdumps-defaults", 187*795d594fSAndroid Build Coastguard Worker ], 188*795d594fSAndroid Build Coastguard Worker static_libs: [ 189*795d594fSAndroid Build Coastguard Worker "libartd-disassembler", 190*795d594fSAndroid Build Coastguard Worker "libvixld", 191*795d594fSAndroid Build Coastguard Worker ], 192*795d594fSAndroid Build Coastguard Worker} 193*795d594fSAndroid Build Coastguard Worker 194*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 195*795d594fSAndroid Build Coastguard Worker name: "art_oatdump_tests_defaults", 196*795d594fSAndroid Build Coastguard Worker device_common_data: [ 197*795d594fSAndroid Build Coastguard Worker ":art-gtest-jars-ProfileTestMultiDex", 198*795d594fSAndroid Build Coastguard Worker ], 199*795d594fSAndroid Build Coastguard Worker srcs: [ 200*795d594fSAndroid Build Coastguard Worker "oatdump_app_test.cc", 201*795d594fSAndroid Build Coastguard Worker "oatdump_test.cc", 202*795d594fSAndroid Build Coastguard Worker "oatdump_image_test.cc", 203*795d594fSAndroid Build Coastguard Worker ], 204*795d594fSAndroid Build Coastguard Worker target: { 205*795d594fSAndroid Build Coastguard Worker host: { 206*795d594fSAndroid Build Coastguard Worker required: [ 207*795d594fSAndroid Build Coastguard Worker "dex2oatd", 208*795d594fSAndroid Build Coastguard Worker "dex2oatds", 209*795d594fSAndroid Build Coastguard Worker "dexdump", 210*795d594fSAndroid Build Coastguard Worker "art_boot_images", 211*795d594fSAndroid Build Coastguard Worker "oatdumpd", 212*795d594fSAndroid Build Coastguard Worker "oatdumpds", 213*795d594fSAndroid Build Coastguard Worker ], 214*795d594fSAndroid Build Coastguard Worker }, 215*795d594fSAndroid Build Coastguard Worker }, 216*795d594fSAndroid Build Coastguard Worker} 217*795d594fSAndroid Build Coastguard Worker 218*795d594fSAndroid Build Coastguard Worker// Version of ART gtest `art_oatdump_tests` bundled with the ART APEX on target. 219*795d594fSAndroid Build Coastguard Worker// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete. 220*795d594fSAndroid Build Coastguard Workerart_cc_test { 221*795d594fSAndroid Build Coastguard Worker name: "art_oatdump_tests", 222*795d594fSAndroid Build Coastguard Worker defaults: [ 223*795d594fSAndroid Build Coastguard Worker "art_gtest_defaults", 224*795d594fSAndroid Build Coastguard Worker "art_oatdump_tests_defaults", 225*795d594fSAndroid Build Coastguard Worker ], 226*795d594fSAndroid Build Coastguard Worker} 227*795d594fSAndroid Build Coastguard Worker 228*795d594fSAndroid Build Coastguard Worker// Standalone version of ART gtest `art_oatdump_tests`, not bundled with the ART APEX on target. 229*795d594fSAndroid Build Coastguard Workerart_cc_test { 230*795d594fSAndroid Build Coastguard Worker name: "art_standalone_oatdump_tests", 231*795d594fSAndroid Build Coastguard Worker defaults: [ 232*795d594fSAndroid Build Coastguard Worker "art_standalone_gtest_defaults", 233*795d594fSAndroid Build Coastguard Worker "art_oatdump_tests_defaults", 234*795d594fSAndroid Build Coastguard Worker ], 235*795d594fSAndroid Build Coastguard Worker data: [":generate-boot-image"], 236*795d594fSAndroid Build Coastguard Worker test_config: "art_standalone_oatdump_tests.xml", 237*795d594fSAndroid Build Coastguard Worker} 238*795d594fSAndroid Build Coastguard Worker 239*795d594fSAndroid Build Coastguard Workerphony_rule { 240*795d594fSAndroid Build Coastguard Worker name: "dump-oat", 241*795d594fSAndroid Build Coastguard Worker phony_deps: ["dump-oat-boot"], 242*795d594fSAndroid Build Coastguard Worker} 243