HADOOP-16739. Fix native build failure of hadoop-pipes on CentOS 8.

This commit is contained in:
Masatake Iwasaki 2020-04-24 13:58:08 +09:00
parent 7b036c512f
commit 83c4f8b9a0
2 changed files with 63 additions and 0 deletions

View File

@ -422,6 +422,47 @@ Building command example:
Note that the command above manually specified the openssl library and include Note that the command above manually specified the openssl library and include
path. This is necessary at least for Homebrewed OpenSSL. path. This is necessary at least for Homebrewed OpenSSL.
----------------------------------------------------------------------------------
Building on CentOS 8
----------------------------------------------------------------------------------
* Install development tools such as GCC, autotools, OpenJDK and Maven.
$ sudo dnf group install 'Development Tools'
$ sudo dnf install java-1.8.0-openjdk-devel maven
* Install Protocol Buffers v2.5.0.
$ git clone https://github.com/protocolbuffers/protobuf
$ cd protobuf
$ git checkout v2.5.0
$ autoreconf -i
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
$ cd ..
* Install libraries provided by CentOS 8.
$ sudo dnf install libtirpc-devel zlib-devel lz4-devel bzip2-devel openssl-devel cyrus-sasl-devel libpmem-devel
* Install optional dependencies (snappy-devel).
$ sudo dnf --enablerepo=PowerTools snappy-devel
* Install optional dependencies (libzstd-devel).
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf --enablerepo=epel install libzstd-devel
* Install optional dependencies (isa-l).
$ sudo dnf --enablerepo=PowerTools install nasm
$ git clone https://github.com/intel/isa-l
$ cd isa-l/
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
---------------------------------------------------------------------------------- ----------------------------------------------------------------------------------
Building on Windows Building on Windows

View File

@ -22,6 +22,25 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../../../hadoop-common-project
include(HadoopCommon) include(HadoopCommon)
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
find_package(PkgConfig QUIET)
pkg_check_modules(LIBTIRPC libtirpc)
find_path(RPC_INCLUDE_DIRS NAMES rpc/rpc.h)
if (NOT RPC_INCLUDE_DIRS)
find_path(TIRPC_INCLUDE_DIRS
NAMES netconfig.h
PATH_SUFFIXES tirpc
HINTS ${LIBTIRPC_INCLUDE_DIRS}
)
find_library(TIRPC_LIBRARIES
NAMES tirpc
HINTS ${LIBTIRPC_LIBRARY_DIRS}
)
include_directories(${TIRPC_INCLUDE_DIRS})
endif()
include_directories( include_directories(
main/native/utils/api main/native/utils/api
@ -51,6 +70,9 @@ add_library(hadooputils STATIC
main/native/utils/impl/StringUtils.cc main/native/utils/impl/StringUtils.cc
main/native/utils/impl/SerialUtils.cc main/native/utils/impl/SerialUtils.cc
) )
if (NOT RPC_INCLUDE_DIRS AND LIBTIRPC_FOUND)
target_link_libraries(hadooputils tirpc)
endif()
add_library(hadooppipes STATIC add_library(hadooppipes STATIC
main/native/pipes/impl/HadoopPipes.cc main/native/pipes/impl/HadoopPipes.cc