summaryrefslogtreecommitdiff
path: root/packages/NetworkStack
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2019-05-01 11:54:33 +0900
committerLorenzo Colitti <lorenzo@google.com>2019-05-01 19:10:43 +0900
commit3d680e887ba40cde436a5745578e67d4a6a6fce9 (patch)
tree28bdad11c50df829ef46a6d0a25fdfd4f85a2d69 /packages/NetworkStack
parent036236af33367225e264ed781143e8f98c7c4e33 (diff)
Make NetworkStack actually build in an unbundled setup.
The Java code was already using sdk_version: "current", but the JNI library did not have an sdk_version attribute, and had forbidden dependencies on internal libraries such as libcutils, liblog and libnativehelper. This CL fixes things as follows: - Use the NDK log functions, and switch to the NDK liblog. - Switch to the NDK libnativehelper. - Drop the dependencies on libcutils and libpcap, which were unused. - Use the libc++ STL, and set the sdk_version of the library to current. Bug: 131703417 Test: m Test: installed NetworkStack APK via "adb install --staged" results in working networking Test: builds, boots, wifi works Test: atest FrameworksNetTests NetworkStackTests Change-Id: I1a7bd7fe2809b90a66073d8c5d5dcdff646c4286
Diffstat (limited to 'packages/NetworkStack')
-rw-r--r--packages/NetworkStack/Android.bp26
-rw-r--r--packages/NetworkStack/jni/network_stack_utils_jni.cpp6
-rw-r--r--packages/NetworkStack/tests/Android.bp2
3 files changed, 23 insertions, 11 deletions
diff --git a/packages/NetworkStack/Android.bp b/packages/NetworkStack/Android.bp
index e0bb862c5362..62de2ba45455 100644
--- a/packages/NetworkStack/Android.bp
+++ b/packages/NetworkStack/Android.bp
@@ -56,15 +56,24 @@ cc_library_shared {
srcs: [
"jni/network_stack_utils_jni.cpp"
],
-
+ sdk_version: "current",
shared_libs: [
"liblog",
- "libcutils",
- "libnativehelper",
- ],
- static_libs: [
- "libpcap",
+ "libnativehelper_compat_libc++",
],
+
+ // We cannot use plain "libc++" here to link libc++ dynamically because it results in:
+ // java.lang.UnsatisfiedLinkError: dlopen failed: library "libc++_shared.so" not found
+ // even if "libc++" is added into jni_libs below. Adding "libc++_shared" into jni_libs doesn't
+ // build because soong complains of:
+ // module NetworkStack missing dependencies: libc++_shared
+ //
+ // So, link libc++ statically. This means that we also need to ensure that all the C++ libraries
+ // we depend on do not dynamically link libc++. This is currently the case, because liblog is
+ // C-only and libnativehelper_compat_libc also uses stl: "c++_static".
+ //
+ // TODO: find a better solution for this in R.
+ stl: "c++_static",
cflags: [
"-Wall",
"-Werror",
@@ -79,7 +88,10 @@ java_defaults {
static_libs: [
"NetworkStackBase",
],
- jni_libs: ["libnetworkstackutilsjni"],
+ jni_libs: [
+ "libnativehelper_compat_libc++",
+ "libnetworkstackutilsjni",
+ ],
// Resources already included in NetworkStackBase
resource_dirs: [],
jarjar_rules: "jarjar-rules-shared.txt",
diff --git a/packages/NetworkStack/jni/network_stack_utils_jni.cpp b/packages/NetworkStack/jni/network_stack_utils_jni.cpp
index 5544eaa809e7..f2ba5757ed80 100644
--- a/packages/NetworkStack/jni/network_stack_utils_jni.cpp
+++ b/packages/NetworkStack/jni/network_stack_utils_jni.cpp
@@ -31,7 +31,7 @@
#include <string>
#include <nativehelper/JNIHelp.h>
-#include <utils/Log.h>
+#include <android/log.h>
namespace android {
constexpr const char NETWORKSTACKUTILS_PKG_NAME[] = "android/net/util/NetworkStackUtils";
@@ -249,7 +249,7 @@ static const JNINativeMethod gNetworkStackUtilsMethods[] = {
extern "C" jint JNI_OnLoad(JavaVM* vm, void*) {
JNIEnv *env;
if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
- ALOGE("ERROR: GetEnv failed");
+ __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, "ERROR: GetEnv failed");
return JNI_ERR;
}
@@ -261,4 +261,4 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void*) {
return JNI_VERSION_1_6;
}
-}; // namespace android \ No newline at end of file
+}; // namespace android
diff --git a/packages/NetworkStack/tests/Android.bp b/packages/NetworkStack/tests/Android.bp
index fe3c1e8eb3e5..039f6bf791fb 100644
--- a/packages/NetworkStack/tests/Android.bp
+++ b/packages/NetworkStack/tests/Android.bp
@@ -56,6 +56,7 @@ android_test {
"liblog",
"liblzma",
"libnativehelper",
+ "libnativehelper_compat_libc++",
"libnetworkstacktestsjni",
"libnetworkstackutilsjni",
"libpackagelistparser",
@@ -99,5 +100,4 @@ cc_library_shared {
"libapf",
"libpcap",
],
-
}