blob: ba7f6cc2ccf7f51e47f22d8aeec06c89ace3493e [file] [log] [blame]
Colin Cross1f7f3bd2016-07-27 10:12:38 -07001//
2// Copyright (C) 2011 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
David Sehr8c0961f2018-01-23 16:11:38 -080017// Keep the __jit_debug_register_code symbol as a unique symbol during ICF for architectures where
18// we use gold as the linker (arm, x86, x86_64). The symbol is used by the debuggers to detect when
19// new jit code is generated. We don't want it to be called when a different function with the same
20// (empty) body is called.
Bob Badour9150de62021-02-26 03:22:24 -080021package {
22 // See: http://go/android-license-faq
23 // A large-scale-change added 'default_applicable_licenses' to import
24 // all of the 'license_kinds' from "art_license"
25 // to get the below license kinds:
26 // SPDX-license-identifier-Apache-2.0
27 default_applicable_licenses: ["art_license"],
28}
29
David Srbecky440a9b32018-02-15 17:47:29 +000030JIT_DEBUG_REGISTER_CODE_LDFLAGS = [
31 "-Wl,--keep-unique,__jit_debug_register_code",
Andreas Gampe0dc93b12019-05-15 10:30:22 -070032 "-Wl,--keep-unique,__dex_debug_register_code",
David Srbecky440a9b32018-02-15 17:47:29 +000033]
David Sehr8c0961f2018-01-23 16:11:38 -080034
Christopher Ferris0d38e852019-12-11 09:37:19 -080035// These are defaults for native shared libaries that are expected to be
36// in stack traces often.
37libart_cc_defaults {
38 name: "libart_nativeunwind_defaults",
David Srbecky3a284f82020-12-07 18:49:34 +000039 target: {
40 android_arm: {
Christopher Ferris0d38e852019-12-11 09:37:19 -080041 // Arm 32 bit does not produce complete exidx unwind information
42 // so keep the .debug_frame which is relatively small and does
43 // include needed unwind information.
44 // See b/132992102 and b/145790995 for details.
45 strip: {
46 keep_symbols_and_debug_frame: true,
47 },
48 },
49 // For all other architectures, leave the symbols in the shared library
50 // so that stack unwinders can produce meaningful name resolution.
David Srbecky3a284f82020-12-07 18:49:34 +000051 android_arm64: {
Christopher Ferris0d38e852019-12-11 09:37:19 -080052 strip: {
53 keep_symbols: true,
54 },
55 },
David Srbecky3a284f82020-12-07 18:49:34 +000056 android_x86: {
Christopher Ferris0d38e852019-12-11 09:37:19 -080057 strip: {
58 keep_symbols: true,
59 },
60 },
David Srbecky3a284f82020-12-07 18:49:34 +000061 android_x86_64: {
Christopher Ferris0d38e852019-12-11 09:37:19 -080062 strip: {
63 keep_symbols: true,
64 },
65 },
66 },
67}
68
Martin Stjernholmdc7f1392021-11-03 18:05:33 +000069cc_library_headers {
70 name: "libart_headers",
Martin Stjernholme10abe72021-10-28 03:49:55 +010071 defaults: ["art_defaults"],
Martin Stjernholmdc7f1392021-11-03 18:05:33 +000072 host_supported: true,
73
74 export_include_dirs: ["."],
75
76 // ART's macros.h depends on libbase's macros.h.
77 // Note: runtime_options.h depends on cmdline. But we don't really want to export this
78 // generically. dex2oat takes care of it itself.
79 header_libs: ["art_libartbase_headers"],
80 export_header_lib_headers: ["art_libartbase_headers"],
81
Martin Stjernholmb747b7a2021-11-03 18:40:17 +000082 // We optimize Thread::Current() with a direct TLS access. This requires
83 // access to a platform specific Bionic header.
84 target: {
85 android: {
86 header_libs: ["bionic_libc_platform_headers"],
87 export_header_lib_headers: ["bionic_libc_platform_headers"],
88 },
89 linux_bionic: {
90 header_libs: ["bionic_libc_platform_headers"],
91 export_header_lib_headers: ["bionic_libc_platform_headers"],
92 },
93 },
94
Martin Stjernholmdc7f1392021-11-03 18:05:33 +000095 apex_available: [
96 "com.android.art",
97 "com.android.art.debug",
98 ],
Martin Stjernholmdc7f1392021-11-03 18:05:33 +000099}
100
Nicolas Geoffray8a229072018-05-10 16:34:14 +0100101libart_cc_defaults {
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700102 name: "libart_defaults",
103 defaults: ["art_defaults"],
104 host_supported: true,
105 srcs: [
Calin Juravlec2753e62021-06-25 15:34:09 -0700106 "app_info.cc",
Chang Xing605fe242017-07-20 15:57:21 -0700107 "aot_class_linker.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700108 "art_field.cc",
Calin Juravle33787682019-07-26 14:27:18 -0700109 "sdk_checker.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700110 "art_method.cc",
Alex Light543d8452018-07-13 16:25:58 +0000111 "backtrace_helper.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700112 "barrier.cc",
Andreas Gampe7cc45fd2018-11-21 16:03:08 -0800113 "base/locks.cc",
David Sehr3215fff2018-04-03 17:10:12 -0700114 "base/mem_map_arena_pool.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700115 "base/mutex.cc",
David Sehrc431b9d2018-03-02 12:01:51 -0800116 "base/quasi_atomic.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700117 "base/timing_logger.cc",
Mingyao Yang063fc772016-08-02 11:02:54 -0700118 "cha.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700119 "class_linker.cc",
Calin Juravle87e2cb62017-06-13 21:48:45 -0700120 "class_loader_context.cc",
Vladimir Markob4eb1b12018-05-24 11:09:38 +0100121 "class_root.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700122 "class_table.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700123 "common_throws.cc",
Andrei Onea037d2822020-11-19 00:20:04 +0000124 "compat_framework.cc",
Vladimir Marko606adb32018-04-05 14:49:24 +0100125 "debug_print.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700126 "debugger.cc",
David Sehr9e734c72018-01-04 17:56:19 -0800127 "dex/dex_file_annotations.cc",
David Srbeckye1402122018-06-13 18:20:45 +0100128 "dex_register_location.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700129 "elf_file.cc",
David Sehr97c381e2017-02-01 15:09:58 -0800130 "exec_utils.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700131 "fault_handler.cc",
132 "gc/allocation_record.cc",
133 "gc/allocator/dlmalloc.cc",
134 "gc/allocator/rosalloc.cc",
135 "gc/accounting/bitmap.cc",
136 "gc/accounting/card_table.cc",
137 "gc/accounting/heap_bitmap.cc",
138 "gc/accounting/mod_union_table.cc",
139 "gc/accounting/remembered_set.cc",
140 "gc/accounting/space_bitmap.cc",
141 "gc/collector/concurrent_copying.cc",
142 "gc/collector/garbage_collector.cc",
143 "gc/collector/immune_region.cc",
144 "gc/collector/immune_spaces.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700145 "gc/collector/mark_sweep.cc",
146 "gc/collector/partial_mark_sweep.cc",
147 "gc/collector/semi_space.cc",
148 "gc/collector/sticky_mark_sweep.cc",
149 "gc/gc_cause.cc",
150 "gc/heap.cc",
151 "gc/reference_processor.cc",
152 "gc/reference_queue.cc",
153 "gc/scoped_gc_critical_section.cc",
154 "gc/space/bump_pointer_space.cc",
155 "gc/space/dlmalloc_space.cc",
156 "gc/space/image_space.cc",
157 "gc/space/large_object_space.cc",
158 "gc/space/malloc_space.cc",
159 "gc/space/region_space.cc",
160 "gc/space/rosalloc_space.cc",
161 "gc/space/space.cc",
162 "gc/space/zygote_space.cc",
163 "gc/task_processor.cc",
Mathieu Chartier1ca68902017-04-18 11:26:22 -0700164 "gc/verification.cc",
Alex Lightc1ad13a2020-03-24 11:37:45 -0700165 "handle.cc",
Andreas Gampeaa120012018-03-28 16:23:24 -0700166 "hidden_api.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700167 "hprof/hprof.cc",
168 "image.cc",
Vladimir Markof3c52b42017-11-17 17:32:12 +0000169 "index_bss_mapping.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700170 "indirect_reference_table.cc",
171 "instrumentation.cc",
172 "intern_table.cc",
173 "interpreter/interpreter.cc",
David Srbecky912f36c2018-09-08 12:22:58 +0100174 "interpreter/interpreter_cache.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700175 "interpreter/interpreter_common.cc",
buzbee78f1bdc2017-03-01 10:55:57 -0800176 "interpreter/interpreter_intrinsics.cc",
David Srbecky2ee09ff2018-10-24 13:24:22 +0100177 "interpreter/interpreter_switch_impl0.cc",
178 "interpreter/interpreter_switch_impl1.cc",
179 "interpreter/interpreter_switch_impl2.cc",
180 "interpreter/interpreter_switch_impl3.cc",
Andreas Gampe36a296f2017-06-13 14:11:11 -0700181 "interpreter/lock_count_data.cc",
182 "interpreter/shadow_frame.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700183 "interpreter/unstarted_runtime.cc",
Andreas Gampe36a296f2017-06-13 14:11:11 -0700184 "java_frame_root_info.cc",
Wessam Hassaneinb5a10be2020-11-11 16:42:52 -0800185 "javaheapprof/javaheapsampler.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700186 "jit/debugger_interface.cc",
187 "jit/jit.cc",
188 "jit/jit_code_cache.cc",
Nicolas Geoffray2a905b22019-06-06 09:04:07 +0100189 "jit/jit_memory_region.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700190 "jit/profiling_info.cc",
191 "jit/profile_saver.cc",
Andreas Gampec0ed43e2018-06-18 10:47:15 -0700192 "jni/check_jni.cc",
Vladimir Markoa3ad0cd2018-05-04 10:06:38 +0100193 "jni/java_vm_ext.cc",
194 "jni/jni_env_ext.cc",
Alex Light79d6c802019-06-27 15:50:11 +0000195 "jni/jni_id_manager.cc",
Vladimir Markoa3ad0cd2018-05-04 10:06:38 +0100196 "jni/jni_internal.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700197 "linear_alloc.cc",
Orion Hodsonba28f9f2016-10-26 10:56:25 +0100198 "method_handles.cc",
Eric Holk39d529f2021-02-17 12:48:53 -0800199 "metrics/reporter.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700200 "mirror/array.cc",
201 "mirror/class.cc",
Alex Lightd6251582016-10-31 11:12:30 -0700202 "mirror/class_ext.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700203 "mirror/dex_cache.cc",
Narayan Kamath000e1882016-10-24 17:14:25 +0100204 "mirror/emulated_stack_frame.cc",
Neil Fuller0e844392016-09-08 13:43:31 +0100205 "mirror/executable.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700206 "mirror/field.cc",
207 "mirror/method.cc",
Narayan Kamathafa48272016-08-03 12:46:58 +0100208 "mirror/method_handle_impl.cc",
Orion Hodsonc069a302017-01-18 09:23:12 +0000209 "mirror/method_handles_lookup.cc",
Narayan Kamathafa48272016-08-03 12:46:58 +0100210 "mirror/method_type.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700211 "mirror/object.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700212 "mirror/stack_trace_element.cc",
213 "mirror/string.cc",
214 "mirror/throwable.cc",
Orion Hodson005ac512017-10-24 15:43:43 +0100215 "mirror/var_handle.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700216 "monitor.cc",
Vladimir Markof52d92f2019-03-29 12:33:02 +0000217 "monitor_objects_stack_visitor.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700218 "native_bridge_art_interface.cc",
219 "native_stack_dump.cc",
220 "native/dalvik_system_DexFile.cc",
Dan Zimmermanb682ea42019-12-23 06:59:06 -0800221 "native/dalvik_system_BaseDexClassLoader.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700222 "native/dalvik_system_VMDebug.cc",
223 "native/dalvik_system_VMRuntime.cc",
224 "native/dalvik_system_VMStack.cc",
225 "native/dalvik_system_ZygoteHooks.cc",
226 "native/java_lang_Class.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700227 "native/java_lang_Object.cc",
228 "native/java_lang_String.cc",
229 "native/java_lang_StringFactory.cc",
230 "native/java_lang_System.cc",
231 "native/java_lang_Thread.cc",
232 "native/java_lang_Throwable.cc",
233 "native/java_lang_VMClassLoader.cc",
Orion Hodson8671f582022-03-09 06:53:48 +0000234 "native/java_lang_invoke_MethodHandle.cc",
Narayan Kamathbd2fed52017-01-25 10:46:54 +0000235 "native/java_lang_invoke_MethodHandleImpl.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700236 "native/java_lang_ref_FinalizerReference.cc",
237 "native/java_lang_ref_Reference.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700238 "native/java_lang_reflect_Array.cc",
239 "native/java_lang_reflect_Constructor.cc",
Neil Fuller0e844392016-09-08 13:43:31 +0100240 "native/java_lang_reflect_Executable.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700241 "native/java_lang_reflect_Field.cc",
242 "native/java_lang_reflect_Method.cc",
Neil Fuller60458a02016-09-01 15:32:44 +0100243 "native/java_lang_reflect_Parameter.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700244 "native/java_lang_reflect_Proxy.cc",
245 "native/java_util_concurrent_atomic_AtomicLong.cc",
Miguel116a26a2022-03-25 13:28:45 +0000246 "native/libcore_io_Memory.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700247 "native/libcore_util_CharsetUtils.cc",
248 "native/org_apache_harmony_dalvik_ddmc_DdmServer.cc",
249 "native/org_apache_harmony_dalvik_ddmc_DdmVmInternal.cc",
250 "native/sun_misc_Unsafe.cc",
Sorin Basca2f01e8e2021-06-18 06:44:07 +0000251 "native/jdk_internal_misc_Unsafe.cc",
Alex Lighte77b48b2017-02-22 11:08:06 -0800252 "non_debuggable_classes.cc",
Nicolas Geoffray013d1ee2019-12-04 16:18:15 +0000253 "nterp_helpers.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700254 "oat.cc",
255 "oat_file.cc",
256 "oat_file_assistant.cc",
257 "oat_file_manager.cc",
258 "oat_quick_method_header.cc",
259 "object_lock.cc",
260 "offsets.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700261 "parsed_options.cc",
262 "plugin.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700263 "quick_exception_handler.cc",
Andreas Gampeaea05c12017-05-19 08:45:02 -0700264 "read_barrier.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700265 "reference_table.cc",
266 "reflection.cc",
Alex Light55eccdf2019-10-07 13:51:13 +0000267 "reflective_handle_scope.cc",
Alex Lightc18eba32019-09-24 14:36:27 -0700268 "reflective_value_visitor.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700269 "runtime.cc",
Andreas Gampe04bbb5b2017-01-19 17:49:03 +0000270 "runtime_callbacks.cc",
Roland Levillain21482ad2017-01-19 20:04:27 +0000271 "runtime_common.cc",
Orion Hodson26ef34c2017-11-01 13:32:41 +0000272 "runtime_intrinsics.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700273 "runtime_options.cc",
Andreas Gampec15a2f42017-04-21 12:09:39 -0700274 "scoped_thread_state_change.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700275 "signal_catcher.cc",
276 "stack.cc",
277 "stack_map.cc",
Vladimir Marko552a1342017-10-31 10:56:47 +0000278 "string_builder_append.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700279 "thread.cc",
280 "thread_list.cc",
281 "thread_pool.cc",
282 "ti/agent.cc",
283 "trace.cc",
284 "transaction.cc",
Orion Hodson537a4fe2018-05-15 13:57:58 +0100285 "var_handles.cc",
David Brazdil7b49e6c2016-09-01 11:06:18 +0100286 "vdex_file.cc",
Andreas Gampea43ba3d2019-03-13 15:49:20 -0700287 "verifier/class_verifier.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700288 "verifier/instruction_flags.cc",
289 "verifier/method_verifier.cc",
290 "verifier/reg_type.cc",
291 "verifier/reg_type_cache.cc",
292 "verifier/register_line.cc",
David Brazdilca3c8c32016-09-06 14:04:48 +0100293 "verifier/verifier_deps.cc",
Andreas Gampe90b936d2017-01-31 08:58:55 -0800294 "verify_object.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700295 "well_known_classes.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700296
297 "arch/context.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700298 "arch/instruction_set_features.cc",
299 "arch/memcmp16.cc",
300 "arch/arm/instruction_set_features_arm.cc",
301 "arch/arm/registers_arm.cc",
302 "arch/arm64/instruction_set_features_arm64.cc",
303 "arch/arm64/registers_arm64.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700304 "arch/x86/instruction_set_features_x86.cc",
305 "arch/x86/registers_x86.cc",
306 "arch/x86_64/registers_x86_64.cc",
307 "entrypoints/entrypoint_utils.cc",
308 "entrypoints/jni/jni_entrypoints.cc",
309 "entrypoints/math_entrypoints.cc",
310 "entrypoints/quick/quick_alloc_entrypoints.cc",
311 "entrypoints/quick/quick_cast_entrypoints.cc",
312 "entrypoints/quick/quick_deoptimization_entrypoints.cc",
313 "entrypoints/quick/quick_dexcache_entrypoints.cc",
Serban Constantinescuda8ffec2016-03-09 12:02:11 +0000314 "entrypoints/quick/quick_entrypoints_enum.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700315 "entrypoints/quick/quick_field_entrypoints.cc",
316 "entrypoints/quick/quick_fillarray_entrypoints.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700317 "entrypoints/quick/quick_jni_entrypoints.cc",
318 "entrypoints/quick/quick_lock_entrypoints.cc",
319 "entrypoints/quick/quick_math_entrypoints.cc",
Vladimir Marko552a1342017-10-31 10:56:47 +0000320 "entrypoints/quick/quick_string_builder_append_entrypoints.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700321 "entrypoints/quick/quick_thread_entrypoints.cc",
322 "entrypoints/quick/quick_throw_entrypoints.cc",
323 "entrypoints/quick/quick_trampoline_entrypoints.cc",
324 ],
325
326 arch: {
327 arm: {
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700328 srcs: [
Nicolas Geoffraydd406c32020-11-22 22:53:18 +0000329 "interpreter/mterp/nterp.cc",
Nicolas Geoffraydd406c32020-11-22 22:53:18 +0000330 ":libart_mterp.armng",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700331 "arch/arm/context_arm.cc",
332 "arch/arm/entrypoints_init_arm.cc",
333 "arch/arm/instruction_set_features_assembly_tests.S",
334 "arch/arm/jni_entrypoints_arm.S",
335 "arch/arm/memcmp16_arm.S",
336 "arch/arm/quick_entrypoints_arm.S",
337 "arch/arm/quick_entrypoints_cc_arm.cc",
338 "arch/arm/thread_arm.cc",
339 "arch/arm/fault_handler_arm.cc",
340 ],
341 },
342 arm64: {
343 srcs: [
Nicolas Geoffray4fc75692020-01-13 21:49:22 +0000344 "interpreter/mterp/nterp.cc",
Nicolas Geoffray4fc75692020-01-13 21:49:22 +0000345 ":libart_mterp.arm64ng",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700346 "arch/arm64/context_arm64.cc",
347 "arch/arm64/entrypoints_init_arm64.cc",
348 "arch/arm64/jni_entrypoints_arm64.S",
349 "arch/arm64/memcmp16_arm64.S",
350 "arch/arm64/quick_entrypoints_arm64.S",
351 "arch/arm64/thread_arm64.cc",
352 "monitor_pool.cc",
353 "arch/arm64/fault_handler_arm64.cc",
354 ],
355 },
356 x86: {
357 srcs: [
Nicolas Geoffrayf5958f82021-06-02 14:48:14 +0100358 "interpreter/mterp/nterp.cc",
Nicolas Geoffrayf5958f82021-06-02 14:48:14 +0100359 ":libart_mterp.x86ng",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700360 "arch/x86/context_x86.cc",
361 "arch/x86/entrypoints_init_x86.cc",
362 "arch/x86/jni_entrypoints_x86.S",
363 "arch/x86/memcmp16_x86.S",
364 "arch/x86/quick_entrypoints_x86.S",
365 "arch/x86/thread_x86.cc",
366 "arch/x86/fault_handler_x86.cc",
367 ],
jaishankbae88c02019-06-11 16:47:45 +0530368 avx: {
369 asflags: ["-DMTERP_USE_AVX"],
370 },
371 avx2: {
372 asflags: ["-DMTERP_USE_AVX"],
373 },
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700374 },
375 x86_64: {
376 srcs: [
377 // Note that the fault_handler_x86.cc is not a mistake. This file is
378 // shared between the x86 and x86_64 architectures.
Nicolas Geoffray00391822019-12-10 10:17:23 +0000379 "interpreter/mterp/nterp.cc",
Nicolas Geoffray00391822019-12-10 10:17:23 +0000380 ":libart_mterp.x86_64ng",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700381 "arch/x86_64/context_x86_64.cc",
382 "arch/x86_64/entrypoints_init_x86_64.cc",
383 "arch/x86_64/jni_entrypoints_x86_64.S",
384 "arch/x86_64/memcmp16_x86_64.S",
385 "arch/x86_64/quick_entrypoints_x86_64.S",
386 "arch/x86_64/thread_x86_64.cc",
387 "monitor_pool.cc",
388 "arch/x86/fault_handler_x86.cc",
389 ],
jaishankbae88c02019-06-11 16:47:45 +0530390 avx: {
391 asflags: ["-DMTERP_USE_AVX"],
392 },
393 avx2: {
394 asflags: ["-DMTERP_USE_AVX"],
395 },
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700396 },
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700397 },
Martin Stjernholm5fef5562021-06-21 23:33:33 +0100398
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700399 target: {
400 android: {
401 srcs: [
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700402 "monitor_android.cc",
403 "runtime_android.cc",
404 "thread_android.cc",
Eric Holk39d529f2021-02-17 12:48:53 -0800405 "metrics/statsd.cc",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700406 ],
Martin Stjernholm93c28ed2021-05-14 14:11:42 +0100407 header_libs: [
408 "libnativeloader-headers", // For dlext_namespaces.h
409 ],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700410 shared_libs: [
dimitry268aa302019-03-19 12:25:03 +0100411 "libdl_android",
Eric Holk39d529f2021-02-17 12:48:53 -0800412 "libstatssocket",
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700413 "libz", // For adler32.
Wessam Hassanein45a9fc92021-02-09 14:09:10 -0800414 "heapprofd_client_api",
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +0000415 ],
Eric Holk39d529f2021-02-17 12:48:53 -0800416 static_libs: [
417 "libstatslog_art",
Sorin Basca1e7faf72021-05-27 13:05:22 +0000418 "libtinyxml2",
Nicolas Geoffrayd3c45c22021-04-27 13:21:28 +0100419 ],
420 generated_sources: [
Sorin Basca1e7faf72021-05-27 13:05:22 +0000421 "apex-info-list-tinyxml",
Eric Holk39d529f2021-02-17 12:48:53 -0800422 ],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700423 },
424 android_arm: {
425 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
426 },
427 android_arm64: {
428 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
429 },
430 android_x86: {
431 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
432 },
433 android_x86_64: {
434 ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
435 },
436 host: {
437 srcs: [
438 "monitor_linux.cc",
439 "runtime_linux.cc",
440 "thread_linux.cc",
441 ],
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +0000442 shared_libs: [
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700443 "libz", // For adler32.
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +0000444 ],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700445 },
446 },
Martin Stjernholm5fef5562021-06-21 23:33:33 +0100447
Nicolas Geoffrayd3c45c22021-04-27 13:21:28 +0100448 generated_sources: [
Martin Stjernholm93c28ed2021-05-14 14:11:42 +0100449 "art_operator_srcs",
Nicolas Geoffrayd3c45c22021-04-27 13:21:28 +0100450 ],
Igor Murashkin2bb70d32017-02-06 10:34:14 -0800451 // asm_support_gen.h (used by asm_support.h) is generated with cpp-define-generator
452 generated_headers: ["cpp-define-generator-asm-support"],
Roland Levillain55ffe7f2021-06-14 15:18:54 +0100453 // export our headers so the libart(d)-gtest targets can use it as well.
Igor Murashkin2bb70d32017-02-06 10:34:14 -0800454 export_generated_headers: ["cpp-define-generator-asm-support"],
Martin Stjernholm5fef5562021-06-21 23:33:33 +0100455
Andreas Gampe3157fc22017-08-23 09:43:46 -0700456 header_libs: [
457 "art_cmdlineparser_headers",
David Srbecky50b47432018-10-18 12:26:34 +0100458 "cpp-define-generator-definitions",
Andreas Gamped863be72017-09-12 12:02:28 -0700459 "jni_platform_headers",
Martin Stjernholmdc7f1392021-11-03 18:05:33 +0000460 "libart_headers",
Orion Hodson00cb81d2020-04-03 06:47:07 +0100461 "libnativehelper_header_only",
Andreas Gampe3157fc22017-08-23 09:43:46 -0700462 ],
Martin Stjernholmdc7f1392021-11-03 18:05:33 +0000463 export_header_lib_headers: ["libart_headers"],
Daniil Riazanovskiy96360622020-09-16 23:26:52 +0000464 whole_static_libs: [
465 "libcpu_features",
466 ],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700467 shared_libs: [
Orion Hodson119733d2019-01-30 15:14:41 +0000468 "libartpalette",
Martin Stjernholm2eb1f832020-09-17 00:25:52 +0100469 "libbacktrace",
470 "libbase", // For common macros.
471 "liblog",
472 "liblz4",
473 "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib.
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700474 "libnativebridge",
475 "libnativeloader",
Colin Cross616f4002019-05-29 21:39:14 -0700476 "libsigchain",
Martin Stjernholm2eb1f832020-09-17 00:25:52 +0100477 "libunwindstack",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700478 ],
Orion Hodsonbaf563d2021-04-08 07:53:54 +0100479 static_libs: ["libodrstatslog"],
Martin Stjernholm5fef5562021-06-21 23:33:33 +0100480
481 runtime_libs: [
482 // Libraries loaded at runtime. Exceptions:
483 // - libart(d)-compiler.so and libopenjdk(d).so cannot be listed here
484 // due to cyclic dependency.
485 // - libicu_jni.so is only loaded to handle dependency order in VM
486 // startup (see Runtime::InitNativeMethods), but its API is internal
487 // to com.android.i18n and not used by ART/libcore. Therefore it's not
488 // listed here to avoid visibility issues. Instead it's linked from
489 // the ART module namespace through an entry in requireNativeLibs in
490 // manifest-art.json.
491 "libjavacore",
492 ],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700493}
494
Andreas Gampeec5ed062018-01-26 16:20:02 -0800495libart_static_cc_defaults {
496 name: "libart_static_base_defaults",
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100497 whole_static_libs: [
Orion Hodson119733d2019-01-30 15:14:41 +0000498 "libartpalette",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800499 "libbacktrace",
500 "libbase",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800501 "liblog",
Martin Stjernholm2eb1f832020-09-17 00:25:52 +0100502 "liblz4",
503 "liblzma", // libelffile dependency; must be repeated here since it's a static lib.
Andreas Gampeec5ed062018-01-26 16:20:02 -0800504 "libnativebridge",
505 "libnativeloader",
Orion Hodsonbaf563d2021-04-08 07:53:54 +0100506 "libodrstatslog",
David Srbeckyd3ee9022020-07-27 16:05:38 +0100507 "libsigchain_fake",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800508 "libunwindstack",
Nicolas Geoffray65ed42a2018-10-30 12:33:04 +0000509 "libz",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800510 ],
Martin Stjernholm13ab5412021-04-21 14:15:45 +0100511 target: {
512 bionic: {
513 whole_static_libs: [
514 "libasync_safe", // libunwindstack dependency on Bionic.
515 ],
516 },
517 },
Andreas Gampeec5ed062018-01-26 16:20:02 -0800518}
519
520cc_defaults {
521 name: "libart_static_defaults",
522 defaults: [
523 "libart_static_base_defaults",
524 "libartbase_static_defaults",
525 "libdexfile_static_defaults",
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100526 "libdexfile_support_static_defaults",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800527 "libprofile_static_defaults",
528 ],
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100529 whole_static_libs: [
David Srbecky50928112019-03-22 17:06:28 +0000530 "libart",
531 "libelffile",
532 ],
Andreas Gampeec5ed062018-01-26 16:20:02 -0800533}
534
535cc_defaults {
536 name: "libartd_static_defaults",
537 defaults: [
538 "libart_static_base_defaults",
539 "libartbased_static_defaults",
540 "libdexfiled_static_defaults",
Martin Stjernholm68e5db52020-09-23 20:43:56 +0100541 "libdexfiled_support_static_defaults",
Andreas Gampeec5ed062018-01-26 16:20:02 -0800542 "libprofiled_static_defaults",
543 ],
Martin Stjernholm35f765b2020-09-23 00:38:38 +0100544 whole_static_libs: [
David Srbecky50928112019-03-22 17:06:28 +0000545 "libartd",
546 "libelffiled",
547 ],
Andreas Gampeec5ed062018-01-26 16:20:02 -0800548}
549
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700550gensrcs {
551 name: "art_operator_srcs",
Alex Lightb69d2d32018-02-21 13:37:17 -0800552 cmd: "$(location generate_operator_out) art/runtime $(in) > $(out)",
553 tools: ["generate_operator_out"],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700554 srcs: [
Andreas Gampe8764dc32019-01-07 15:20:12 -0800555 "base/callee_save_type.h",
Andreas Gampe7cc45fd2018-11-21 16:03:08 -0800556 "base/locks.h",
Andreas Gampeee5303f2017-08-31 15:34:42 -0700557 "class_status.h",
Nicolas Geoffray0d60a2b2020-06-17 14:31:56 +0100558 "compilation_kind.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700559 "gc_root.h",
560 "gc/allocator_type.h",
561 "gc/allocator/rosalloc.h",
562 "gc/collector_type.h",
563 "gc/collector/gc_type.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700564 "gc/space/region_space.h",
565 "gc/space/space.h",
566 "gc/weak_root_state.h",
567 "image.h",
568 "instrumentation.h",
569 "indirect_reference_table.h",
Alex Light40320712017-12-14 11:52:04 -0800570 "jdwp_provider.h",
Alex Light79d6c802019-06-27 15:50:11 +0000571 "jni_id_type.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700572 "lock_word.h",
Vladimir Markod3d00c02019-11-07 15:09:07 +0000573 "oat_file.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700574 "process_state.h",
Alex Lightc18eba32019-09-24 14:36:27 -0700575 "reflective_value_visitor.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700576 "stack.h",
Alex Light46f93402017-06-29 11:59:50 -0700577 "suspend_reason.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700578 "thread.h",
579 "thread_state.h",
Orion Hodson283ad2d2018-03-26 13:37:41 +0100580 "trace.h",
Andreas Gampe6d7abbd2017-04-24 13:19:09 -0700581 "verifier/verifier_enums.h",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700582 ],
583 output_extension: "operator_out.cc",
584}
585
586// We always build dex2oat and dependencies, even if the host build is otherwise disabled, since
587// they are used to cross compile for the target.
588
Roland Levillain0a74d272021-10-01 19:25:44 +0100589// Properties common to `libart` and `libart-broken`.
590art_cc_defaults {
591 name: "libart_common_defaults",
Christopher Ferris0d38e852019-12-11 09:37:19 -0800592 defaults: [
593 "libart_defaults",
594 "libart_nativeunwind_defaults",
Collin Fijalkovich07ff2832020-08-25 10:43:12 -0700595 "art_hugepage_defaults",
Christopher Ferris0d38e852019-12-11 09:37:19 -0800596 ],
David Sehrc431b9d2018-03-02 12:01:51 -0800597 whole_static_libs: [
David Sehrc431b9d2018-03-02 12:01:51 -0800598 ],
David Srbecky50928112019-03-22 17:06:28 +0000599 static_libs: [
600 "libelffile",
601 ],
David Sehrc431b9d2018-03-02 12:01:51 -0800602 shared_libs: [
David Sehr1f010162018-05-15 08:59:32 -0700603 "libartbase",
David Sehrc431b9d2018-03-02 12:01:51 -0800604 "libdexfile",
David Sehr82d046e2018-04-23 08:14:19 -0700605 "libprofile",
David Sehrc431b9d2018-03-02 12:01:51 -0800606 ],
607 export_shared_lib_headers: [
608 "libdexfile",
609 ],
Yi Kongfd8bb932018-03-12 16:52:57 -0700610 target: {
611 android: {
612 lto: {
Andreas Gampe0dc93b12019-05-15 10:30:22 -0700613 thin: true,
Yi Kongfd8bb932018-03-12 16:52:57 -0700614 },
615 },
616 },
Roland Levillain0a74d272021-10-01 19:25:44 +0100617}
618
619// Release version of the ART runtime library.
620art_cc_library {
621 name: "libart",
622 defaults: ["libart_common_defaults"],
Jiyong Park066dd9022019-12-19 02:11:59 +0000623 apex_available: [
Martin Stjernholm3e9abfc2020-10-09 22:17:51 +0100624 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +0000625 "com.android.art.debug",
626 ],
Yi Kong1bad13f2021-12-29 14:16:59 +0800627 afdo: true,
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700628}
629
Roland Levillain0a74d272021-10-01 19:25:44 +0100630// "Broken" version of the ART runtime library, used only for testing.
631art_cc_test_library {
632 name: "libart-broken",
633 defaults: ["libart_common_defaults"],
634 stem: "libart",
635 gtest: false,
636 cflags: ["-DART_CRASH_RUNTIME_DELIBERATELY"],
637 apex_available: [
638 "test_broken_com.android.art",
639 ],
640}
641
642// Debug version of the ART runtime library.
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700643art_cc_library {
644 name: "libartd",
645 defaults: [
Dan Willemsen2ca27802017-09-27 14:57:43 -0700646 "art_debug_defaults",
647 "libart_defaults",
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700648 ],
David Sehrc431b9d2018-03-02 12:01:51 -0800649 whole_static_libs: [
David Sehrc431b9d2018-03-02 12:01:51 -0800650 ],
David Srbecky50928112019-03-22 17:06:28 +0000651 static_libs: [
652 "libelffiled",
653 ],
David Sehrc431b9d2018-03-02 12:01:51 -0800654 shared_libs: [
David Sehr1f010162018-05-15 08:59:32 -0700655 "libartbased",
David Sehrc431b9d2018-03-02 12:01:51 -0800656 "libdexfiled",
David Sehr82d046e2018-04-23 08:14:19 -0700657 "libprofiled",
David Sehrc431b9d2018-03-02 12:01:51 -0800658 ],
659 export_shared_lib_headers: [
660 "libdexfiled",
661 ],
Jiyong Park066dd9022019-12-19 02:11:59 +0000662 apex_available: [
663 "com.android.art.debug",
Martin Stjernholma2f48a42021-04-09 13:23:21 +0100664 // TODO(b/183882457): This lib doesn't go into com.android.art, but
665 // apex_available lists need to be the same for internal libs to avoid
666 // stubs, and this depends on libsigchain.
667 "com.android.art",
Jiyong Park066dd9022019-12-19 02:11:59 +0000668 ],
Colin Cross1f7f3bd2016-07-27 10:12:38 -0700669}
670
Roland Levillainf0409142021-03-22 15:45:03 +0000671art_cc_defaults {
672 name: "libart-runtime-gtest-defaults",
Chih-Hung Hsieha0a5f002022-02-17 21:14:37 -0800673 tidy_timeout_srcs: [
674 "common_runtime_test.cc",
675 ],
Calin Juravle36eb3132017-01-13 16:32:38 -0800676 srcs: [
677 "common_runtime_test.cc",
Dan Willemsen2ca27802017-09-27 14:57:43 -0700678 "dexopt_test.cc",
Calin Juravle36eb3132017-01-13 16:32:38 -0800679 ],
Colin Cross6b22aa52016-09-12 14:35:39 -0700680 shared_libs: [
Andreas Gampe3fec9ac2016-09-13 10:47:28 -0700681 "libbase",
Christopher Ferris71884782022-03-26 15:37:43 -0700682 ],
683 static_libs: [
684 "libprocinfo",
Andreas Gampe373a9b52017-10-18 09:01:57 -0700685 ],
686 header_libs: [
687 "libnativehelper_header_only",
Colin Cross6b22aa52016-09-12 14:35:39 -0700688 ],
689}
690
Roland Levillainf0409142021-03-22 15:45:03 +0000691art_cc_library {
692 name: "libart-runtime-gtest",
Colin Cross6e95dd52016-09-12 15:37:10 -0700693 defaults: [
Roland Levillainf0409142021-03-22 15:45:03 +0000694 "libart-runtime-gtest-defaults",
695 "libart-gtest-defaults",
Colin Cross6e95dd52016-09-12 15:37:10 -0700696 ],
Roland Levillainf0409142021-03-22 15:45:03 +0000697 shared_libs: [
698 "libart",
699 "libartbase-art-gtest",
700 ],
701}
702
703art_cc_library {
704 name: "libartd-runtime-gtest",
705 defaults: [
706 "libart-runtime-gtest-defaults",
707 "libartd-gtest-defaults",
708 ],
709 shared_libs: [
710 "libartd",
711 "libartbased-art-gtest",
712 ],
713}
714
715art_cc_defaults {
716 name: "art_runtime_tests_defaults",
David Srbecky4a88a5a2020-05-05 16:21:57 +0100717 data: [
718 ":art-gtest-jars-AllFields",
719 ":art-gtest-jars-ErroneousA",
720 ":art-gtest-jars-ErroneousB",
721 ":art-gtest-jars-ErroneousInit",
722 ":art-gtest-jars-Extension1",
723 ":art-gtest-jars-Extension2",
724 ":art-gtest-jars-ForClassLoaderA",
725 ":art-gtest-jars-ForClassLoaderB",
726 ":art-gtest-jars-ForClassLoaderC",
727 ":art-gtest-jars-ForClassLoaderD",
728 ":art-gtest-jars-HiddenApiSignatures",
729 ":art-gtest-jars-IMTA",
730 ":art-gtest-jars-IMTB",
731 ":art-gtest-jars-Instrumentation",
732 ":art-gtest-jars-Interfaces",
733 ":art-gtest-jars-LinkageTest",
734 ":art-gtest-jars-Main",
735 ":art-gtest-jars-MainStripped",
736 ":art-gtest-jars-MainUncompressedAligned",
737 ":art-gtest-jars-MethodTypes",
738 ":art-gtest-jars-MultiDex",
739 ":art-gtest-jars-MultiDexModifiedSecondary",
740 ":art-gtest-jars-MultiDexUncompressedAligned",
741 ":art-gtest-jars-MyClass",
742 ":art-gtest-jars-MyClassNatives",
743 ":art-gtest-jars-Nested",
744 ":art-gtest-jars-Packages",
745 ":art-gtest-jars-ProfileTestMultiDex",
746 ":art-gtest-jars-ProtoCompare",
747 ":art-gtest-jars-ProtoCompare2",
748 ":art-gtest-jars-StaticLeafMethods",
749 ":art-gtest-jars-Statics",
750 ":art-gtest-jars-StaticsFromCode",
751 ":art-gtest-jars-Transaction",
752 ":art-gtest-jars-VerifierDeps",
753 ":art-gtest-jars-VerifierDepsMulti",
754 ":art-gtest-jars-XandY",
755 ],
Chih-Hung Hsieha0a5f002022-02-17 21:14:37 -0800756 tidy_timeout_srcs: [
757 "arch/stub_test.cc",
758 "class_linker_test.cc",
759 "class_loader_context_test.cc",
760 "hidden_api_test.cc",
761 "instrumentation_test.cc",
762 "interpreter/unstarted_runtime_test.cc",
763 "jni/jni_internal_test.cc",
764 "method_handles_test.cc",
765 "mirror/object_test.cc",
766 "mirror/var_handle_test.cc",
767 "oat_file_assistant_test.cc",
768 "runtime_callbacks_test.cc",
769 "subtype_check_test.cc",
770 "transaction_test.cc",
771 "verifier/reg_type_test.cc",
772 ],
Colin Cross6e95dd52016-09-12 15:37:10 -0700773 srcs: [
Calin Juravlec2753e62021-06-25 15:34:09 -0700774 "app_info_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700775 "arch/arch_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700776 "arch/instruction_set_features_test.cc",
777 "arch/memcmp16_test.cc",
778 "arch/stub_test.cc",
779 "arch/arm/instruction_set_features_arm_test.cc",
780 "arch/arm64/instruction_set_features_arm64_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700781 "arch/x86/instruction_set_features_x86_test.cc",
782 "arch/x86_64/instruction_set_features_x86_64_test.cc",
783 "barrier_test.cc",
Eric Holka1cc5402020-12-04 23:37:11 +0000784 "base/message_queue_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700785 "base/mutex_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700786 "base/timing_logger_test.cc",
Mingyao Yang063fc772016-08-02 11:02:54 -0700787 "cha_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700788 "class_linker_test.cc",
Calin Juravle87e2cb62017-06-13 21:48:45 -0700789 "class_loader_context_test.cc",
Mathieu Chartierdb70ce52016-12-12 11:06:59 -0800790 "class_table_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700791 "entrypoints/math_entrypoints_test.cc",
792 "entrypoints/quick/quick_trampoline_entrypoints_test.cc",
793 "entrypoints_order_test.cc",
David Sehrb2ec9f52018-02-21 13:20:31 -0800794 "exec_utils_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700795 "gc/accounting/card_table_test.cc",
796 "gc/accounting/mod_union_table_test.cc",
797 "gc/accounting/space_bitmap_test.cc",
798 "gc/collector/immune_spaces_test.cc",
799 "gc/heap_test.cc",
Mathieu Chartier1ca68902017-04-18 11:26:22 -0700800 "gc/heap_verification_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700801 "gc/reference_queue_test.cc",
802 "gc/space/dlmalloc_space_static_test.cc",
803 "gc/space/dlmalloc_space_random_test.cc",
Richard Uhler84f50ae2017-02-06 15:12:45 +0000804 "gc/space/image_space_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700805 "gc/space/large_object_space_test.cc",
806 "gc/space/rosalloc_space_static_test.cc",
807 "gc/space/rosalloc_space_random_test.cc",
808 "gc/space/space_create_test.cc",
809 "gc/system_weak_test.cc",
810 "gc/task_processor_test.cc",
811 "gtest_test.cc",
812 "handle_scope_test.cc",
Mathew Inwood7d74ef52018-03-16 14:18:33 +0000813 "hidden_api_test.cc",
Andreas Gampea1ff30f2016-09-27 12:19:45 -0700814 "imtable_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700815 "indirect_reference_table_test.cc",
816 "instrumentation_test.cc",
817 "intern_table_test.cc",
818 "interpreter/safe_math_test.cc",
819 "interpreter/unstarted_runtime_test.cc",
Nicolas Geoffray2411f492019-06-14 08:54:46 +0100820 "jit/jit_memory_region_test.cc",
Calin Juravlef70dfec2019-10-02 18:58:19 -0700821 "jit/profile_saver_test.cc",
David Sehr1fed3432018-05-29 13:19:47 -0700822 "jit/profiling_info_test.cc",
Vladimir Markoa3ad0cd2018-05-04 10:06:38 +0100823 "jni/java_vm_ext_test.cc",
Vladimir Marko2b076df2019-02-20 11:27:52 +0000824 "jni/jni_internal_test.cc",
Orion Hodsonc1d3bac2018-01-26 14:38:55 +0000825 "method_handles_test.cc",
Calin Juravleec11cf12021-06-17 15:41:08 -0700826 "metrics/reporter_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700827 "mirror/dex_cache_test.cc",
Narayan Kamathafa48272016-08-03 12:46:58 +0100828 "mirror/method_type_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700829 "mirror/object_test.cc",
Orion Hodson005ac512017-10-24 15:43:43 +0100830 "mirror/var_handle_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700831 "monitor_pool_test.cc",
832 "monitor_test.cc",
833 "oat_file_test.cc",
834 "oat_file_assistant_test.cc",
835 "parsed_options_test.cc",
836 "prebuilt_tools_test.cc",
Vladimir Marko2b076df2019-02-20 11:27:52 +0000837 "proxy_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700838 "reference_table_test.cc",
Andreas Gampe04bbb5b2017-01-19 17:49:03 +0000839 "runtime_callbacks_test.cc",
Andreas Gampeba26b512019-05-31 13:07:26 -0700840 "runtime_test.cc",
Igor Murashkinf31a00c2017-10-27 10:52:07 -0700841 "subtype_check_info_test.cc",
Igor Murashkin495e7832017-10-27 10:56:20 -0700842 "subtype_check_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700843 "thread_pool_test.cc",
844 "transaction_test.cc",
Nicolas Geoffray21b65682019-03-12 00:49:45 +0000845 "two_runtimes_test.cc",
Richard Uhlerb8ab63a2017-01-31 11:27:37 +0000846 "vdex_file_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700847 "verifier/method_verifier_test.cc",
848 "verifier/reg_type_test.cc",
Colin Cross6e95dd52016-09-12 15:37:10 -0700849 ],
850 shared_libs: [
851 "libbacktrace",
852 ],
Andreas Gampe3157fc22017-08-23 09:43:46 -0700853 header_libs: [
Dan Willemsen2ca27802017-09-27 14:57:43 -0700854 "art_cmdlineparser_headers", // For parsed_options_test.
Andreas Gampe3157fc22017-08-23 09:43:46 -0700855 ],
Colin Cross6e95dd52016-09-12 15:37:10 -0700856}
857
Roland Levillainf0409142021-03-22 15:45:03 +0000858// Version of ART gtest `art_runtime_tests` bundled with the ART APEX on target.
859// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
Colin Cross6e95dd52016-09-12 15:37:10 -0700860art_cc_test {
Roland Levillainf0409142021-03-22 15:45:03 +0000861 name: "art_runtime_tests",
Colin Cross6e95dd52016-09-12 15:37:10 -0700862 defaults: [
Colin Crossafd3c9e2016-09-16 13:47:21 -0700863 "art_gtest_defaults",
Roland Levillainf0409142021-03-22 15:45:03 +0000864 "art_runtime_tests_defaults",
Colin Cross6e95dd52016-09-12 15:37:10 -0700865 ],
Yo Chiang169dfb42020-08-07 04:22:18 +0000866 target: {
867 host: {
868 required: ["dex2oatd"],
869 },
870 },
Roland Levillainf0409142021-03-22 15:45:03 +0000871}
872
873// Standalone version of ART gtest `art_runtime_tests`, not bundled with the ART APEX on target.
874art_cc_test {
875 name: "art_standalone_runtime_tests",
876 defaults: [
877 "art_standalone_gtest_defaults",
878 "art_runtime_tests_defaults",
879 ],
Roland Levillainda7c0172022-09-06 15:33:10 +0100880 data: [":generate-boot-image"],
Roland Levillainf0409142021-03-22 15:45:03 +0000881 target: {
882 host: {
883 required: ["dex2oat"],
884 },
885 },
886 // Some tests are currently failing (observed on
887 // `aosp_cf_x86_64_phone-userdebug`); use a special test configuration for
888 // `art_standalone_runtime_tests` to filter them out for now.
Roland Levillain295ed5a2021-10-31 14:17:10 +0000889 // TODO(b/204649079): Investigate these failures and re-enable these tests.
Roland Levillainf0409142021-03-22 15:45:03 +0000890 test_config: "art_standalone_runtime_tests.xml",
891}
892
893art_cc_defaults {
894 name: "art_runtime_compiler_tests_defaults",
Chih-Hung Hsieha0a5f002022-02-17 21:14:37 -0800895 tidy_timeout_srcs: [
896 "reflection_test.cc",
897 ],
Roland Levillainf0409142021-03-22 15:45:03 +0000898 srcs: [
899 "reflection_test.cc",
Roland Levillainf0409142021-03-22 15:45:03 +0000900 ],
David Srbecky4a88a5a2020-05-05 16:21:57 +0100901 data: [
902 ":art-gtest-jars-Main",
903 ":art-gtest-jars-NonStaticLeafMethods",
904 ":art-gtest-jars-StaticLeafMethods",
905 ],
Roland Levillainf0409142021-03-22 15:45:03 +0000906}
907
908// Version of ART gtest `art_runtime_compiler_tests` bundled with the ART APEX on target.
909// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete.
910art_cc_test {
911 name: "art_runtime_compiler_tests",
912 defaults: [
913 "art_gtest_defaults",
914 "art_runtime_compiler_tests_defaults",
915 ],
Colin Cross6e95dd52016-09-12 15:37:10 -0700916 shared_libs: [
917 "libartd-compiler",
Colin Cross6e95dd52016-09-12 15:37:10 -0700918 ],
Roland Levillainf0409142021-03-22 15:45:03 +0000919 target: {
920 host: {
921 required: ["dex2oatd"],
922 },
923 },
924}
925
926// Standalone version of ART gtest `art_runtime_compiler_tests`, not bundled with the ART APEX on
927// target.
928art_cc_test {
929 name: "art_standalone_runtime_compiler_tests",
930 defaults: [
931 "art_standalone_gtest_defaults",
932 "art_runtime_compiler_tests_defaults",
933 ],
Roland Levillainda7c0172022-09-06 15:33:10 +0100934 data: [":generate-boot-image"],
Roland Levillainf0409142021-03-22 15:45:03 +0000935 shared_libs: [
936 "libart-compiler",
937 ],
938 target: {
939 host: {
940 required: ["dex2oat"],
941 },
942 },
943 test_config: "art_standalone_runtime_compiler_tests.xml",
Colin Cross6e95dd52016-09-12 15:37:10 -0700944}
Igor Murashkin0ae15322017-09-14 13:55:06 -0700945
David Srbeckybfbc6542018-09-11 13:34:57 +0100946genrule {
Nicolas Geoffrayf5958f82021-06-02 14:48:14 +0100947 name: "libart_mterp.x86ng",
948 out: ["mterp_x86ng.S"],
949 srcs: [
950 "interpreter/mterp/x86ng/*.S",
Nicolas Geoffrayf5958f82021-06-02 14:48:14 +0100951 ],
952 tool_files: [
953 "interpreter/mterp/gen_mterp.py",
954 "interpreter/mterp/common/gen_setup.py",
955 ":art_libdexfile_dex_instruction_list_header",
956 ],
957 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
958}
959
960genrule {
Nicolas Geoffray00391822019-12-10 10:17:23 +0000961 name: "libart_mterp.x86_64ng",
962 out: ["mterp_x86_64ng.S"],
Dan Zimmerman467defb2019-12-26 12:39:23 -0800963 srcs: [
964 "interpreter/mterp/x86_64ng/*.S",
Dan Zimmerman467defb2019-12-26 12:39:23 -0800965 ],
Nicolas Geoffray00391822019-12-10 10:17:23 +0000966 tool_files: [
967 "interpreter/mterp/gen_mterp.py",
968 "interpreter/mterp/common/gen_setup.py",
Colin Cross7b550652020-11-17 10:12:52 -0800969 ":art_libdexfile_dex_instruction_list_header",
Nicolas Geoffray00391822019-12-10 10:17:23 +0000970 ],
971 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
972}
Nicolas Geoffray4fc75692020-01-13 21:49:22 +0000973
974genrule {
975 name: "libart_mterp.arm64ng",
976 out: ["mterp_arm64ng.S"],
977 srcs: [
978 "interpreter/mterp/arm64ng/*.S",
Nicolas Geoffray4fc75692020-01-13 21:49:22 +0000979 ],
980 tool_files: [
981 "interpreter/mterp/gen_mterp.py",
982 "interpreter/mterp/common/gen_setup.py",
Colin Cross7b550652020-11-17 10:12:52 -0800983 ":art_libdexfile_dex_instruction_list_header",
Nicolas Geoffray4fc75692020-01-13 21:49:22 +0000984 ],
985 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
986}
Nicolas Geoffraydd406c32020-11-22 22:53:18 +0000987
988genrule {
989 name: "libart_mterp.armng",
990 out: ["mterp_armng.S"],
991 srcs: [
992 "interpreter/mterp/armng/*.S",
993 ],
994 tool_files: [
995 "interpreter/mterp/gen_mterp.py",
996 "interpreter/mterp/common/gen_setup.py",
Colin Crossdf385372020-12-01 10:39:20 -0800997 ":art_libdexfile_dex_instruction_list_header",
Nicolas Geoffraydd406c32020-11-22 22:53:18 +0000998 ],
999 cmd: "$(location interpreter/mterp/gen_mterp.py) $(out) $(in)",
1000}
Eric Holk39d529f2021-02-17 12:48:53 -08001001
1002cc_library_static {
1003 name: "libstatslog_art",
Martin Stjernholm22a61622021-03-17 13:30:25 +00001004 defaults: ["art_defaults"],
Eric Holk39d529f2021-02-17 12:48:53 -08001005 generated_sources: ["statslog_art.cpp"],
1006 generated_headers: ["statslog_art.h"],
Eric Holk39d529f2021-02-17 12:48:53 -08001007 export_generated_headers: ["statslog_art.h"],
1008 shared_libs: [
1009 "liblog",
1010 "libstatssocket",
1011 "libutils",
1012 ],
1013 apex_available: [
1014 "com.android.art",
1015 "com.android.art.debug",
1016 ],
1017}
1018
1019genrule {
1020 name: "statslog_art.h",
1021 tools: ["stats-log-api-gen"],
1022 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_art.h --module art --namespace art,metrics,statsd",
1023 out: [
1024 "statslog_art.h",
1025 ],
1026}
1027
1028genrule {
1029 name: "statslog_art.cpp",
1030 tools: ["stats-log-api-gen"],
1031 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_art.cpp --module art --namespace art,metrics,statsd --importHeader statslog_art.h",
1032 out: [
1033 "statslog_art.cpp",
1034 ],
1035}