From c7b9156bf6e748272834137a7ef2ddb0186fd738 Mon Sep 17 00:00:00 2001 From: Dmitriy Gerasimov <naeper@demlabs.net> Date: Mon, 31 May 2021 13:10:53 +0700 Subject: [PATCH] [-] WolfSSL switched off by default [*] Build fixes for M1 [+] Autodetect of M1/Intel variants for MacOS --- 3rdparty/monero_crypto/CMakeLists.txt | 2 ++ 3rdparty/wolfssl/cyassl/options.h | 18 ------------------ 3rdparty/wolfssl/wolfssl/options.h | 18 ------------------ CMakeLists.txt | 5 +++-- cmake/OS_Detection.cmake | 9 ++++++++- dap-sdk/CMakeLists.txt | 10 +++++++++- dap-sdk/core/libdap.pri | 4 +++- dap-sdk/crypto/CMakeLists.txt | 6 +++++- dap-sdk/net/client/CMakeLists.txt | 6 +++++- dap-sdk/net/core/CMakeLists.txt | 6 +++--- 10 files changed, 38 insertions(+), 46 deletions(-) diff --git a/3rdparty/monero_crypto/CMakeLists.txt b/3rdparty/monero_crypto/CMakeLists.txt index 958edbd283..34af01cb61 100755 --- a/3rdparty/monero_crypto/CMakeLists.txt +++ b/3rdparty/monero_crypto/CMakeLists.txt @@ -109,6 +109,8 @@ else() message(STATUS "[*] Building on ${CMAKE_SYSTEM_PROCESSOR} for ${ARCH}") if(ARCH STREQUAL "default") set(ARCH_FLAG "") + elseif(ARCH STREQUAL "native") + set(ARCH_FLAG "") elseif(PPC64LE) set(ARCH_FLAG "-mcpu=${ARCH}") elseif(IOS AND ARCH STREQUAL "arm64") diff --git a/3rdparty/wolfssl/cyassl/options.h b/3rdparty/wolfssl/cyassl/options.h index e2e364e7b0..5ba0ed638c 100644 --- a/3rdparty/wolfssl/cyassl/options.h +++ b/3rdparty/wolfssl/cyassl/options.h @@ -113,9 +113,6 @@ extern "C" { #undef WC_RSA_PSS #define WC_RSA_PSS -#undef WOLFSSL_BASE64_ENCODE -#define WOLFSSL_BASE64_ENCODE - #undef NO_RC4 #define NO_RC4 @@ -125,15 +122,6 @@ extern "C" { #undef NO_RABBIT #define NO_RABBIT -#undef WOLFSSL_SHA224 -#define WOLFSSL_SHA224 - -#undef WOLFSSL_SHA3 -#define WOLFSSL_SHA3 - -#undef WOLFSSL_SHAKE256 -#define WOLFSSL_SHAKE256 - #undef HAVE_POLY1305 #define HAVE_POLY1305 @@ -173,12 +161,6 @@ extern "C" { #undef NO_MD4 #define NO_MD4 -#undef USE_FAST_MATH -#define USE_FAST_MATH - -#undef WOLFSSL_X86_64_BUILD -#define WOLFSSL_X86_64_BUILD - #undef WC_NO_ASYNC_THREADING #define WC_NO_ASYNC_THREADING diff --git a/3rdparty/wolfssl/wolfssl/options.h b/3rdparty/wolfssl/wolfssl/options.h index d6f39494f9..aa54bade2d 100644 --- a/3rdparty/wolfssl/wolfssl/options.h +++ b/3rdparty/wolfssl/wolfssl/options.h @@ -110,9 +110,6 @@ extern "C" { #undef WC_RSA_PSS #define WC_RSA_PSS -#undef WOLFSSL_BASE64_ENCODE -#define WOLFSSL_BASE64_ENCODE - #undef NO_RC4 #define NO_RC4 @@ -122,15 +119,6 @@ extern "C" { #undef NO_RABBIT #define NO_RABBIT -#undef WOLFSSL_SHA224 -#define WOLFSSL_SHA224 - -#undef WOLFSSL_SHA3 -#define WOLFSSL_SHA3 - -#undef WOLFSSL_SHAKE256 -#define WOLFSSL_SHAKE256 - #undef HAVE_POLY1305 #define HAVE_POLY1305 @@ -170,12 +158,6 @@ extern "C" { #undef NO_MD4 #define NO_MD4 -#undef USE_FAST_MATH -#define USE_FAST_MATH - -#undef WOLFSSL_X86_64_BUILD -#define WOLFSSL_X86_64_BUILD - #undef WC_NO_ASYNC_THREADING #define WC_NO_ASYNC_THREADING diff --git a/CMakeLists.txt b/CMakeLists.txt index 3eda61f1a8..4fde6a8301 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,8 +53,9 @@ endif() add_subdirectory(dap-sdk) add_subdirectory(3rdparty/monero_crypto) add_subdirectory(3rdparty/cuttdb) -add_subdirectory(3rdparty/wolfssl) - +if(DAPSDK_MODULES MATCHES "ssl-support") + add_subdirectory(3rdparty/wolfssl) +endif() add_subdirectory(modules/) diff --git a/cmake/OS_Detection.cmake b/cmake/OS_Detection.cmake index daa8d412dd..161a5b8fa6 100644 --- a/cmake/OS_Detection.cmake +++ b/cmake/OS_Detection.cmake @@ -53,7 +53,14 @@ if(UNIX) set(BSD ON) if (${_CMAKE_OSX_SYSROOT_PATH} MATCHES "MacOS") set(MACOS ON) - add_definitions("-DDAP_OS_MAC") + # on macOS "uname -m" returns the architecture (x86_64 or arm64) + execute_process( + COMMAND uname -m + RESULT_VARIABLE result + OUTPUT_VARIABLE MACOS_ARCH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + add_definitions("-DDAP_OS_MAC -DDAP_OS_MAC_ARCH=${MACOS_ARCH}") endif() if (${_CMAKE_OSX_SYSROOT_PATH} MATCHES "iOS") set(IOS ON) diff --git a/dap-sdk/CMakeLists.txt b/dap-sdk/CMakeLists.txt index d327eb51f2..9a6f3fa639 100644 --- a/dap-sdk/CMakeLists.txt +++ b/dap-sdk/CMakeLists.txt @@ -1,4 +1,12 @@ -set(DAP_SDK_NATIVE_VERSION "2.2-1") +set(DAP_SDK_NATIVE_VERSION "2.2-2") + +# We switch off SSL until its not switched on back +if(DAPSDK_MODULES MATCHES "ssl-support") + add_definitions("-DDAP_NET_CLIENT_SSL") +else() + add_definitions("-DDAP_NET_CLIENT_NO_SSL") +endif() + # Core, add it always add_subdirectory(core) if (DAPSDK_MODULES MATCHES "crypto") diff --git a/dap-sdk/core/libdap.pri b/dap-sdk/core/libdap.pri index 0842a446f9..e7b623806b 100755 --- a/dap-sdk/core/libdap.pri +++ b/dap-sdk/core/libdap.pri @@ -47,7 +47,9 @@ win32 { HEADERS += $$PWD/../../3rdparty/uthash/src/utlist.h \ $$PWD/../../3rdparty/uthash/src/uthash.h -#include($$PWD/../../3rdparty/wolfssl/wolfssl.pri) +if(DAPSDK_MODULES MATCHES "ssl-support") + include($$PWD/../../3rdparty/wolfssl/wolfssl.pri) +endif() # Sources itself HEADERS += $$PWD/include/dap_common.h \ diff --git a/dap-sdk/crypto/CMakeLists.txt b/dap-sdk/crypto/CMakeLists.txt index 0aa772704d..3badd00468 100755 --- a/dap-sdk/crypto/CMakeLists.txt +++ b/dap-sdk/crypto/CMakeLists.txt @@ -74,7 +74,11 @@ if(UNIX) endif() elseif(APPLE) if(BUILD_64) - file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas_Apple.s ) + if((MACOS) AND(MACOS_ARCH STREQUAL "x86_64") ) + file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/OptimizedAsmX86-64/KeccakP-1600-x86-64-gas_Apple.s ) + else() + file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/Compact64/KeccakP-1600-compact64.c ) + endif() else() file( GLOB XKCP_SRCS2 src/XKCP/lib/low/KeccakP-1600/Inplace32BI/KeccakP-1600-inplace32BI.c ) endif() diff --git a/dap-sdk/net/client/CMakeLists.txt b/dap-sdk/net/client/CMakeLists.txt index 1b51802e4b..39185cc300 100644 --- a/dap-sdk/net/client/CMakeLists.txt +++ b/dap-sdk/net/client/CMakeLists.txt @@ -7,8 +7,12 @@ file(GLOB DAP_CLIENT_HEADERS FILES include/*.h) add_library(${PROJECT_NAME} STATIC ${DAP_CLIENT_HEADERS} ${DAP_CLIENT_SOURCES}) -target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core dap_http_server dap_enc_server dap_stream dap_session dap_stream_ch json-c wolfssl) +if(DAPSDK_MODULES MATCHES "ssl-support") + target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core dap_http_server dap_enc_server dap_stream dap_session dap_stream_ch json-c wolfssl) +else() + target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core dap_http_server dap_enc_server dap_stream dap_session dap_stream_ch json-c) +endif() if(UNIX AND NOT ANDROID AND NOT DARWIN) target_link_libraries(${PROJECT_NAME} rt) endif() diff --git a/dap-sdk/net/core/CMakeLists.txt b/dap-sdk/net/core/CMakeLists.txt index f3b6a5e2c9..5ed51a7bfb 100644 --- a/dap-sdk/net/core/CMakeLists.txt +++ b/dap-sdk/net/core/CMakeLists.txt @@ -19,13 +19,13 @@ endif() add_library(${PROJECT_NAME} STATIC ${DAP_SERVER_CORE_HEADERS} ${DAP_SERVER_CORE_SOURCES}) -if(WIN32) +if(DAPSDK_MODULES MATCHES "ssl-support") target_link_libraries(${PROJECT_NAME} dap_core dap_crypto wolfssl) +else() + target_link_libraries(${PROJECT_NAME} dap_core dap_crypto) endif() if(UNIX) - target_link_libraries(${PROJECT_NAME} dap_core dap_crypto wolfssl) - if(NOT ANDROID) target_link_libraries(${PROJECT_NAME} pthread) endif() -- GitLab