From: Kefu Chai Date: Sun, 2 Apr 2017 17:01:52 +0000 (+0800) Subject: cmake: extract ppc64le detection into SIMDExt.cmake X-Git-Tag: v12.0.2~209^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=195425c9ca15a27d3006c6429b9e7d82f2fb1ac0;p=ceph.git cmake: extract ppc64le detection into SIMDExt.cmake Signed-off-by: Kefu Chai --- diff --git a/cmake/modules/SIMDExt.cmake b/cmake/modules/SIMDExt.cmake index bcc492f3af06..43d039e10c8a 100644 --- a/cmake/modules/SIMDExt.cmake +++ b/cmake/modules/SIMDExt.cmake @@ -103,5 +103,17 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64") if(HAVE_INTEL_SSE4_2) set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2") endif() - +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64le") + set(HAVE_PPC64LE 1) + message(STATUS " we are ppc64le") + CHECK_C_COMPILER_FLAG("-maltivec" HAS_ALTIVEC) + if(HAS_ALTIVEC) + message(STATUS " HAS_ALTIVEC yes") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maltivec") + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -maltivec") + endif() + CHECK_C_COMPILER_FLAG("-mcpu=power8" HAVE_POWER8) + if(HAVE_POWER8) + message(STATUS " HAVE_POWER8 yes") + endif() endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 33cfbb8c9a03..d6388e805af2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -81,22 +81,11 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL GNU) endif() endif(CMAKE_CXX_COMPILER_ID STREQUAL GNU) -if(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") - message(STATUS " we are ppc64le") - CHECK_C_COMPILER_FLAG("-maltivec" HAS_ALTIVEC) - if(HAS_ALTIVEC) - message(STATUS " HAS_ALTIVEC yes") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maltivec") - set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -maltivec") - endif(HAS_ALTIVEC) - CHECK_C_COMPILER_FLAG("-mcpu=power8" HAVE_POWER8) - if(HAVE_POWER8) - message(STATUS " HAVE_POWER8 yes") - endif(HAVE_POWER8) -else(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") +include(SIMDExt) +if(NOT HAVE_PPC64LE) set(CMAKE_ASM_COMPILER ${PROJECT_SOURCE_DIR}/src/yasm-wrapper) set(CMAKE_ASM_FLAGS "-f elf64") -endif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") +endif() execute_process( COMMAND yasm -f elf64 ${CMAKE_SOURCE_DIR}/src/common/crc32c_intel_fast_asm.S -o /dev/null @@ -600,7 +589,6 @@ set_source_files_properties(${CMAKE_SOURCE_DIR}/src/ceph_ver.c ${CMAKE_SOURCE_DIR}/src/test/encoding/ceph_dencoder.cc APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h) -include(SIMDExt) if(HAVE_ARMV8_CRC) add_library(common_crc_aarch64 STATIC common/crc32c_aarch64.c) set_target_properties(common_crc_aarch64 PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")