HDFS-5365. Fix libhdfs compile error on FreeBSD9. Contributed by Radim Kolar.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1533283 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Chris Nauroth 2013-10-17 23:05:44 +00:00
parent a19b956975
commit 4d5a66f4b0
3 changed files with 13 additions and 1 deletions

View File

@ -369,6 +369,8 @@ Release 2.3.0 - UNRELEASED
HDFS-5336. DataNode should not output 'StartupProgress' metrics. HDFS-5336. DataNode should not output 'StartupProgress' metrics.
(Akira Ajisaka via cnauroth) (Akira Ajisaka via cnauroth)
HDFS-5365. Fix libhdfs compile error on FreeBSD9. (Radim Kolar via cnauroth)
Release 2.2.1 - UNRELEASED Release 2.2.1 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -62,6 +62,11 @@ endfunction()
INCLUDE(CheckCSourceCompiles) INCLUDE(CheckCSourceCompiles)
CHECK_C_SOURCE_COMPILES("int main(void) { static __thread int i = 0; return 0; }" HAVE_BETTER_TLS) CHECK_C_SOURCE_COMPILES("int main(void) { static __thread int i = 0; return 0; }" HAVE_BETTER_TLS)
# Check if we need to link dl library to get dlopen.
# dlopen on Linux is in separate library but on FreeBSD its in libc
INCLUDE(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(dl dlopen "" NEED_LINK_DL)
find_package(JNI REQUIRED) find_package(JNI REQUIRED)
if (NOT GENERATED_JAVAH) if (NOT GENERATED_JAVAH)
# Must identify where the generated headers have been placed # Must identify where the generated headers have been placed
@ -89,9 +94,13 @@ add_dual_library(hdfs
main/native/libhdfs/jni_helper.c main/native/libhdfs/jni_helper.c
main/native/libhdfs/hdfs.c main/native/libhdfs/hdfs.c
) )
if (NEED_LINK_DL)
set(LIB_DL dl)
endif(NEED_LINK_DL)
target_link_dual_libraries(hdfs target_link_dual_libraries(hdfs
${JAVA_JVM_LIBRARY} ${JAVA_JVM_LIBRARY}
dl ${LIB_DL}
pthread pthread
) )
dual_output_directory(hdfs target/usr/local/lib) dual_output_directory(hdfs target/usr/local/lib)

View File

@ -27,6 +27,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h> #include <unistd.h>
#include <limits.h>
static pthread_mutex_t gTempdirLock = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t gTempdirLock = PTHREAD_MUTEX_INITIALIZER;