You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Tony Reix (JIRA)" <ji...@apache.org> on 2014/12/02 12:13:12 UTC
[jira] [Created] (HADOOP-11345) On Suse/PPC64, building Hadoop
Pipes (with -Pnative) requires to add -lcrypto at link stage
Tony Reix created HADOOP-11345:
----------------------------------
Summary: On Suse/PPC64, building Hadoop Pipes (with -Pnative) requires to add -lcrypto at link stage
Key: HADOOP-11345
URL: https://issues.apache.org/jira/browse/HADOOP-11345
Project: Hadoop Common
Issue Type: Bug
Components: tools
Affects Versions: 2.4.1
Environment: Suse on PPC64
# uname -a
Linux hybridf 3.0.101-0.40-ppc64 #1 SMP Thu Sep 18 13:09:38 UTC 2014 (44b8c95) ppc64 ppc64 ppc64 GNU/Linux
Reporter: Tony Reix
Priority: Minor
Compiling Hadoop Pipes fails on Suse/PPC64.
[INFO] Apache Hadoop Extras ............................... SUCCESS [ 5.855 s]
[INFO] Apache Hadoop Pipes ................................ FAILURE [ 8.134 s]
Traces of building Hadoop Pipes:
main:
[mkdir] Created dir: /home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/target/native
[exec] Current OS is Linux
[exec] Executing 'cmake' with arguments:
[exec] '/home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/src/'
[exec] '-DJVM_ARCH_DATA_MODEL=64'
[exec]
[exec] The ' characters around the executable and arguments are
[exec] not part of the command.
Execute:Java13CommandLauncher: Executing 'cmake' with arguments:
'/home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/src/'
'-DJVM_ARCH_DATA_MODEL=64'
The ' characters around the executable and arguments are
not part of the command.
[exec] -- The C compiler identification is GNU
[exec] -- The CXX compiler identification is GNU
[exec] -- Check for working C compiler: /opt/at7.0/bin/gcc
[exec] -- Check for working C compiler: /opt/at7.0/bin/gcc -- works
[exec] -- Detecting C compiler ABI info
[exec] -- Detecting C compiler ABI info - done
[exec] -- Check for working CXX compiler: /opt/at7.0/bin/c++
[exec] -- Check for working CXX compiler: /opt/at7.0/bin/c++ -- works
[exec] -- Detecting CXX compiler ABI info
[exec] JAVA_HOME=, JAVA_JVM_LIBRARY=/opt/ibm/java-ppc64-71/jre/lib/ppc64/compressedrefs/libjvm.so
[exec] JAVA_INCLUDE_PATH=/opt/ibm/java-ppc64-71/include, JAVA_INCLUDE_PATH2=/opt/ibm/java-ppc64-71/include/linux
[exec] Located all JNI components successfully.
[exec] -- Detecting CXX compiler ABI info - done
[exec] -- Found OpenSSL: /usr/lib64/libssl.so
[exec] -- Configuring done
[exec] -- Generating done
[exec] -- Build files have been written to: /home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/target/native
............
[exec] /usr/bin/cmake -E cmake_progress_report /home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/target/native/CMakeFiles 4
[exec] [ 57%] Building CXX object CMakeFiles/pipes-sort.dir/main/native/examples/impl/sort.cc.o
[exec] /opt/at7.0/bin/c++ -g -Wall -O2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/src/main/native/utils/api -I/home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/src/main/native/pipes/api -I/home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/src -o CMakeFiles/pipes-sort.dir/main/native/examples/impl/sort.cc.o -c /home/hadoop/hadoop-common/hadoop-tools/hadoop-pipes/src/main/native/examples/impl/sort.cc
[exec] Linking CXX executable examples/pipes-sort
[exec] /usr/bin/cmake -E cmake_link_script CMakeFiles/pipes-sort.dir/link.txt --verbose=1
[exec] /opt/at7.0/bin/c++ -g -Wall -O2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC CMakeFiles/pipes-sort.dir/main/native/examples/impl/sort.cc.o -o examples/pipes-sort -rdynamic libhadooppipes.a libhadooputils.a -lssl -lpthread
[exec] /opt/at7.0/lib/gcc/powerpc64-linux/4.8.4/../../../../powerpc64-linux/bin/ld: libhadooppipes.a(HadoopPipes.cc.o): undefined reference to symbol 'HMAC_Init'
[exec] /opt/at7.0/lib64/libcrypto.so.1.0.0: error adding symbols: DSO missing from command line
[exec] collect2: error: ld returned 1 exit status
However, adding -lcrypto to the failing command did fix the issue:
# cd hadoop-common/hadoop-tools/hadoop-pipes/target/native
# /opt/at7.0/bin/c++ -g -Wall -O2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC CMakeFiles/pipes-sort.dir/main/native/examples/impl/sort.cc.o -o examples/pipes-sort -rdynamic libhadooppipes.a libhadooputils.a -lssl -lpthread -lcrypto
#
I do not have any Suse / x86_64 machine available. So, I do not know if the issue is general for Suse or specific for Suse/PPC64 .
Anyway, I don't know how Hadoop should be changed for fixing this issue.
Maybe, in hadoop-tools/hadoop-pipes/src/CMakeLists.txt , something should be added to:
target_link_libraries(hadooppipes
${OPENSSL_LIBRARIES}
pthread
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)