Link libvixl statically.
Instead of including shared library libvixl.so in the ART
Module, link libvixl statically to all binaries that use it,
namely libart-compiler.so and libart-disassembler.so which
shall increase in size with the additional libvixl code.
The ART Module size with default libvixl symbol visibility:
- before: 88460730B
- after: 86973943B (-1.42MiB)
With hidden libvixl symbol visibility:
- before: 88337851B
- after: 84962808B (-3.22MiB)
(This is with master-art where we do not have a boot
profile and therefore compile more code in boot image.)
The change from default to hidden visibility is done in
https://android-review.googlesource.com/1697237 .
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: run-gtests.sh
Test: testrunner.py --target --optimizing
Bug: 186902856
Change-Id: I040b0115b94b8690ee7be53e3ded8610d9f13e99
diff --git a/disassembler/Android.bp b/disassembler/Android.bp
index 6682fd7..71ad051 100644
--- a/disassembler/Android.bp
+++ b/disassembler/Android.bp
@@ -57,10 +57,20 @@
art_cc_library {
name: "libart-disassembler",
defaults: ["libart-disassembler-defaults"],
- shared_libs: [
- // For disassembler_arm*.
- "libvixl",
- ],
+ codegen: {
+ arm: {
+ static_libs: [
+ // For disassembler_arm*.
+ "libvixl",
+ ],
+ },
+ arm64: {
+ static_libs: [
+ // For disassembler_arm*.
+ "libvixl",
+ ],
+ },
+ },
apex_available: [
"com.android.art",
"com.android.art.debug",
@@ -81,10 +91,20 @@
"art_debug_defaults",
"libart-disassembler-defaults",
],
- shared_libs: [
- // For disassembler_arm*.
- "libvixld",
- ],
+ codegen: {
+ arm: {
+ static_libs: [
+ // For disassembler_arm*.
+ "libvixld",
+ ],
+ },
+ arm64: {
+ static_libs: [
+ // For disassembler_arm*.
+ "libvixld",
+ ],
+ },
+ },
apex_available: [
"com.android.art",