From f4daa9f5276d80f48234b61d71ec6d53eba22647 Mon Sep 17 00:00:00 2001 From: Quantum Date: Sat, 24 Jul 2021 23:42:30 -0400 Subject: [PATCH] [all] cmake: fix OptimizeForNative 1. Correctly detect ON state so that host is not built as -march=native by default. 2. Merge OFF and GENERIC options as we need at least -march=nehalem to build properly. --- cmake/OptimizeForNative.cmake | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cmake/OptimizeForNative.cmake b/cmake/OptimizeForNative.cmake index 35322630..ec47afe6 100644 --- a/cmake/OptimizeForNative.cmake +++ b/cmake/OptimizeForNative.cmake @@ -1,14 +1,14 @@ set(OPTIMIZE_FOR_NATIVE AUTO CACHE STRING "Build with -march=native") -set_property(CACHE OPTIMIZE_FOR_NATIVE PROPERTY STRINGS AUTO ON OFF GENERIC) +set_property(CACHE OPTIMIZE_FOR_NATIVE PROPERTY STRINGS AUTO ON OFF) set(OPTIMIZE_FOR_NATIVE_ARCH "none") -if(OPTIMIZE_FOR_NATIVE OR (OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" AND OPTIMIZE_FOR_NATIVE_DEFAULT)) +if(OPTIMIZE_FOR_NATIVE STREQUAL "ON" OR (OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" AND OPTIMIZE_FOR_NATIVE_DEFAULT)) CHECK_C_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE) if(COMPILER_SUPPORTS_MARCH_NATIVE) set(OPTIMIZE_FOR_NATIVE_ARCH "native") set(OPTIMIZE_FOR_NATIVE_ON ON) endif() -elseif(OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" OR OPTIMIZE_FOR_NATIVE STREQUAL "GENERIC") +elseif(OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" OR OPTIMIZE_FOR_NATIVE STREQUAL "OFF") CHECK_C_COMPILER_FLAG("-march=x86-64-v2" COMPILER_SUPPORTS_MARCH_X86_64_V2) if(COMPILER_SUPPORTS_MARCH_X86_64_V2) set(OPTIMIZE_FOR_NATIVE_ARCH "x86-64-v2") @@ -18,7 +18,6 @@ elseif(OPTIMIZE_FOR_NATIVE STREQUAL "AUTO" OR OPTIMIZE_FOR_NATIVE STREQUAL "GENE set(OPTIMIZE_FOR_NATIVE_ARCH "nehalem") endif() endif() -elseif(NOT OPTIMIZE_FOR_NATIVE) else() set(OPTIMIZE_FOR_NATIVE_ARCH "${OPTIMIZE_FOR_NATIVE}") set(OPTIMIZE_FOR_NATIVE_ON ON)