diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index d6d43f29dd9..0da61940383 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -727,6 +727,9 @@ Release 2.8.0 - UNRELEASED HADOOP-12259. Utility to Dynamic port allocation (brahmareddy via rkanter) + HADOOP-12170. hadoop-common's JNIFlags.cmake is redundant and can be + removed (Alan Burlison via Colin P. McCabe) + OPTIMIZATIONS HADOOP-11785. Reduce the number of listStatus operation in distcp diff --git a/hadoop-common-project/hadoop-common/src/JNIFlags.cmake b/hadoop-common-project/hadoop-common/src/JNIFlags.cmake deleted file mode 100644 index c558fe8c55c..00000000000 --- a/hadoop-common-project/hadoop-common/src/JNIFlags.cmake +++ /dev/null @@ -1,124 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -cmake_minimum_required(VERSION 2.6 FATAL_ERROR) - -# If JVM_ARCH_DATA_MODEL is 32, compile all binaries as 32-bit. -# This variable is set by maven. -if (JVM_ARCH_DATA_MODEL EQUAL 32) - # Force 32-bit code generation on amd64/x86_64, ppc64, sparc64 - if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_SYSTEM_PROCESSOR MATCHES ".*64") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - set(CMAKE_LD_FLAGS "${CMAKE_LD_FLAGS} -m32") - endif () - if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64") - # Set CMAKE_SYSTEM_PROCESSOR to ensure that find_package(JNI) will use - # the 32-bit version of libjvm.so. - set(CMAKE_SYSTEM_PROCESSOR "i686") - endif () -endif (JVM_ARCH_DATA_MODEL EQUAL 32) - -# Determine float ABI of JVM on ARM Linux -if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND CMAKE_SYSTEM_NAME STREQUAL "Linux") - find_program(READELF readelf) - if (READELF MATCHES "NOTFOUND") - message(WARNING "readelf not found; JVM float ABI detection disabled") - else (READELF MATCHES "NOTFOUND") - execute_process( - COMMAND ${READELF} -A ${JAVA_JVM_LIBRARY} - OUTPUT_VARIABLE JVM_ELF_ARCH - ERROR_QUIET) - if (NOT JVM_ELF_ARCH MATCHES "Tag_ABI_VFP_args: VFP registers") - message("Soft-float JVM detected") - - # Test compilation with -mfloat-abi=softfp 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) - include(CMakePushCheckState) - cmake_push_check_state() - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -mfloat-abi=softfp") - 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) - cmake_pop_check_state() - - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfloat-abi=softfp") - endif () - endif (READELF MATCHES "NOTFOUND") -endif (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" AND CMAKE_SYSTEM_NAME STREQUAL "Linux") - -IF("${CMAKE_SYSTEM}" MATCHES "Linux") - # - # Locate JNI_INCLUDE_DIRS and JNI_LIBRARIES. - # Since we were invoked from Maven, we know that the JAVA_HOME environment - # variable is valid. So we ignore system paths here and just use JAVA_HOME. - # - FILE(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _JAVA_HOME) - IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") - SET(_java_libarch "i386") - ELSEIF (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64") - SET(_java_libarch "amd64") - ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") - SET(_java_libarch "arm") - ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le") - IF(EXISTS "${_JAVA_HOME}/jre/lib/ppc64le") - SET(_java_libarch "ppc64le") - ELSE() - SET(_java_libarch "ppc64") - ENDIF() - ELSE() - SET(_java_libarch ${CMAKE_SYSTEM_PROCESSOR}) - ENDIF() - SET(_JDK_DIRS "${_JAVA_HOME}/jre/lib/${_java_libarch}/*" - "${_JAVA_HOME}/jre/lib/${_java_libarch}" - "${_JAVA_HOME}/jre/lib/*" - "${_JAVA_HOME}/jre/lib" - "${_JAVA_HOME}/lib/*" - "${_JAVA_HOME}/lib" - "${_JAVA_HOME}/include/*" - "${_JAVA_HOME}/include" - "${_JAVA_HOME}" - ) - FIND_PATH(JAVA_INCLUDE_PATH - NAMES jni.h - PATHS ${_JDK_DIRS} - NO_DEFAULT_PATH) - #In IBM java, it's jniport.h instead of jni_md.h - FIND_PATH(JAVA_INCLUDE_PATH2 - NAMES jni_md.h jniport.h - PATHS ${_JDK_DIRS} - NO_DEFAULT_PATH) - SET(JNI_INCLUDE_DIRS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) - FIND_LIBRARY(JAVA_JVM_LIBRARY - NAMES jvm JavaVM - PATHS ${_JDK_DIRS} - NO_DEFAULT_PATH) - SET(JNI_LIBRARIES ${JAVA_JVM_LIBRARY}) - MESSAGE("JAVA_HOME=${JAVA_HOME}, JAVA_JVM_LIBRARY=${JAVA_JVM_LIBRARY}") - MESSAGE("JAVA_INCLUDE_PATH=${JAVA_INCLUDE_PATH}, JAVA_INCLUDE_PATH2=${JAVA_INCLUDE_PATH2}") - IF(JAVA_JVM_LIBRARY AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2) - MESSAGE("Located all JNI components successfully.") - ELSE() - MESSAGE(FATAL_ERROR "Failed to find a viable JVM installation under JAVA_HOME.") - ENDIF() -ELSE() - find_package(JNI REQUIRED) -ENDIF()