diff options
| author | 2016-01-06 17:59:49 -0800 | |
|---|---|---|
| committer | 2016-01-08 09:48:43 -0800 | |
| commit | 10edbb159afae232817c86fc06a6801349f05bae (patch) | |
| tree | ab487114d0f5e906471fa5459a075b3648b72a8e | |
| parent | fcad0099eeceb6f2c09a6de28d8e8f05dab69ed5 (diff) | |
ART: Use libopenjdkd
Load libopenjdkd in debug mode. Add dependencies for libopenjdkd
in the Makefiles.
Bug: 26421792
Change-Id: Ie64cd56f73901b9c7645e46384d753752bbd5351
| -rw-r--r-- | Android.mk | 29 | ||||
| -rw-r--r-- | build/Android.gtest.mk | 4 | ||||
| -rw-r--r-- | runtime/common_runtime_test.cc | 2 | ||||
| -rw-r--r-- | runtime/runtime.cc | 7 | ||||
| -rw-r--r-- | test/Android.run-test.mk | 6 |
5 files changed, 41 insertions, 7 deletions
diff --git a/Android.mk b/Android.mk index 34022ae1d0..4f73127123 100644 --- a/Android.mk +++ b/Android.mk @@ -400,6 +400,35 @@ oat-target-sync: oat-target $(TEST_ART_ADB_ROOT_AND_REMOUNT) adb sync +#################################################################################################### +# Fake packages to ensure generation of libopenjdkd when one builds with mm/mmm/mmma. +# +# The library is required for starting a runtime in debug mode, but libartd does not depend on it +# (dependency cycle otherwise). +# +# Note: * As the package is phony to create a dependency the package name is irrelevant. +# * We make MULTILIB explicit to "both," just to state here that we want both libraries on +# 64-bit systems, even if it is the default. + +# ART on the host. +ifeq ($(ART_BUILD_HOST_DEBUG),true) +include $(CLEAR_VARS) +LOCAL_MODULE := art-libartd-libopenjdkd-host-dependency +LOCAL_MULTILIB := both +LOCAL_REQUIRED_MODULES := libopenjdkd +LOCAL_IS_HOST_MODULE := true +include $(BUILD_PHONY_PACKAGE) +endif + +# ART on the target. +ifeq ($(ART_BUILD_TARGET_DEBUG),true) +include $(CLEAR_VARS) +LOCAL_MODULE := art-libartd-libopenjdkd-target-dependency +LOCAL_MULTILIB := both +LOCAL_REQUIRED_MODULES := libopenjdkd +include $(BUILD_PHONY_PACKAGE) +endif + ######################################################################## # "m build-art" for quick minimal build .PHONY: build-art diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk index 3d16c49fe4..af64470a17 100644 --- a/build/Android.gtest.mk +++ b/build/Android.gtest.mk @@ -441,7 +441,7 @@ define define-art-gtest-rule-target $(foreach file,$(ART_GTEST_$(1)_DEX_DEPS),$(ART_TEST_TARGET_GTEST_$(file)_DEX)) \ $$(ART_TARGET_NATIVETEST_OUT)/$$(TARGET_$(2)ARCH)/$(1) \ $$($(2)TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so \ - $$($(2)TARGET_OUT_SHARED_LIBRARIES)/libopenjdk.so \ + $$($(2)TARGET_OUT_SHARED_LIBRARIES)/libopenjdkd.so \ $$(TARGET_OUT_JAVA_LIBRARIES)/core-libart-testdex.jar \ $$(TARGET_OUT_JAVA_LIBRARIES)/core-oj-testdex.jar @@ -485,7 +485,7 @@ define define-art-gtest-rule-host # Dependencies for all host gtests. gtest_deps := $$(HOST_CORE_DEX_LOCATIONS) \ $$($(2)ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$$(ART_HOST_SHLIB_EXTENSION) \ - $$($(2)ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$$(ART_HOST_SHLIB_EXTENSION) \ + $$($(2)ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdkd$$(ART_HOST_SHLIB_EXTENSION) \ $$(gtest_exe) \ $$(ART_GTEST_$(1)_HOST_DEPS) \ $(foreach file,$(ART_GTEST_$(1)_DEX_DEPS),$(ART_TEST_HOST_GTEST_$(file)_DEX)) diff --git a/runtime/common_runtime_test.cc b/runtime/common_runtime_test.cc index 624abb9f6d..a4e16ae71f 100644 --- a/runtime/common_runtime_test.cc +++ b/runtime/common_runtime_test.cc @@ -429,7 +429,7 @@ void CommonRuntimeTest::TearDown() { CHECK_EQ(0, dlclose(handle)); } { - void* handle = dlopen("libopenjdk.so", RTLD_LAZY); + void* handle = dlopen("libopenjdkd.so", RTLD_LAZY); dlclose(handle); CHECK_EQ(0, dlclose(handle)); } diff --git a/runtime/runtime.cc b/runtime/runtime.cc index 4a7ecccc75..cb40e9e3ea 100644 --- a/runtime/runtime.cc +++ b/runtime/runtime.cc @@ -1272,11 +1272,14 @@ void Runtime::InitNativeMethods() { } } { + constexpr const char* kOpenJdkLibrary = kIsDebugBuild + ? "libopenjdkd.so" + : "libopenjdk.so"; std::string error_msg; - if (!java_vm_->LoadNativeLibrary(env, "libopenjdk.so", nullptr, + if (!java_vm_->LoadNativeLibrary(env, kOpenJdkLibrary, nullptr, /* is_shared_namespace */ false, nullptr, nullptr, &error_msg)) { - LOG(FATAL) << "LoadNativeLibrary failed for \"libopenjdk.so\": " << error_msg; + LOG(FATAL) << "LoadNativeLibrary failed for \"" << kOpenJdkLibrary << "\": " << error_msg; } } diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk index 8c5ff0a938..3ce9d099ae 100644 --- a/test/Android.run-test.mk +++ b/test/Android.run-test.mk @@ -663,7 +663,8 @@ ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \ $(ART_HOST_OUT_SHARED_LIBRARIES)/libarttestd$(ART_HOST_SHLIB_EXTENSION) \ $(ART_HOST_OUT_SHARED_LIBRARIES)/libnativebridgetest$(ART_HOST_SHLIB_EXTENSION) \ $(ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \ - $(ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$(ART_HOST_SHLIB_EXTENSION) + $(ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$(ART_HOST_SHLIB_EXTENSION) \ + $(ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdkd$(ART_HOST_SHLIB_EXTENSION) ifneq ($(HOST_PREFER_32_BIT),true) ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \ @@ -671,7 +672,8 @@ ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \ $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libarttestd$(ART_HOST_SHLIB_EXTENSION) \ $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libnativebridgetest$(ART_HOST_SHLIB_EXTENSION) \ $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \ - $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$(ART_HOST_SHLIB_EXTENSION) + $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$(ART_HOST_SHLIB_EXTENSION) \ + $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdkd$(ART_HOST_SHLIB_EXTENSION) endif # Create a rule to build and run a tests following the form: |