Merge "Link compression libs statically into libartbase and use those everywhere."
diff --git a/compiler/Android.bp b/compiler/Android.bp
index c2f8e3c..8e4e383 100644
--- a/compiler/Android.bp
+++ b/compiler/Android.bp
@@ -180,7 +180,6 @@
     shared_libs: [
         "libbase",
         "libcutils",  // for atrace.
-        "liblzma",
     ],
     include_dirs: ["art/disassembler"],
     header_libs: [
@@ -196,7 +195,6 @@
     static_libs: [
         "libbase",
         "libcutils",
-        "liblzma",
     ],
 }
 
diff --git a/dex2oat/Android.bp b/dex2oat/Android.bp
index 666db42..2f8275e 100644
--- a/dex2oat/Android.bp
+++ b/dex2oat/Android.bp
@@ -71,8 +71,6 @@
     generated_sources: ["art_dex2oat_operator_srcs"],
     shared_libs: [
         "libbase",
-        "liblz4",
-        "liblzma",
     ],
     include_dirs: [
         "external/lz4/lib",
@@ -98,8 +96,6 @@
     },
     static_libs: [
         "libbase",
-        "liblz4",
-        "liblzma",
     ],
 }
 
@@ -247,7 +243,6 @@
         "libdexfile",
         "libartbase",
         "libbase",
-        "liblz4",
         "libsigchain",
     ],
     static_libs: [
@@ -285,7 +280,6 @@
         "libdexfiled",
         "libartbased",
         "libbase",
-        "liblz4",
         "libsigchain",
     ],
     static_libs: [
@@ -315,7 +309,6 @@
     ],
     static_libs: [
         "libbase",
-        "liblz4",
         "libsigchain_dummy",
     ],
 }
@@ -411,13 +404,12 @@
         "external/zlib",
     ],
     shared_libs: [
-        "libprofiled",
+        "libartbased",
         "libartd-compiler",
         "libartd-dexlayout",
         "libbase",
-        "liblz4",
+        "libprofiled",
         "libsigchain",
-        "libziparchive",
     ],
     static_libs: [
         "libartd-dex2oat",
diff --git a/dexlayout/Android.bp b/dexlayout/Android.bp
index 24ee5f8..06e949c 100644
--- a/dexlayout/Android.bp
+++ b/dexlayout/Android.bp
@@ -29,14 +29,12 @@
     shared_libs: [
         "libbase",
     ],
-    static_libs: ["libz"],
 }
 
 cc_defaults {
     name: "libart-dexlayout_static_base_defaults",
     static_libs: [
         "libbase",
-        "libz",
     ],
 }
 
diff --git a/imgdiag/Android.bp b/imgdiag/Android.bp
index 972c8f7..51add1a 100644
--- a/imgdiag/Android.bp
+++ b/imgdiag/Android.bp
@@ -34,9 +34,6 @@
         android: {
             shared_libs: ["libcutils"],
         },
-        host: {
-            shared_libs: ["libziparchive"],
-        },
     },
     header_libs: [
         "art_cmdlineparser_headers",
diff --git a/libartbase/Android.bp b/libartbase/Android.bp
index 0c6b1a2..44b75e6 100644
--- a/libartbase/Android.bp
+++ b/libartbase/Android.bp
@@ -49,20 +49,15 @@
     ],
     target: {
         android: {
-            static_libs: [
-                // ZipArchive support, the order matters here to get all symbols.
-                "libziparchive",
-                "libz",
-            ],
 	    shared_libs: [
 	        // For android::FileMap used by libziparchive.
                 "libutils",
 	    ],
         },
         host: {
-            shared_libs: [
-                "libziparchive",
-                "libz",
+            static_libs: [
+                // For android::FileMap used by libziparchive.
+                "libutils",
             ],
         },
     },
@@ -75,6 +70,18 @@
         // For common macros.
         "libbase",
     ],
+
+    // Utilities used by various ART libs and tools are linked in statically
+    // here to avoid shared lib dependencies outside the ART APEX. No target
+    // there should depend on these separately.
+    whole_static_libs: [
+        "liblz4",
+        "liblzma",
+        // ZipArchive support, the order matters here to get all symbols.
+        "libziparchive",
+        "libz",
+    ],
+
     export_include_dirs: ["."],
     // ART's macros.h depends on libbase's macros.h.
     // Note: runtime_options.h depends on cmdline. But we don't really want to export this
@@ -89,8 +96,6 @@
         "libcutils",
         "liblog",
         "libutils",
-        "libz",
-        "libziparchive",
     ],
 }
 
@@ -129,7 +134,6 @@
     },
     shared_libs: [
         "libbase",
-        "libziparchive",
     ],
     export_shared_lib_headers: ["libbase"],
 }
@@ -140,11 +144,6 @@
         "art_debug_defaults",
         "libartbase_defaults",
     ],
-    shared_libs: [
-        "libbase",
-        "libziparchive",
-    ],
-    export_shared_lib_headers: ["libbase"],
 }
 
 art_cc_library {
diff --git a/libdexfile/Android.bp b/libdexfile/Android.bp
index 49b1278..d7399b3 100644
--- a/libdexfile/Android.bp
+++ b/libdexfile/Android.bp
@@ -39,20 +39,10 @@
 
     target: {
         android: {
-            static_libs: [
-                "libziparchive",
-                "libz",
-            ],
             shared_libs: [
                 "libutils",
             ],
         },
-        host: {
-            shared_libs: [
-                "libziparchive",
-                "libz",
-            ],
-        },
     },
     generated_sources: ["dexfile_operator_srcs"],
     shared_libs: [
@@ -63,7 +53,6 @@
         "libcutils",
         // For common macros.
         "libbase",
-        "libz",
     ],
     export_include_dirs: ["."],
     export_shared_lib_headers: [
@@ -79,8 +68,6 @@
         "libcutils",
         "liblog",
         "libutils",
-        "libz",
-        "libziparchive",
     ],
 }
 
@@ -158,7 +145,6 @@
     ],
     shared_libs: [
         "libbacktrace",
-        "libziparchive",
     ],
     include_dirs: [
         "external/zlib",
diff --git a/libprofile/Android.bp b/libprofile/Android.bp
index edd9fa8..0f8db9c 100644
--- a/libprofile/Android.bp
+++ b/libprofile/Android.bp
@@ -23,27 +23,17 @@
     ],
     target: {
         android: {
-            static_libs: [
-                // ZipArchive support, the order matters here to get all symbols.
-                "libziparchive",
-                "libz",
-            ],
 	    shared_libs: [
 	        // For android::FileMap used by libziparchive.
                 "libutils",
 	    ],
         },
-        host: {
-            shared_libs: [
-                "libziparchive",
-                "libz",
-            ],
-        },
     },
     //generated_sources: ["art_libartbase_operator_srcs"],
     cflags: ["-DBUILDING_LIBART=1"],
     shared_libs: [
         "libartbase",
+        "libbase",
         "libdexfile",
         "libartbase",
 	// For atrace.
@@ -62,8 +52,6 @@
         "libbase",
         "libcutils",
         "libutils",
-        "libz",
-        "libziparchive",
     ],
 }
 
@@ -97,9 +85,7 @@
     },
     shared_libs: [
         "libbase",
-        "libziparchive",
     ],
-    export_shared_lib_headers: ["libbase"],
 }
 
 art_cc_library {
@@ -110,9 +96,7 @@
     ],
     shared_libs: [
         "libbase",
-        "libziparchive",
     ],
-    export_shared_lib_headers: ["libbase"],
 }
 
 // For now many of these tests still use CommonRuntimeTest, almost universally because of
@@ -130,6 +114,5 @@
         "libartbased",
         "libdexfiled",
         "libartbased",
-        "libziparchive",
     ],
 }
diff --git a/runtime/Android.bp b/runtime/Android.bp
index 86ee952..5402736 100644
--- a/runtime/Android.bp
+++ b/runtime/Android.bp
@@ -341,9 +341,6 @@
             shared_libs: [
                 "libtombstoned_client",
             ],
-            static_libs: [
-                "libz",  // For adler32.
-            ],
         },
         android_arm: {
             ldflags: JIT_DEBUG_REGISTER_CODE_LDFLAGS,
@@ -363,9 +360,6 @@
                 "runtime_linux.cc",
                 "thread_linux.cc",
             ],
-            shared_libs: [
-                "libz",  // For adler32.
-            ],
         },
     },
     cflags: ["-DBUILDING_LIBART=1"],
@@ -390,7 +384,6 @@
         "libnativebridge",
         "libnativeloader",
         "libbacktrace",
-        "liblz4",
         "liblog",
         // For atrace, properties, ashmem, set_sched_policy.
         "libcutils",
@@ -422,12 +415,9 @@
         "libbase",
         "libcutils",
         "liblog",
-        "liblz4",
-        "liblzma",
         "libnativebridge",
         "libnativeloader",
         "libunwindstack",
-        "libz",
     ],
 }
 
diff --git a/test/Android.bp b/test/Android.bp
index 561f95e..b729b0d 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -70,7 +70,6 @@
         "libicuuc",
         "libicui18n",
         "libnativehelper",
-        "libz",
     ],
     whole_static_libs: [
         "libsigchain",
@@ -93,11 +92,6 @@
                 "-Wno-missing-noreturn",
             ],
         },
-        host: {
-            shared_libs: [
-                "libziparchive",
-            ],
-        },
         android: {
             shared_libs: [
                 "liblog",
@@ -325,7 +319,6 @@
         // "1952-pop-frame-jit/pop_frame.cc",
     ],
     static_libs: [
-        "libz",
         "slicer",
     ],
 }
@@ -368,9 +361,6 @@
     static_libs: [
         "libbase_ndk",
     ],
-    shared_libs: [
-        "libz",  // for slicer (using adler32).
-    ],
     sdk_version: "current",
     stl: "c++_static",
     include_dirs: [
diff --git a/tools/veridex/Android.bp b/tools/veridex/Android.bp
index 92ace03..f0d83a8 100644
--- a/tools/veridex/Android.bp
+++ b/tools/veridex/Android.bp
@@ -31,8 +31,6 @@
         "libbase",
         "liblog",
         "libutils",
-        "libz",
-        "libziparchive",
     ],
     stl: "libc++_static",
     header_libs: [