]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
build: misc fixes for cmake build on i386 15516/head
authorJames Page <james.page@ubuntu.com>
Tue, 6 Jun 2017 14:01:40 +0000 (15:01 +0100)
committerJames Page <james.page@ubuntu.com>
Tue, 6 Jun 2017 15:34:50 +0000 (16:34 +0100)
Scope SIMD CPU flag detection base on target architecture,
resolving build failures in gf-complete on i386; this is
inline with the previous autotools based feature detection.

Only compile crypto/isa-l if yasm 64 bit complier is found,
effectively limiting scope to x86_64.

Signed-off-by: James Page <james.page@ubuntu.com>
cmake/modules/SIMDExt.cmake
src/CMakeLists.txt

index 43d039e10c8af48fb67c7bb13e8f9adb0f5b24bc..5330835aa162b2403a1babf579be3c9ed25cc239 100644 (file)
@@ -75,34 +75,38 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM")
 
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64")
   set(HAVE_INTEL 1)
-  CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE)
-  if(HAVE_INTEL_SSE)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse")
-  endif()
-  CHECK_C_COMPILER_FLAG(-msse2 HAVE_INTEL_SSE2)
-  if(HAVE_INTEL_SSE2)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2")
-  endif()
-  CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3)
-  if(HAVE_INTEL_SSE3)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3")
-  endif()
-  CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3)
-  if(HAVE_INTEL_SSSE3)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3")
-  endif()
-  CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL)
-  if(HAVE_INTEL_PCLMUL)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul")
-  endif()
-  CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1)
-  if(HAVE_INTEL_SSE4_1)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1")
-  endif()
-  CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2)
-  if(HAVE_INTEL_SSE4_2)
-    set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2")
-  endif()
+  if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
+    CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE)
+    if(HAVE_INTEL_SSE)
+      set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse")
+    endif()
+    if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
+      CHECK_C_COMPILER_FLAG(-msse2 HAVE_INTEL_SSE2)
+      if(HAVE_INTEL_SSE2)
+        set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2")
+      endif()
+      CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3)
+      if(HAVE_INTEL_SSE3)
+        set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3")
+      endif()
+      CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3)
+      if(HAVE_INTEL_SSSE3)
+        set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3")
+      endif()
+      CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL)
+      if(HAVE_INTEL_PCLMUL)
+        set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul")
+      endif()
+      CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1)
+      if(HAVE_INTEL_SSE4_1)
+        set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1")
+      endif()
+      CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2)
+      if(HAVE_INTEL_SSE4_2)
+        set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2")
+      endif()
+    endif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
+  endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64le")
   set(HAVE_PPC64LE 1)
   message(STATUS " we are ppc64le")
index 3483a08a39d89c5df5796a2935dbc265308891b2..30c3381042e7d6eb5a4dc6d9612a66cc93be2faa 100644 (file)
@@ -898,9 +898,9 @@ if(WITH_TESTS)
     DESTINATION bin)
 endif(WITH_TESTS)
 
-if(HAVE_INTEL)
+if(HAVE_INTEL AND HAVE_BETTER_YASM_ELF64)
   add_subdirectory(crypto/isa-l)
-endif(HAVE_INTEL)
+endif(HAVE_INTEL AND HAVE_BETTER_YASM_ELF64)
 
 if(WITH_TESTS)