xref: /aosp_15_r20/art/dex2oat/Android.bp (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
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