libvmbase: Make ARM routines whole_static

Instead of linking the libc dependencies at the point where we link the
final executable, package them - once - in libvmbase. Even though this
results in larger intermediate static libraries, it does not affect the
final size of the binaries.

Test: m pvmfw_img && atest vmbase_example.integration_test
Change-Id: I5cb23af019cc11a4bb7b3493d75f68b577793735
diff --git a/vmbase/Android.bp b/vmbase/Android.bp
index fb525b5..7a36a0a 100644
--- a/vmbase/Android.bp
+++ b/vmbase/Android.bp
@@ -46,7 +46,6 @@
     defaults: ["vmbase_cc_defaults"],
     static_executable: true,
     static_libs: [
-        "libarm-optimized-routines-mem",
         "libvmbase_entry",
     ],
     installable: false,
@@ -68,6 +67,9 @@
         "libpsci",
         "libspin_nostd",
     ],
+    whole_static_libs: [
+        "libarm-optimized-routines-mem",
+    ],
     apex_available: ["com.android.virt"],
 }
 
diff --git a/vmbase/example/Android.bp b/vmbase/example/Android.bp
index e0a87db..fbad8f4 100644
--- a/vmbase/example/Android.bp
+++ b/vmbase/example/Android.bp
@@ -17,9 +17,6 @@
         "libvirtio_drivers",
         "libvmbase",
     ],
-    static_libs: [
-        "libarm-optimized-routines-mem",
-    ],
     apex_available: ["com.android.virt"],
 }