Merge "Make NetworkStack actually build in an unbundled setup."

This commit is contained in:
Treehugger Robot
2019-05-01 14:04:59 +00:00
committed by Gerrit Code Review
3 changed files with 23 additions and 11 deletions

View File

@@ -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",

View File

@@ -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
}; // namespace android

View File

@@ -56,6 +56,7 @@ android_test {
"liblog",
"liblzma",
"libnativehelper",
"libnativehelper_compat_libc++",
"libnetworkstacktestsjni",
"libnetworkstackutilsjni",
"libpackagelistparser",
@@ -99,5 +100,4 @@ cc_library_shared {
"libapf",
"libpcap",
],
}