diff --git a/dev-support/bin/dist-copynativelibs b/dev-support/bin/dist-copynativelibs index 95de186e7e729..5db23d522f6e0 100755 --- a/dev-support/bin/dist-copynativelibs +++ b/dev-support/bin/dist-copynativelibs @@ -157,7 +157,7 @@ if [[ -d "${LIB_DIR}" ]]; then bundle_native_lib "${ISALBUNDLE}" "isal.lib" "libisal." "${ISALLIB}" - bundle_native_lib "${PMDKBUNDLE}" "pmdk.lib" "pmdk" "${PMDKLIB}" + bundle_native_lib "${PMDKBUNDLE}" "pmdk.lib" "libpmem." "${PMDKLIB}" fi # Windows diff --git a/hadoop-common-project/hadoop-common/pom.xml b/hadoop-common-project/hadoop-common/pom.xml index 6c6d3ec5bf929..7dada3e73c56d 100644 --- a/hadoop-common-project/hadoop-common/pom.xml +++ b/hadoop-common-project/hadoop-common/pom.xml @@ -709,6 +709,8 @@ false + false + false true false diff --git a/hadoop-common-project/hadoop-common/src/CMakeLists.txt b/hadoop-common-project/hadoop-common/src/CMakeLists.txt index d2ef03645a4ae..4b2ec859bcd57 100644 --- a/hadoop-common-project/hadoop-common/src/CMakeLists.txt +++ b/hadoop-common-project/hadoop-common/src/CMakeLists.txt @@ -143,7 +143,7 @@ if(REQUIRE_PMDK) set(CMAKE_FIND_LIBRARY_SUFFIXES ${STORED_CMAKE_FIND_LIBRARY_SUFFIXES}) if(PMDK_LIBRARY) - GET_FILENAME_COMPONENT(HADOOP_PMDK_LIBRARY ${PMDK_LIBRARY} REALPATH) + GET_FILENAME_COMPONENT(HADOOP_PMDK_LIBRARY ${PMDK_LIBRARY} NAME) set(PMDK_SOURCE_FILES ${SRC}/io/nativeio/pmdk_load.c) else(PMDK_LIBRARY) MESSAGE(FATAL_ERROR "The required PMDK library is NOT found. PMDK_LIBRARY=${PMDK_LIBRARY}") diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c index 1d7c508d85c76..5dc3c89d015f8 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c @@ -1639,12 +1639,15 @@ JNIEXPORT void JNICALL Java_org_apache_hadoop_io_nativeio_NativeIO_00024POSIX_pm JNIEXPORT jstring JNICALL Java_org_apache_hadoop_io_nativeio_NativeIO_00024POSIX_getPmdkLibPath (JNIEnv * env, jclass thisClass) { - jstring libpath = NULL; - - #ifdef HADOOP_PMDK_LIBRARY - libpath = (*env)->NewStringUTF(env, HADOOP_PMDK_LIBRARY); - #endif - return libpath; + #if (defined UNIX) && (defined HADOOP_PMDK_LIBRARY) + if (pmdkLoader == NULL) { + THROW(env, "java/lang/UnsatisfiedLinkError", + "Unavailable: library not loaded yet"); + } else { + return (*env)->NewStringUTF(env, pmdkLoader->libname); + } + #endif + return (jstring)NULL; } #ifdef __cplusplus diff --git a/hadoop-project-dist/pom.xml b/hadoop-project-dist/pom.xml index 5cec569dfa825..f6c19e7e4ca0d 100644 --- a/hadoop-project-dist/pom.xml +++ b/hadoop-project-dist/pom.xml @@ -45,6 +45,8 @@ false false + + false false false @@ -336,6 +338,8 @@ --artifactid=${project.artifactId} --isalbundle=${bundle.isal} --isallib=${isal.lib} + --pmdkbundle=${bundle.pmdk} + --pmdklib=${pmdk.lib} --openssllib=${openssl.lib} --opensslbinbundle=${bundle.openssl.in.bin} --openssllibbundle=${bundle.openssl}