From f28864b9af5719aa2e23f2eb3af9d73b4334822d Mon Sep 17 00:00:00 2001 From: Nathan Moinvaziri Date: Tue, 30 Jun 2020 20:57:47 -0700 Subject: [PATCH] Apply float abi flag to all files in cmake (same as configure). Don't override -mfloat-abi if set via -DCMAKE_C_FLAGS in cmake. Only set -mfloat-abi=softfp if compiler ends in eabi in cmake. (same as configure). --- CMakeLists.txt | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5385565a..7d918e26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -216,13 +216,17 @@ else() if(NOT NATIVEFLAG) if(__GNUC__) if(BASEARCH_ARM_FOUND) - # Check support for ARM floating point - execute_process(COMMAND ${CMAKE_C_COMPILER} "-dumpmachine" - OUTPUT_VARIABLE GCC_MACHINE) - if("${GCC_MACHINE}" MATCHES "eabihf") - set(FLOATABI "-mfloat-abi=hard") - else() - set(FLOATABI "-mfloat-abi=softfp") + if(NOT CMAKE_C_FLAGS MATCHES "-mfloat-abi") + # Check support for ARM floating point + execute_process(COMMAND ${CMAKE_C_COMPILER} "-dumpmachine" + OUTPUT_VARIABLE GCC_MACHINE) + if("${GCC_MACHINE}" MATCHES "gnueabihf") + set(FLOATABI "-mfloat-abi=hard") + elseif("${GCC_MACHINE}" MATCHES ".*gnueabi") + set(FLOATABI "-mfloat-abi=softfp") + endif() + message(STATUS "ARM floating point arch: ${FLOATABI}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLOATABI}") endif() # NEON if("${ARCH}" MATCHES "aarch64") @@ -235,9 +239,7 @@ else() MFPU_NEON_AVAILABLE FAIL_REGEX "not supported") set(CMAKE_REQUIRED_FLAGS) if(MFPU_NEON_AVAILABLE) - set(NEONFLAG "${FLOATABI} -mfpu=neon") - else() - set(NEONFLAG "${FLOATABI}") + set(NEONFLAG "-mfpu=neon") endif() endif() # ACLE -- 2.47.2