summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/apex/Android.bp300
1 files changed, 137 insertions, 163 deletions
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index 6164205d20..a17835652b 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -12,97 +12,6 @@ package {
default_applicable_licenses: ["art_license"],
}
-// Binaries for which both 32- and 64-bit versions are built, if possible.
-art_runtime_binaries_both = [
- "dalvikvm",
- "dex2oat",
-]
-
-// Binaries for which the "first" version is preferred.
-art_runtime_binaries_first = [
- "art_boot",
- "art_exec",
- "artd",
- "dexdump",
- "dexlist",
- "dexopt_chroot_setup",
- "dexoptanalyzer",
- "oatdump",
- "profman",
-]
-
-// - Base requirements (libraries).
-//
-// Note: ART on-device chroot-based testing and benchmarking is not yet using
-// the ART APEX, meaning that copies of some of these libraries have to be
-// installed in `/system` for the ART Buildbot set-up to work properly. This is
-// done by the `standalone-apex-files` Make phony target, used by the ART
-// Buildbot and Golem (see `art/Android.mk`). If you add libraries to this list,
-// you may have to also add them to `PRIVATE_ART_APEX_DEPENDENCY_LIBS` in
-// `art/Android.mk`.
-// TODO(b/121117762): Remove this note when both the ART Buildbot and Golem use
-// the ART APEX.
-art_runtime_base_native_shared_libs_minus_libart = [
- // External API (having APEX stubs).
- "libdexfile",
- "libnativebridge",
- "libnativehelper",
- "libnativeloader",
- "libsigchain",
- // These libraries are loaded at runtime from libart (either through
- // dlopen() or by instructing the user to load with -Xplugin), but they
- // cannot be runtime_lib dependencies from there because of cyclic
- // dependencies (b/124505714).
- "libadbconnection",
- "libopenjdkjvmti",
- "libperfetto_hprof",
- // Likewise libart is loaded at runtime from libnativeloader and also must
- // be specified explicitly due to cyclic dependencies. However, it's not
- // listed directly here since test_broken_com.android.art uses a different
- // implementation.
-]
-// Actual version of ART runtime base libs, used in non-test ART APEXes.
-art_runtime_base_native_shared_libs = ["libart"] +
- art_runtime_base_native_shared_libs_minus_libart
-// "Broken" version of ART runtime base libs, used for testing purposes.
-art_runtime_base_broken_native_shared_libs = ["libart-broken"] +
- art_runtime_base_native_shared_libs_minus_libart
-
-// - Debug variants (libraries).
-art_runtime_debug_native_shared_libs = [
- "libadbconnectiond",
- "libartd",
- "libdexfiled",
- "libopenjdkjvmtid",
- "libperfetto_hprofd",
-]
-
-// Debug binaries for which both 32- and 64-bit versions are built, if possible.
-art_debug_binaries_both = [
- "dex2oatd",
- "imgdiag",
- "imgdiagd",
-]
-
-// Debug binaries for which the "first" version is preferred.
-art_debug_binaries_first = [
- "dexanalyze",
- "dexoptanalyzerd",
- "oatdumpd",
- "profmand",
-]
-
-// Core Java libraries.
-// This list must be the same as art-bootclasspath-fragment because it's that which is pulled in
-// through bootclasspath_fragments below. (com.android.art-defaults-minus-odrefresh)
-libcore_java_libs = [
- "core-oj",
- "core-libart",
- "okhttp",
- "bouncycastle",
- "apache-xml",
-]
-
// Create combined library which is used for compiling run-tests.
// This is much easier than trying to make the test depend on them directly,
// or than trying to make the test compilation depend on the apex module.
@@ -110,37 +19,19 @@ libcore_java_libs = [
java_library {
name: "art-run-test-bootclasspath",
sdk_version: "core_platform",
- static_libs: libcore_java_libs + [
+ static_libs: [
"framework-annotations-lib",
+ // Core Java libraries. This list must be the same as
+ // art-bootclasspath-fragment because it's that which is pulled in
+ // through bootclasspath_fragments in com.android-art-base-defaults.
+ "core-oj",
+ "core-libart",
+ "okhttp",
+ "bouncycastle",
+ "apache-xml",
],
}
-// Native libraries that support the core Java libraries.
-//
-// Note: ART on-device chroot-based testing and benchmarking is not yet using
-// the ART APEX, meaning that copies of some of these libraries have to be
-// installed in `/system` for the ART Buildbot set-up to work properly. This is
-// done by the `standalone-apex-files` Make phony target, used by the ART
-// Buildbot and Golem (see `art/Android.mk`). If you add libraries to this list,
-// you may have to also add them to `PRIVATE_ART_APEX_DEPENDENCY_LIBS` in
-// `art/Android.mk`.
-// TODO(b/121117762): Remove this note when both the ART Buildbot and Golem use
-// the ART APEX.
-libcore_native_shared_libs = [
- // External API (having APEX stubs).
- "libandroidio",
- // This library is loaded at runtime from libart but cannot be a runtime_lib
- // dependency from there because of cyclic dependencies (b/124505714).
- "libopenjdk",
- // These libraries are internal dependencies in libcore, but they don't get
- // pulled in automatically into apex_test modules.
- "libexpat",
- "libopenjdkjvm",
-]
-libcore_debug_native_shared_libs = [
- "libopenjdkd",
-]
-
android_app_certificate {
name: "com.android.art.certificate",
certificate: "com.android.art",
@@ -187,12 +78,63 @@ apex_defaults {
compile_multilib: "both",
+ // Note: ART Golem benchmarking does not use the ART APEX, meaning that
+ // copies of some of these libraries have to be installed in `/system` for
+ // the setup to work properly. This is done by the `standalone-apex-files`
+ // Make phony target (see `art/Android.mk`). If you add libraries to this
+ // list, you may have to also add them to `PRIVATE_ART_APEX_DEPENDENCY_LIBS`
+ // in `art/Android.mk`.
+ native_shared_libs: [
+ // ART
+ // External API (having APEX stubs).
+ "libdexfile",
+ "libnativebridge",
+ "libnativehelper",
+ "libnativeloader",
+ "libsigchain",
+ // These libraries are loaded at runtime from libart (either through
+ // dlopen() or by instructing the user to load with -Xplugin), but they
+ // cannot be runtime_lib dependencies from there because of cyclic
+ // dependencies (b/124505714).
+ "libadbconnection",
+ "libopenjdkjvmti",
+ "libperfetto_hprof",
+ // Likewise libart is loaded at runtime from libnativeloader and also must
+ // be specified explicitly due to cyclic dependencies. However, it's not
+ // listed directly here since test_broken_com.android.art uses a different
+ // implementation.
+
+ // Libcore
+ // External API (having APEX stubs).
+ "libandroidio",
+ // This library is loaded at runtime from libart but cannot be a runtime_lib
+ // dependency from there because of cyclic dependencies (b/124505714).
+ "libopenjdk",
+ // These libraries are internal dependencies in libcore, but they don't get
+ // pulled in automatically into apex_test modules.
+ "libexpat",
+ "libopenjdkjvm",
+ ],
+
multilib: {
both: {
- binaries: art_runtime_binaries_both,
+ binaries: [
+ "dalvikvm",
+ "dex2oat",
+ ],
},
first: {
- binaries: art_runtime_binaries_first,
+ binaries: [
+ "art_boot",
+ "art_exec",
+ "artd",
+ "dexdump",
+ "dexlist",
+ "dexopt_chroot_setup",
+ "dexoptanalyzer",
+ "oatdump",
+ "profman",
+ ],
jni_libs: [
"libartservice",
],
@@ -200,44 +142,33 @@ apex_defaults {
},
}
-// Default values shared by APEXes except test_broken_com.android.art.
+// Default values shared by Debug and Testing ART APEXes.
apex_defaults {
- name: "com.android.art-defaults-minus-odrefresh",
+ name: "com.android.art-devel-defaults",
defaults: ["com.android.art-base-defaults"],
- native_shared_libs: art_runtime_base_native_shared_libs +
- libcore_native_shared_libs,
-}
-// Default values shared by Release, Debug, and Testing APEXes.
-apex_defaults {
- name: "com.android.art-defaults",
- defaults: ["com.android.art-defaults-minus-odrefresh"],
- multilib: {
- first: {
- binaries: ["odrefresh"],
- },
- },
-}
+ native_shared_libs: [
+ "libadbconnectiond",
+ "libdexfiled",
+ "libopenjdkd",
+ "libopenjdkjvmtid",
+ "libperfetto_hprofd",
+ ],
-// Default values shared by Debug and Testing ART APEXes.
-apex_defaults {
- name: "com.android.art-devel-defaults",
- defaults: ["com.android.art-defaults"],
- // Use a different manifest for the Debug & Testing ART APEXes (which have
- // no prebuilts and are thus always built from sources), with a high version
- // number that ensures that these packages can be installed on virtually all
- // Android dessert releases.
- manifest: "manifest-art-debug.json",
- native_shared_libs: art_runtime_debug_native_shared_libs +
- libcore_debug_native_shared_libs,
multilib: {
both: {
- binaries: art_debug_binaries_both,
+ binaries: [
+ "dex2oatd",
+ "imgdiag",
+ "imgdiagd",
+ ],
},
first: {
- binaries: art_debug_binaries_first,
- jni_libs: [
- "libartserviced",
+ binaries: [
+ "dexanalyze",
+ "dexoptanalyzerd",
+ "oatdumpd",
+ "profmand",
],
},
},
@@ -248,42 +179,48 @@ apex_defaults {
apex_test {
name: "test_broken_com.android.art",
defaults: ["com.android.art-base-defaults"],
-
- native_shared_libs: art_runtime_base_broken_native_shared_libs + libcore_native_shared_libs,
- unwanted_transitive_deps: ["libart"],
-
manifest: "test_apex_manifest.json",
file_contexts: ":com.android.art-file_contexts",
installable: false,
compressible: false,
+
+ native_shared_libs: ["libart-broken"],
+ unwanted_transitive_deps: ["libart"],
}
apex_test {
name: "test_jitzygote_com.android.art",
- defaults: ["com.android.art-defaults-minus-odrefresh"],
+ defaults: ["com.android.art-base-defaults"],
+ manifest: "test_apex_manifest.json",
+ file_contexts: ":com.android.art-file_contexts",
+ installable: false,
+
+ native_shared_libs: ["libart"],
multilib: {
first: {
binaries: ["odrefresh_broken"],
},
},
- manifest: "test_apex_manifest.json",
- file_contexts: ":com.android.art-file_contexts",
- installable: false,
}
// Same as "com.android.art" APEX, but also contains "imgdiag" binary.
// Used to collect dirty-image-objects.
apex_test {
name: "test_imgdiag_com.android.art",
- defaults: ["com.android.art-defaults"],
+ defaults: ["com.android.art-base-defaults"],
+ manifest: "test_apex_manifest.json",
+ file_contexts: ":com.android.art-file_contexts",
+ installable: false,
+
+ native_shared_libs: ["libart"],
multilib: {
both: {
binaries: ["imgdiag"],
},
+ first: {
+ binaries: ["odrefresh"],
+ },
},
- manifest: "test_apex_manifest.json",
- file_contexts: ":com.android.art-file_contexts",
- installable: false,
}
// Release version of the ART APEX module (not containing debug
@@ -291,7 +228,15 @@ apex_test {
// storage-constrained devices in userdebug and eng builds.
apex {
name: "com.android.art",
- defaults: ["com.android.art-defaults"],
+ defaults: ["com.android.art-base-defaults"],
+
+ native_shared_libs: ["libart"],
+ multilib: {
+ first: {
+ binaries: ["odrefresh"],
+ },
+ },
+
visibility: [
"//art/build/sdk",
"//packages/modules/common/build",
@@ -304,6 +249,23 @@ apex {
apex {
name: "com.android.art.debug",
defaults: ["com.android.art-devel-defaults"],
+ // Use a different manifest for this APEX (which has no prebuilts and is
+ // thus always built from sources), with a high version number that ensures
+ // that these packages can be installed on virtually all Android dessert
+ // releases.
+ manifest: "manifest-art-debug.json",
+
+ native_shared_libs: [
+ "libart",
+ "libartd",
+ ],
+ multilib: {
+ first: {
+ binaries: ["odrefresh"],
+ jni_libs: ["libartserviced"],
+ },
+ },
+
visibility: [
"//packages/modules/common/build",
],
@@ -344,6 +306,11 @@ apex_test {
file_contexts: ":com.android.art.debug-file_contexts",
tests: art_gtests,
binaries: ["signal_dumper"], // Need signal_dumper for run-tests.
+ // Use a different manifest for this APEX (which has no prebuilts and is
+ // thus always built from sources), with a high version number that ensures
+ // that these packages can be installed on virtually all Android dessert
+ // releases.
+ manifest: "manifest-art-debug.json",
// Mark this test APEX as non-updatable, as its contains
// additional files (used only for testing) that would not pass
// dependency checks performed on updatable APEXes (see
@@ -359,9 +326,16 @@ apex_test {
// and b/233357459). Marking this APEX as "future updatable"
// disables all symlink optimizations for it.
future_updatable: true,
+
+ native_shared_libs: [
+ "libart",
+ "libartd",
+ ],
multilib: {
first: {
tests: art_gtests_first,
+ binaries: ["odrefresh"],
+ jni_libs: ["libartserviced"],
},
},
}