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

This commit is contained in:
Masatake Iwasaki 2020-02-10 12:55:04 +09:00
parent 6191d4b4a0
commit d5467d299d
2 changed files with 63 additions and 0 deletions

View File

@ -417,6 +417,47 @@ Building command example:
Note that the command above manually specified the openssl library and include
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 v3.7.1.
$ git clone https://github.com/protocolbuffers/protobuf
$ cd protobuf
$ git checkout v3.7.1
$ 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

View File

@ -22,6 +22,25 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../../../hadoop-common-project
include(HadoopCommon)
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(
main/native/utils/api
@ -51,6 +70,9 @@ add_library(hadooputils STATIC
main/native/utils/impl/StringUtils.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
main/native/pipes/impl/HadoopPipes.cc