diff options
Diffstat (limited to 'compiler/Android.bp')
-rw-r--r-- | compiler/Android.bp | 320 |
1 files changed, 187 insertions, 133 deletions
diff --git a/compiler/Android.bp b/compiler/Android.bp index a879bd8f06..e0c1744ce3 100644 --- a/compiler/Android.bp +++ b/compiler/Android.bp @@ -28,6 +28,106 @@ package { default_applicable_licenses: ["art_license"], } +// Common dependencies for libart-compiler_deps and libartd-compiler_deps. +cc_defaults { + name: "libart-compiler_common_deps", + shared_libs: [ + "libbase", + "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib. + "libartpalette", + ], + header_libs: [ + "libart_headers", + "libart_generated_headers", + ], +} + +// Dependencies of libart-compiler, used to propagate libart-compiler deps when static linking. +art_cc_defaults { + name: "libart-compiler_deps", + defaults: ["libart-compiler_common_deps"], + shared_libs: [ + "libartbase", + "libprofile", + "libdexfile", + ], + static_libs: ["libelffile"], + codegen: { + arm: { + // VIXL assembly support for ARM targets. + static_libs: [ + "libvixl", + ], + }, + arm64: { + // VIXL assembly support for ARM64 targets. + static_libs: [ + "libvixl", + ], + }, + }, + // In order to save memory on device `art::HGraphVisualizerDisassembler` loads + // `libart-disassembler.so` dynamically. Host builds of `libart-compiler` depend on + // `libart-disassembler` directly with `shared_libs` or `static_libs`. + target: { + host: { + shared: { + shared_libs: [ + "libart-disassembler", + ], + }, + }, + android: { + runtime_libs: [ + "libart-disassembler", + ], + }, + }, +} + +// Dependencies of libartd-compiler, used to propagate libartd-compiler deps when static linking. +art_cc_defaults { + name: "libartd-compiler_deps", + defaults: ["libart-compiler_common_deps"], + shared_libs: [ + "libartbased", + "libprofiled", + "libdexfiled", + ], + static_libs: ["libelffiled"], + codegen: { + arm: { + // VIXL assembly support for ARM targets. + static_libs: [ + "libvixld", + ], + }, + arm64: { + // VIXL assembly support for ARM64 targets. + static_libs: [ + "libvixld", + ], + }, + }, + // In order to save memory on device `art::HGraphVisualizerDisassembler` loads + // `libartd-disassembler.so` dynamically. Host builds of `libartd-compiler` depend on + // `libartd-disassembler` directly with `shared_libs` or `static_libs`. + target: { + host: { + shared: { + shared_libs: [ + "libartd-disassembler", + ], + }, + }, + android: { + runtime_libs: [ + "libartd-disassembler", + ], + }, + }, +} + art_cc_defaults { name: "libart-compiler-defaults", defaults: ["art_defaults"], @@ -46,6 +146,7 @@ art_cc_defaults { "optimizing/bounds_check_elimination.cc", "optimizing/builder.cc", "optimizing/cha_guard_optimization.cc", + "optimizing/code_generation_data.cc", "optimizing/code_generator.cc", "optimizing/code_generator_utils.cc", "optimizing/code_sinking.cc", @@ -54,7 +155,6 @@ art_cc_defaults { "optimizing/data_type.cc", "optimizing/dead_code_elimination.cc", "optimizing/escape.cc", - "optimizing/execution_subgraph.cc", "optimizing/graph_checker.cc", "optimizing/graph_visualizer.cc", "optimizing/gvn.cc", @@ -77,10 +177,10 @@ art_cc_defaults { "optimizing/optimizing_compiler.cc", "optimizing/parallel_move_resolver.cc", "optimizing/prepare_for_register_allocation.cc", + "optimizing/profiling_info_builder.cc", "optimizing/reference_type_propagation.cc", "optimizing/register_allocation_resolver.cc", "optimizing/register_allocator.cc", - "optimizing/register_allocator_graph_color.cc", "optimizing/register_allocator_linear_scan.cc", "optimizing/select_generator.cc", "optimizing/scheduler.cc", @@ -122,6 +222,7 @@ art_cc_defaults { "optimizing/code_generator_arm64.cc", "optimizing/code_generator_vector_arm64_neon.cc", "optimizing/code_generator_vector_arm64_sve.cc", + "optimizing/jit_patches_arm64.cc", "optimizing/scheduler_arm64.cc", "optimizing/instruction_simplifier_arm64.cc", "optimizing/intrinsics_arm64.cc", @@ -132,6 +233,12 @@ art_cc_defaults { }, riscv64: { srcs: [ + "jni/quick/riscv64/calling_convention_riscv64.cc", + "optimizing/code_generator_riscv64.cc", + "optimizing/critical_native_abi_fixup_riscv64.cc", + "optimizing/intrinsics_riscv64.cc", + "utils/riscv64/assembler_riscv64.cc", + "utils/riscv64/jni_macro_assembler_riscv64.cc", "utils/riscv64/managed_register_riscv64.cc", ], }, @@ -163,14 +270,7 @@ art_cc_defaults { ], }, }, - static: { - cflags: ["-DART_STATIC_LIBART_COMPILER"], - }, generated_sources: ["art_compiler_operator_srcs"], - shared_libs: [ - "libbase", - "liblzma", // libelffile(d) dependency; must be repeated here since it's a static lib. - ], header_libs: [ "art_cmdlineparser_headers", // For compiler_options. "art_disassembler_headers", @@ -178,8 +278,6 @@ art_cc_defaults { ], export_include_dirs: ["."], - // Not using .map.txt because this is an internal API - version_script: "libart-compiler.map", } cc_defaults { @@ -204,41 +302,12 @@ gensrcs { output_extension: "operator_out.cc", } -art_cc_library { +art_cc_library_static { name: "libart-compiler", defaults: [ "libart-compiler-defaults", - "dex2oat-pgo-defaults", - "art_hugepage_defaults", - ], - codegen: { - arm: { - // VIXL assembly support for ARM targets. - static_libs: [ - "libvixl", - ], - }, - arm64: { - // VIXL assembly support for ARM64 targets. - static_libs: [ - "libvixl", - ], - }, - }, - shared_libs: [ - "libart", - "libartbase", - "libartpalette", - "libprofile", - "libdexfile", - ], - static_libs: ["libelffile"], - runtime_libs: [ - // `art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` may dynamically load - // `libart-disassembler.so`. - "libart-disassembler", + "libart-compiler_deps", ], - target: { android: { lto: { @@ -253,12 +322,22 @@ art_cc_library { ], } +// For static linking with gtests. Same as `libart-compiler`, but without LTO. +// When gtests static link a library with LTO enabled, they are also built with LTO. +// This makes the build process use a lot of memory. b/277207452 +art_cc_library_static { + name: "libart-compiler-for-test", + defaults: [ + "libart-compiler-defaults", + "libart-compiler_deps", + ], +} + cc_defaults { name: "libart-compiler_static_defaults", defaults: [ "libart-compiler_static_base_defaults", "libart-disassembler_static_defaults", - "libart_static_defaults", "libartbase_static_defaults", "libdexfile_static_defaults", "libprofile_static_defaults", @@ -266,48 +345,28 @@ cc_defaults { whole_static_libs: ["libart-compiler"], } -art_cc_library { +// libart-compiler_static_defaults for standalone gtests. +// Uses libart-for-test_static_defaults instead of libart_static_defaults. +// Uses libart-compiler-for-test instead of libart-compiler. +cc_defaults { + name: "libart-compiler-for-test_static_defaults", + defaults: [ + "libart-compiler_static_base_defaults", + "libart-disassembler_static_defaults", + "libartbase_static_defaults", + "libdexfile_static_defaults", + "libprofile_static_defaults", + ], + whole_static_libs: ["libart-compiler-for-test"], +} + +art_cc_library_static { name: "libartd-compiler", defaults: [ "art_debug_defaults", "libart-compiler-defaults", + "libartd-compiler_deps", ], - codegen: { - arm: { - // VIXL assembly support for ARM targets. - static_libs: [ - "libvixld", - ], - // Export vixl headers as they are included in this library's headers used by tests. - export_static_lib_headers: [ - "libvixld", - ], - }, - arm64: { - // VIXL assembly support for ARM64 targets. - static_libs: [ - "libvixld", - ], - // Export vixl headers as they are included in this library's headers used by tests. - export_static_lib_headers: [ - "libvixld", - ], - }, - }, - shared_libs: [ - "libartbased", - "libartd", - "libartpalette", - "libprofiled", - "libdexfiled", - ], - static_libs: ["libelffiled"], - runtime_libs: [ - // `art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` may dynamically load - // `libartd-disassembler.so`. - "libartd-disassembler", - ], - apex_available: [ "com.android.art.debug", // TODO(b/183882457): This lib doesn't go into com.android.art, but @@ -323,49 +382,68 @@ cc_defaults { "libart-compiler_static_base_defaults", "libartbased_static_defaults", "libartd-disassembler_static_defaults", - "libartd_static_defaults", "libdexfiled_static_defaults", "libprofiled_static_defaults", ], whole_static_libs: ["libartd-compiler"], } +// libartd-compiler_static_defaults for gtests. +// Uses libartd-for-test_static_defaults instead of libart_static_defaults. +// Note that `libartd-compiler-for-test` is not required here, because `libartd-compiler` +// doesn't use LTO. +cc_defaults { + name: "libartd-compiler-for-test_static_defaults", + defaults: [ + "libart-compiler_static_base_defaults", + "libartbased_static_defaults", + "libartd-disassembler_static_defaults", + "libdexfiled_static_defaults", + "libprofiled_static_defaults", + ], + whole_static_libs: ["libartd-compiler"], +} + +// Export headers required by `libart-runtime` to use JIT from `libart-compiler`. +cc_library_headers { + name: "libart-compiler_jit_headers", + defaults: ["art_defaults"], + host_supported: true, + export_include_dirs: ["export"], + apex_available: [ + "com.android.art", + "com.android.art.debug", + "test_broken_com.android.art", + ], +} + // Properties common to `libart-compiler-gtest` and `libartd-compiler-gtest`. art_cc_defaults { name: "libart-compiler-gtest-common", srcs: [ "common_compiler_test.cc", ], - shared_libs: [ - "libbase", + header_libs: [ + "libart_headers", ], } -art_cc_library { +art_cc_library_static { name: "libart-compiler-gtest", defaults: [ "libart-gtest-defaults", "libart-compiler-gtest-common", - ], - shared_libs: [ - "libart-compiler", - "libart-disassembler", - "libartbase-art-gtest", - "libart-runtime-gtest", + "libart-compiler-for-test_static_defaults", ], } -art_cc_library { +art_cc_library_static { name: "libartd-compiler-gtest", defaults: [ - "libartd-gtest-defaults", + "art_debug_defaults", + "libart-gtest-defaults", "libart-compiler-gtest-common", - ], - shared_libs: [ - "libartd-compiler", - "libartd-disassembler", - "libartbased-art-gtest", - "libartd-runtime-gtest", + "libartd-compiler-for-test_static_defaults", ], } @@ -381,7 +459,6 @@ art_cc_defaults { "jni/jni_compiler_test.cc", "optimizing/codegen_test.cc", "optimizing/constant_folding_test.cc", - "optimizing/execution_subgraph_test.cc", "optimizing/induction_var_range_test.cc", "optimizing/load_store_elimination_test.cc", "optimizing/ssa_test.cc", @@ -426,13 +503,10 @@ art_cc_defaults { "utils/atomic_dex_ref_map_test.cc", "utils/dedupe_set_test.cc", - "jni/jni_cfi_test.cc", "optimizing/codegen_test.cc", - "optimizing/execution_subgraph_test.cc", "optimizing/instruction_simplifier_test.cc", "optimizing/load_store_analysis_test.cc", "optimizing/load_store_elimination_test.cc", - "optimizing/optimizing_cfi_test.cc", "optimizing/scheduler_test.cc", ], @@ -474,11 +548,6 @@ art_cc_defaults { "libnativehelper_header_only", ], - shared_libs: [ - "libnativeloader", - "libunwindstack", - ], - target: { host: { shared_libs: [ @@ -496,15 +565,8 @@ art_cc_test { "art_gtest_defaults", "art_compiler_tests_defaults", ], - shared_libs: [ - "libprofiled", - "libartd-simulator-container", - "liblzma", - ], static_libs: [ - "libartd-compiler", - "libelffiled", - "libvixld", + "libartd-simulator-container", ], } @@ -516,21 +578,8 @@ art_cc_test { "art_compiler_tests_defaults", ], data: [":generate-boot-image"], - shared_libs: [ - "libprofile", - "liblzma", - "libartpalette", - ], static_libs: [ - // For now, link `libart-simulator-container` statically for simplicity, - // to save the added complexity to package it in test suites (along with - // other test artifacts) and install it on device during tests. - // TODO(b/192070541): Consider linking `libart-simulator-container` - // dynamically. "libart-simulator-container", - "libart-compiler", - "libelffile", - "libvixl", ], test_config: "art_standalone_compiler_tests.xml", } @@ -541,6 +590,10 @@ art_cc_test { defaults: [ "art_gtest_defaults", ], + srcs: [ + "jni/jni_cfi_test.cc", + "optimizing/optimizing_cfi_test.cc", + ], tidy_timeout_srcs: [ "utils/x86/assembler_x86_test.cc", "utils/x86_64/assembler_x86_64_test.cc", @@ -551,6 +604,12 @@ art_cc_test { "utils/assembler_thumb_test.cc", ], }, + riscv64: { + srcs: [ + "utils/riscv64/assembler_riscv64_test.cc", + "utils/riscv64/jni_macro_assembler_riscv64_test.cc", + ], + }, x86: { srcs: [ "utils/x86/assembler_x86_test.cc", @@ -562,12 +621,7 @@ art_cc_test { ], }, }, - shared_libs: [ - "liblzma", - ], static_libs: [ - "libartd-compiler", - "libelffiled", "libvixld", ], } |