ART Apex: prefer "first" to "prefer32" multilib option for tools
This makes the tools in a 32/64-bit APEX into 64-bit binaries when
previously they were 32-bit.
This change is to support 64-bit only devices. We currently build two
flavors of the ART APEX: a 32-bit only variant and a combined
32/64-bit variant. Devices using latter support 64-bit.
The size impact on the uncompressed APEXes is:
+------------+-----------------+-----------------+-----------------+
| ISA Family | Old size, bytes | New size, bytes | Change |
+------------+-----------------+-----------------+-----------------+
| Arm | 58,212,352 | 58,339,328 | 126,976 (+0.2%) |
| Intel | 72,073,216 | 72,073,216 | 0 (+0.0%) |
+------------+-----------------+-----------------+-----------------+
Bug: 194800665
Test: art/build/apex/runtests.sh
Test: odsign_e2e_tests
Change-Id: If23ea3bc3f14c948c032bb3726a125dfdd8069f4
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index c336d36..cecdbe7 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -29,9 +29,9 @@
art_runtime_base_binaries_both_on_device_first_on_host = [
"dex2oat",
]
-// - Base requirements (binaries for which a 32-bit version is preferred on device, but for which
-// only the "first" (likely 64-bit) version is required on host).
-art_runtime_base_binaries_prefer32_on_device_first_on_host = [
+// - Base requirements (binaries for which the "first" version is preferred on device
+// (likely 64-bit) and on host).
+art_runtime_base_binaries_first_on_device_first_on_host = [
"dexoptanalyzer",
"odrefresh",
"profman",
@@ -89,9 +89,9 @@
"linker",
]
-// - Debug variants (binaries for which a 32-bit version is preferred on device, but for which
-// only the "first" (likely 64-bit) version is required on host).
-art_runtime_debug_binaries_prefer32_on_device_first_on_host = [
+// - Debug variants (binaries for which the "first" version is preferred on device
+// (likely 64-bit) and on host).
+art_runtime_debug_binaries_first_on_device_first_on_host = [
"dexoptanalyzerd",
"profmand",
]
@@ -255,11 +255,9 @@
binaries: art_runtime_base_binaries_both +
art_runtime_base_binaries_both_on_device_first_on_host,
},
- prefer32: {
- binaries: art_runtime_base_binaries_prefer32_on_device_first_on_host,
- },
first: {
- binaries: art_tools_common_binaries +
+ binaries: art_runtime_base_binaries_first_on_device_first_on_host +
+ art_tools_common_binaries +
art_tools_device_only_binaries,
},
},
@@ -299,11 +297,9 @@
binaries: art_tools_debug_binaries_both +
art_runtime_debug_binaries_both_on_device_first_on_host,
},
- prefer32: {
- binaries: art_runtime_debug_binaries_prefer32_on_device_first_on_host,
- },
first: {
- binaries: art_tools_debug_binaries +
+ binaries: art_runtime_debug_binaries_first_on_device_first_on_host +
+ art_tools_debug_binaries +
art_tools_debug_device_only_binaries,
},
},
@@ -404,9 +400,9 @@
art_tools_debug_binaries_both,
},
first: {
- binaries: art_runtime_base_binaries_prefer32_on_device_first_on_host +
- art_runtime_base_binaries_both_on_device_first_on_host +
- art_runtime_debug_binaries_prefer32_on_device_first_on_host +
+ binaries: art_runtime_base_binaries_both_on_device_first_on_host +
+ art_runtime_base_binaries_first_on_device_first_on_host +
+ art_runtime_debug_binaries_first_on_device_first_on_host +
art_runtime_debug_binaries_both_on_device_first_on_host +
art_tools_common_binaries +
art_tools_debug_binaries + // Host APEX is always debug.
diff --git a/dexoptanalyzer/Android.bp b/dexoptanalyzer/Android.bp
index 8efaf28..a66bd29 100644
--- a/dexoptanalyzer/Android.bp
+++ b/dexoptanalyzer/Android.bp
@@ -33,8 +33,7 @@
target: {
android: {
- // Use the 32-bit version of dexoptanalyzer on devices.
- compile_multilib: "prefer32",
+ compile_multilib: "first",
},
},
diff --git a/odrefresh/Android.bp b/odrefresh/Android.bp
index c7fe647..8f98ee3 100644
--- a/odrefresh/Android.bp
+++ b/odrefresh/Android.bp
@@ -50,8 +50,7 @@
static_libs: ["libtinyxml2"],
target: {
android: {
- // Use the 32-bit version of odrefresh on devices.
- compile_multilib: "prefer32",
+ compile_multilib: "first",
},
},
tidy: true,
diff --git a/profman/Android.bp b/profman/Android.bp
index 8cc3479..917d79a 100644
--- a/profman/Android.bp
+++ b/profman/Android.bp
@@ -35,8 +35,7 @@
target: {
android: {
- // Use the 32-bit version of profman on devices.
- compile_multilib: "prefer32",
+ compile_multilib: "first",
shared_libs: [
"libbase",
],