OSDN Git Service

Add extra dependencies for system namespace
authorKiyoung Kim <kiyoungkim@google.com>
Fri, 16 Oct 2020 05:05:53 +0000 (14:05 +0900)
committerKiyoung Kim <kiyoungkim@google.com>
Fri, 16 Oct 2020 05:05:53 +0000 (14:05 +0900)
Add extra dependencies between system namespace and Statsd APEX so
system namespace from non-system section can use libraries from statsd
APEX.

Bug: 170695190
Test: Cuttlefish boot succeeded
Change-Id: I512e1cd6731a7f31121f408ff6a2405275b136e0

contents/namespace/system.cc
testdata/golden_output/product-enabled/ld.config.txt
testdata/golden_output/stage2/ld.config.txt

index 0bcdad2..b85b7e2 100644 (file)
@@ -35,17 +35,22 @@ Namespace BuildSystemNamespace([[maybe_unused]] const Context& ctx) {
     ns.AddSearchPath(Var("PRODUCT") + "/${LIB}");
   }
 
-  ns.AddRequires(std::vector{"libdexfile_external.so",
-                             "libdexfiled_external.so",
-                             "libnativebridge.so",
-                             "libnativehelper.so",
-                             "libnativeloader.so",
-                             "libandroidicu.so",
-                             "libicu.so",
-                             // TODO(b/120786417 or b/134659294): libicuuc.so
-                             // and libicui18n.so are kept for app compat.
-                             "libicui18n.so",
-                             "libicuuc.so"});
+  ns.AddRequires(std::vector{
+      "libdexfile_external.so",
+      "libdexfiled_external.so",
+      "libnativebridge.so",
+      "libnativehelper.so",
+      "libnativeloader.so",
+      "libandroidicu.so",
+      "libicu.so",
+      // TODO(b/120786417 or b/134659294): libicuuc.so
+      // and libicui18n.so are kept for app compat.
+      "libicui18n.so",
+      "libicuuc.so",
+      // statsd
+      "libstatspull.so",
+      "libstatssocket.so",
+  });
 
   ns.AddProvides(GetSystemStubLibraries());
   return ns;
index b84b777..6b8e386 100644 (file)
@@ -467,7 +467,7 @@ namespace.vndk_product.link.default.shared_libs += libm.so
 namespace.vndk_product.link.default.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.vndk_product.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
 [vendor]
-additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_runtime,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_runtime,system,vndk
 namespace.default.isolated = true
 namespace.default.visible = true
 namespace.default.search.paths = /odm/${LIB}
@@ -610,6 +610,27 @@ namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.asan.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.links = system,com_android_art
+namespace.com_android_os_statsd.link.system.shared_libs = libbinder_ndk.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libincident.so
+namespace.com_android_os_statsd.link.system.shared_libs += liblog.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl_android.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.link.com_android_art.shared_libs = libnativehelper.so
 namespace.com_android_runtime.isolated = true
 namespace.com_android_runtime.visible = true
 namespace.com_android_runtime.search.paths = /apex/com.android.runtime/${LIB}
@@ -633,7 +654,7 @@ namespace.system.asan.search.paths = /data/asan/system/${LIB}
 namespace.system.asan.search.paths += /system/${LIB}
 namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
 namespace.system.asan.search.paths += /system_ext/${LIB}
-namespace.system.links = com_android_i18n,com_android_art
+namespace.system.links = com_android_i18n,com_android_art,com_android_os_statsd
 namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
@@ -643,6 +664,8 @@ namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
 namespace.system.link.com_android_art.shared_libs += libnativebridge.so
 namespace.system.link.com_android_art.shared_libs += libnativehelper.so
 namespace.system.link.com_android_art.shared_libs += libnativeloader.so
+namespace.system.link.com_android_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
 namespace.vndk.isolated = false
 namespace.vndk.search.paths = /odm/${LIB}/vndk-sp
 namespace.vndk.search.paths += /odm/${LIB}/vndk
@@ -673,7 +696,7 @@ namespace.vndk.link.system.shared_libs += libm.so
 namespace.vndk.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
 [product]
-additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_runtime,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_runtime,system,vndk
 namespace.default.isolated = true
 namespace.default.visible = true
 namespace.default.search.paths = /product/${LIB}
@@ -802,6 +825,27 @@ namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.asan.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.links = system,com_android_art
+namespace.com_android_os_statsd.link.system.shared_libs = libbinder_ndk.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libincident.so
+namespace.com_android_os_statsd.link.system.shared_libs += liblog.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl_android.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.link.com_android_art.shared_libs = libnativehelper.so
 namespace.com_android_runtime.isolated = true
 namespace.com_android_runtime.visible = true
 namespace.com_android_runtime.search.paths = /apex/com.android.runtime/${LIB}
@@ -825,7 +869,7 @@ namespace.system.asan.search.paths = /data/asan/system/${LIB}
 namespace.system.asan.search.paths += /system/${LIB}
 namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
 namespace.system.asan.search.paths += /system_ext/${LIB}
-namespace.system.links = com_android_i18n,com_android_art
+namespace.system.links = com_android_i18n,com_android_art,com_android_os_statsd
 namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
@@ -835,6 +879,8 @@ namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
 namespace.system.link.com_android_art.shared_libs += libnativebridge.so
 namespace.system.link.com_android_art.shared_libs += libnativehelper.so
 namespace.system.link.com_android_art.shared_libs += libnativeloader.so
+namespace.system.link.com_android_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
 namespace.vndk.isolated = false
 namespace.vndk.search.paths = /product/${LIB}/vndk-sp
 namespace.vndk.search.paths += /product/${LIB}/vndk
@@ -1420,7 +1466,7 @@ namespace.system.asan.search.paths = /data/asan/system/${LIB}
 namespace.system.asan.search.paths += /system/${LIB}
 namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
 namespace.system.asan.search.paths += /system_ext/${LIB}
-namespace.system.links = com_android_i18n,com_android_art
+namespace.system.links = com_android_i18n,com_android_art,com_android_os_statsd
 namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
@@ -1430,3 +1476,5 @@ namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
 namespace.system.link.com_android_art.shared_libs += libnativebridge.so
 namespace.system.link.com_android_art.shared_libs += libnativehelper.so
 namespace.system.link.com_android_art.shared_libs += libnativeloader.so
+namespace.system.link.com_android_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
index 3d9ad2e..c3b77dc 100644 (file)
@@ -455,7 +455,7 @@ namespace.vndk.link.default.shared_libs += libm.so
 namespace.vndk.link.default.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
 namespace.vndk.link.com_android_neuralnetworks.shared_libs = libneuralnetworks.so
 [vendor]
-additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_runtime,system,vndk
+additional.namespaces = com_android_adbd,com_android_art,com_android_i18n,com_android_media,com_android_neuralnetworks,com_android_os_statsd,com_android_runtime,system,vndk
 namespace.default.isolated = true
 namespace.default.visible = true
 namespace.default.search.paths = /odm/${LIB}
@@ -598,6 +598,27 @@ namespace.com_android_neuralnetworks.link.system.shared_libs += libdl.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libdl_android.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libm.so
 namespace.com_android_neuralnetworks.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.isolated = true
+namespace.com_android_os_statsd.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.asan.search.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths = /apex/com.android.os.statsd/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /data/asan/system/${LIB}
+namespace.com_android_os_statsd.asan.permitted.paths += /system/${LIB}
+namespace.com_android_os_statsd.links = system,com_android_art
+namespace.com_android_os_statsd.link.system.shared_libs = libbinder_ndk.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libincident.so
+namespace.com_android_os_statsd.link.system.shared_libs += liblog.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libc.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl.so
+namespace.com_android_os_statsd.link.system.shared_libs += libdl_android.so
+namespace.com_android_os_statsd.link.system.shared_libs += libm.so
+namespace.com_android_os_statsd.link.system.shared_libs += libclang_rt.asan-arm-android.so:libclang_rt.asan-i686-android.so:libclang_rt.hwasan-arm-android.so:libclang_rt.hwasan-i686-android.so:libclang_rt.tsan-arm-android.so:libclang_rt.tsan-i686-android.so:libclang_rt.ubsan_standalone-arm-android.so:libclang_rt.ubsan_standalone-i686-android.so
+namespace.com_android_os_statsd.link.com_android_art.shared_libs = libnativehelper.so
 namespace.com_android_runtime.isolated = true
 namespace.com_android_runtime.visible = true
 namespace.com_android_runtime.search.paths = /apex/com.android.runtime/${LIB}
@@ -624,7 +645,7 @@ namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
 namespace.system.asan.search.paths += /system_ext/${LIB}
 namespace.system.asan.search.paths += /data/asan/product/${LIB}
 namespace.system.asan.search.paths += /product/${LIB}
-namespace.system.links = com_android_i18n,com_android_art
+namespace.system.links = com_android_i18n,com_android_art,com_android_os_statsd
 namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
@@ -634,6 +655,8 @@ namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
 namespace.system.link.com_android_art.shared_libs += libnativebridge.so
 namespace.system.link.com_android_art.shared_libs += libnativehelper.so
 namespace.system.link.com_android_art.shared_libs += libnativeloader.so
+namespace.system.link.com_android_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so
 namespace.vndk.isolated = false
 namespace.vndk.search.paths = /odm/${LIB}/vndk-sp
 namespace.vndk.search.paths += /odm/${LIB}/vndk
@@ -1231,7 +1254,7 @@ namespace.system.asan.search.paths += /data/asan/system_ext/${LIB}
 namespace.system.asan.search.paths += /system_ext/${LIB}
 namespace.system.asan.search.paths += /data/asan/product/${LIB}
 namespace.system.asan.search.paths += /product/${LIB}
-namespace.system.links = com_android_i18n,com_android_art
+namespace.system.links = com_android_i18n,com_android_art,com_android_os_statsd
 namespace.system.link.com_android_i18n.shared_libs = libandroidicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicu.so
 namespace.system.link.com_android_i18n.shared_libs += libicui18n.so
@@ -1241,3 +1264,5 @@ namespace.system.link.com_android_art.shared_libs += libdexfiled_external.so
 namespace.system.link.com_android_art.shared_libs += libnativebridge.so
 namespace.system.link.com_android_art.shared_libs += libnativehelper.so
 namespace.system.link.com_android_art.shared_libs += libnativeloader.so
+namespace.system.link.com_android_os_statsd.shared_libs = libstatspull.so
+namespace.system.link.com_android_os_statsd.shared_libs += libstatssocket.so