From 3a24a0a5fe7cb24e8d6ca72316ddc8fbf114df6c Mon Sep 17 00:00:00 2001 From: Dmitry Puzyrkov <dmitry.puzyrkov@demlabs.net> Date: Wed, 24 Jul 2024 17:00:11 +0000 Subject: [PATCH] Hotfix clang xkcp build --- crypto/XKCP/CMakeLists.txt | 16 ++++++++++++---- crypto/XKCP/lib/LowLevel.build | 7 ++++++- crypto/XKCP/libdap-xkcp-armv7.build | 1 + crypto/XKCP/libdap-xkcp-armv8.build | 1 + crypto/XKCP/libdap-xkcp-reference.build | 3 ++- crypto/XKCP/libdap-xkcp-x8664.build | 7 +++---- 6 files changed, 25 insertions(+), 10 deletions(-) diff --git a/crypto/XKCP/CMakeLists.txt b/crypto/XKCP/CMakeLists.txt index 29e03d625..3e175bf4b 100644 --- a/crypto/XKCP/CMakeLists.txt +++ b/crypto/XKCP/CMakeLists.txt @@ -6,16 +6,22 @@ project (dap_crypto_XKCP) SET(XKCP_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/xkcp_build_src/) +include(CheckCCompilerFlag) +unset(COMPILER_SUPPORTS_MARCH_NATIVE CACHE) +CHECK_C_COMPILER_FLAG(-march=native COMPILER_SUPPORTS_MARCH_NATIVE) +if(COMPILER_SUPPORTS_MARCH_NATIVE) + SET(TARGET_POSTFIX "-native") +endif() if (${TARGET_ARCH} MATCHES "x86_64") - SET(XKCP_TARGET libdap-XKCP-x8664.a) + SET(XKCP_TARGET libdap-XKCP-x8664${TARGET_POSTFIX}.a) elseif(${TARGET_ARCH} MATCHES "armv7") - SET(XKCP_TARGET libdap-XKCP-armv7.a) + SET(XKCP_TARGET libdap-XKCP-armv7${TARGET_POSTFIX}.a) elseif(${TARGET_ARCH} MATCHES "armv8") - SET(XKCP_TARGET libdap-XKCP-armv8.a) + SET(XKCP_TARGET libdap-XKCP-armv8${TARGET_POSTFIX}.a) else() - SET(XKCP_TARGET libdap-XKCP-ref.a) + SET(XKCP_TARGET libdap-XKCP-ref${TARGET_POSTFIX}.a) endif() message("[*] XKCP target: ${TARGET_ARCH} ${XKCP_TARGET}") @@ -23,6 +29,8 @@ message("[*] XKCP build dir: ${XKCP_BUILD_DIR}") message("[*] XKCP make command: ${CMAKE_MAKE_PROGRAM}") message("[*] XKCP make CC: ${CMAKE_C_COMPILER}") message("[*] XKCP make AR: ${CMAKE_AR}") +message("[*] XKCP compiller supports -march=native: ${COMPILER_SUPPORTS_MARCH_NATIVE}") + file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${XKCP_BUILD_DIR}) message("[*] XKCP OSXSYSROOT: ${CMAKE_OSX_SYSROOT}") diff --git a/crypto/XKCP/lib/LowLevel.build b/crypto/XKCP/lib/LowLevel.build index 723fa9377..78cd941bc 100644 --- a/crypto/XKCP/lib/LowLevel.build +++ b/crypto/XKCP/lib/LowLevel.build @@ -118,10 +118,15 @@ The fragments below allow to select the desired implementation of the permutatio <gcc>-fomit-frame-pointer</gcc> <gcc>-O2</gcc> <gcc>-g0</gcc> - <gcc>-march=native</gcc> <gcc>-mtune=native</gcc> </fragment> + <fragment name="optimized-march-native"> + <gcc>-march=native</gcc> + </fragment> + + + <!-- Keccak-p[1600] --> <fragment name="K1600"> diff --git a/crypto/XKCP/libdap-xkcp-armv7.build b/crypto/XKCP/libdap-xkcp-armv7.build index 33ea38553..5e0889403 100644 --- a/crypto/XKCP/libdap-xkcp-armv7.build +++ b/crypto/XKCP/libdap-xkcp-armv7.build @@ -1,4 +1,5 @@ <?xml version="1.0"?> <group> <target name="libdap-XKCP-armv7.a" inherits="FIPS202 K1600-ARMv7A-NEON"/> + <target name="libdap-XKCP-armv7-native.a" inherits="FIPS202 K1600-ARMv7A-NEON optimized-march-native"/> </group> \ No newline at end of file diff --git a/crypto/XKCP/libdap-xkcp-armv8.build b/crypto/XKCP/libdap-xkcp-armv8.build index a3b8425c5..9e405d2c9 100644 --- a/crypto/XKCP/libdap-xkcp-armv8.build +++ b/crypto/XKCP/libdap-xkcp-armv8.build @@ -1,4 +1,5 @@ <?xml version="1.0"?> <group> <target name="libdap-XKCP-armv8.a" inherits="FIPS202 K1600-ARMv8A"/> + <target name="libdap-XKCP-armv8-native.a" inherits="FIPS202 K1600-ARMv8A optimized-march-native"/> </group> \ No newline at end of file diff --git a/crypto/XKCP/libdap-xkcp-reference.build b/crypto/XKCP/libdap-xkcp-reference.build index 47bc6055f..2da072908 100644 --- a/crypto/XKCP/libdap-xkcp-reference.build +++ b/crypto/XKCP/libdap-xkcp-reference.build @@ -1,4 +1,5 @@ <?xml version="1.0"?> <group> - <target name="libdap-XKCP-ref.a" inherits="FIPS202 K1600-plain-64bits-ua"/> + <target name="libdap-XKCP-ref.a" inherits="FIPS202 K1600-plain-64bits-ua "/> + <target name="libdap-XKCP-ref-native.a" inherits="FIPS202 K1600-plain-64bits-ua optimized-gcc optimized-march-native"/> </group> \ No newline at end of file diff --git a/crypto/XKCP/libdap-xkcp-x8664.build b/crypto/XKCP/libdap-xkcp-x8664.build index 4ebcf5294..b7b187dbf 100644 --- a/crypto/XKCP/libdap-xkcp-x8664.build +++ b/crypto/XKCP/libdap-xkcp-x8664.build @@ -1,8 +1,7 @@ <?xml version="1.0"?> <group> - <target name="libdap-XKCP-x8664.a" inherits="FIPS202 K1600-AVX2"> - - </target> - + <target name="libdap-XKCP-x8664.a" inherits="FIPS202 K1600-AVX2 "/> + <target name="libdap-XKCP-x8664-native.a" inherits="FIPS202 K1600-AVX2 optimized-march-native"/> + </group> \ No newline at end of file -- GitLab