From a9eda2a807d669ee59147b06c390ceb8defbba1c Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 21 Apr 2015 22:50:41 +0100 Subject: [PATCH] Fix building on ARMv7 (rhbz 999971) --- hadoop-armhfp.patch | 34 ++++++++++++++++++++++++++++++++++ hadoop.spec | 10 +++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 hadoop-armhfp.patch diff --git a/hadoop-armhfp.patch b/hadoop-armhfp.patch new file mode 100644 index 0000000..f88e44a --- /dev/null +++ b/hadoop-armhfp.patch @@ -0,0 +1,34 @@ +--- hadoop-common-9e2ef43a240fb0f603d8c384e501daec11524510/hadoop-common-project/hadoop-common/src/JNIFlags.cmake.orig 2014-07-20 15:03:30.473576587 +0100 ++++ hadoop-common-9e2ef43a240fb0f603d8c384e501daec11524510/hadoop-common-project/hadoop-common/src/JNIFlags.cmake 2014-07-20 15:06:13.811115845 +0100 +@@ -45,22 +45,22 @@ + OUTPUT_VARIABLE JVM_ELF_ARCH + ERROR_QUIET) + if (NOT JVM_ELF_ARCH MATCHES "Tag_ABI_VFP_args: VFP registers") +- message("Soft-float JVM detected") ++ message("Hard-float JVM detected") + +- # Test compilation with -mfloat-abi=softfp using an arbitrary libc function ++ # Test compilation with -mfloat-abi=hard using an arbitrary libc function + # (typically fails with "fatal error: bits/predefs.h: No such file or directory" +- # if soft-float dev libraries are not installed) ++ # if hard-float dev libraries are not installed) + include(CMakePushCheckState) + cmake_push_check_state() +- set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mfloat-abi=softfp") ++ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mfloat-abi=hard") + include(CheckSymbolExists) +- check_symbol_exists(exit stdlib.h SOFTFP_AVAILABLE) +- if (NOT SOFTFP_AVAILABLE) +- message(FATAL_ERROR "Soft-float dev libraries required (e.g. 'apt-get install libc6-dev-armel' on Debian/Ubuntu)") +- endif (NOT SOFTFP_AVAILABLE) ++ check_symbol_exists(exit stdlib.h HARDFP_AVAILABLE) ++ if (NOT HARDFP_AVAILABLE) ++ message(FATAL_ERROR "Hard-float dev libraries required (e.g. 'apt-get install libc6-dev-armel' on Debian/Ubuntu)") ++ endif (NOT HARDFP_AVAILABLE) + cmake_pop_check_state() + +- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=softfp") ++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=hard") + endif () + endif (READELF MATCHES "NOTFOUND") + endif (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND CMAKE_SYSTEM_NAME STREQUAL "Linux") diff --git a/hadoop.spec b/hadoop.spec index 4e70e61..4e038a3 100644 --- a/hadoop.spec +++ b/hadoop.spec @@ -23,7 +23,7 @@ Name: hadoop Version: 2.4.1 -Release: 7%{?dist} +Release: 8%{?dist} Summary: A software platform for processing vast amounts of data # The BSD license file is missing # https://issues.apache.org/jira/browse/HADOOP-9849 @@ -67,8 +67,8 @@ Patch9: %{name}-tools.jar.patch Patch10: %{name}-build.patch # Fix Java detection on ppc64le Patch11: %{name}-2.4.1-cmake-java-ppc64le.patch -# The native bits don't compile on ARM -ExcludeArch: %{arm} +# Build with hard-float on ARMv7 +Patch12: %{name}-armhfp.patch # This is not a real BR, but is here because of rawhide shift to eclipse # aether packages which caused a dependency of a dependency to not get @@ -484,6 +484,7 @@ This package contains files needed to run Apache Hadoop YARN in secure mode. %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 %if 0%{?fedora} < 21 # The hadoop test suite needs classes from the zookeeper test suite. @@ -1125,6 +1126,9 @@ fi %attr(6050,root,yarn) %{_bindir}/container-executor %changelog +* Tue Apr 21 2015 Peter Robinson 2.4.1-8 +- Fix building on ARMv7 + * Wed Mar 11 2015 Swapnil Kulkarni 2.4.1-7 - Added groovy18 dependency