build: set ARCH_FLAG before compiler/linker flag checks
This commit is contained in:
parent
8bf5a00564
commit
85318e7800
@ -529,6 +529,40 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(NO_AES "Explicitly disable AES support" ${NO_AES})
|
||||||
|
|
||||||
|
if(NO_AES)
|
||||||
|
message(STATUS "AES support explicitly disabled")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES")
|
||||||
|
elseif(NOT ARM AND NOT PPC64LE AND NOT PPC64 AND NOT PPC AND NOT S390X)
|
||||||
|
message(STATUS "AES support enabled")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
|
||||||
|
elseif(PPC64LE OR PPC64 OR PPC)
|
||||||
|
message(STATUS "AES support not available on POWER")
|
||||||
|
elseif(S390X)
|
||||||
|
message(STATUS "AES support not available on s390x")
|
||||||
|
elseif(ARM6)
|
||||||
|
message(STATUS "AES support not available on ARMv6")
|
||||||
|
elseif(ARM7)
|
||||||
|
message(STATUS "AES support not available on ARMv7")
|
||||||
|
elseif(ARM8)
|
||||||
|
CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO)
|
||||||
|
if(ARCH_PLUS_CRYPTO)
|
||||||
|
message(STATUS "Crypto extensions enabled for ARMv8")
|
||||||
|
set(ARCH_FLAG "-march=${ARCH}+crypto")
|
||||||
|
else()
|
||||||
|
message(STATUS "Crypto extensions unavailable on your ARMv8 device")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "AES support disabled")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_FLAG}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_FLAG}")
|
||||||
|
|
||||||
set(WARNINGS "-Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-variable -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized")
|
set(WARNINGS "-Wall -Wextra -Wpointer-arith -Wundef -Wvla -Wwrite-strings -Wno-error=extra -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-unused-variable -Wno-error=unused-variable -Wno-error=undef -Wno-error=uninitialized")
|
||||||
if(NOT MINGW)
|
if(NOT MINGW)
|
||||||
set(WARNINGS_AS_ERRORS_FLAG "-Werror")
|
set(WARNINGS_AS_ERRORS_FLAG "-Werror")
|
||||||
@ -639,38 +673,8 @@ else()
|
|||||||
message(STATUS "Using C++ security hardening flags: ${CXX_SECURITY_FLAGS}")
|
message(STATUS "Using C++ security hardening flags: ${CXX_SECURITY_FLAGS}")
|
||||||
message(STATUS "Using linker security hardening flags: ${LD_SECURITY_FLAGS}")
|
message(STATUS "Using linker security hardening flags: ${LD_SECURITY_FLAGS}")
|
||||||
|
|
||||||
option(NO_AES "Explicitly disable AES support" ${NO_AES})
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${COVERAGE_FLAGS} ${PIC_FLAG} ${C_SECURITY_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_CPP_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${COVERAGE_FLAGS} ${PIC_FLAG} ${CXX_SECURITY_FLAGS}")
|
||||||
if(NO_AES)
|
|
||||||
message(STATUS "AES support explicitly disabled")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_AES")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNO_AES")
|
|
||||||
elseif(NOT ARM AND NOT PPC64LE AND NOT PPC64 AND NOT PPC AND NOT S390X)
|
|
||||||
message(STATUS "AES support enabled")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes")
|
|
||||||
elseif(PPC64LE OR PPC64 OR PPC)
|
|
||||||
message(STATUS "AES support not available on POWER")
|
|
||||||
elseif(S390X)
|
|
||||||
message(STATUS "AES support not available on s390x")
|
|
||||||
elseif(ARM6)
|
|
||||||
message(STATUS "AES support not available on ARMv6")
|
|
||||||
elseif(ARM7)
|
|
||||||
message(STATUS "AES support not available on ARMv7")
|
|
||||||
elseif(ARM8)
|
|
||||||
CHECK_CXX_ACCEPTS_FLAG("-march=${ARCH}+crypto" ARCH_PLUS_CRYPTO)
|
|
||||||
if(ARCH_PLUS_CRYPTO)
|
|
||||||
message(STATUS "Crypto extensions enabled for ARMv8")
|
|
||||||
set(ARCH_FLAG "-march=${ARCH}+crypto")
|
|
||||||
else()
|
|
||||||
message(STATUS "Crypto extensions unavailable on your ARMv8 device")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message(STATUS "AES support disabled")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_FLAG} ${WARNINGS} ${C_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG} ${C_SECURITY_FLAGS}")
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE ${MINGW_FLAG} ${STATIC_ASSERT_CPP_FLAG} ${WARNINGS} ${CXX_WARNINGS} ${ARCH_FLAG} ${COVERAGE_FLAGS} ${PIC_FLAG} ${CXX_SECURITY_FLAGS}")
|
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LD_SECURITY_FLAGS}")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LD_SECURITY_FLAGS}")
|
||||||
|
|
||||||
# With GCC 6.1.1 the compiled binary malfunctions due to aliasing. Until that
|
# With GCC 6.1.1 the compiled binary malfunctions due to aliasing. Until that
|
||||||
|
Loading…
Reference in New Issue
Block a user