mirror of
https://github.com/open-quantum-safe/liboqs.git
synced 2025-10-06 00:03:35 -04:00
Fix OQS_PORTABLE_BUILD logic for Frodo (#927)
* Fix OQS_PORTABLE_BUILD logic for Frodo * Refine 'OQS_PORTABLE_BUILD' by general architecture, e.g. x86_64 * Use CMake to define ARCH_X86_64 and ARCH_ARM_ANY used in common.{c,h} * Avoid triggering portable build on ARM * Set OQS_USE_CPU_EXTENSIONS even on MSVC * Compile AES-NI code in portable x86_64 builds
This commit is contained in:
parent
b5fd8aedfc
commit
707750e034
@ -13,7 +13,6 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
set(OQS_USE_PTHREADS_IN_TESTS 1)
|
set(OQS_USE_PTHREADS_IN_TESTS 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(OQS_USE_CPU_EXTENSIONS "Enable compile and run-time support for CPU extensions such as AVX2, SSE, etc." ON)
|
|
||||||
if(OQS_USE_CPU_EXTENSIONS)
|
if(OQS_USE_CPU_EXTENSIONS)
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/gcc_clang_intrinsics.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/gcc_clang_intrinsics.cmake)
|
||||||
endif()
|
endif()
|
||||||
@ -68,7 +67,6 @@ elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
|||||||
set(OQS_USE_PTHREADS_IN_TESTS 1)
|
set(OQS_USE_PTHREADS_IN_TESTS 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(OQS_USE_CPU_EXTENSIONS "Enable compile and run-time support for CPU extensions such as AVX2, SSE, etc." ON)
|
|
||||||
if(OQS_USE_CPU_EXTENSIONS)
|
if(OQS_USE_CPU_EXTENSIONS)
|
||||||
include(${CMAKE_CURRENT_LIST_DIR}/gcc_clang_intrinsics.cmake)
|
include(${CMAKE_CURRENT_LIST_DIR}/gcc_clang_intrinsics.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
@ -14,6 +14,11 @@ endif()
|
|||||||
|
|
||||||
project(liboqs C ASM)
|
project(liboqs C ASM)
|
||||||
|
|
||||||
|
option(OQS_USE_CPU_EXTENSIONS "Enable compile and run-time support for CPU extensions such as AVX2, SSE, etc." ON)
|
||||||
|
option(OQS_PORTABLE_BUILD "Ensure the resulting library is portable. This implies having run-time checks for CPU extensions." ON)
|
||||||
|
option(OQS_BUILD_ONLY_LIB "Build only liboqs and do not expose build targets for tests, documentation, and pretty-printing available." OFF)
|
||||||
|
option(OQS_MINIMAL_BUILD "Only build the default KEM and Signature schemes." OFF)
|
||||||
|
|
||||||
set(CMAKE_C_STANDARD 11)
|
set(CMAKE_C_STANDARD 11)
|
||||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
@ -24,14 +29,21 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|||||||
|
|
||||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
|
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
|
||||||
set(ARCH "x86_64")
|
set(ARCH "x86_64")
|
||||||
|
set(ARCH_X86_64 ON)
|
||||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64")
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64")
|
||||||
set(ARCH "arm64")
|
set(ARCH "arm64")
|
||||||
|
set(ARCH_ARM_ANY ON)
|
||||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
||||||
set(ARCH "arm")
|
set(ARCH "arm")
|
||||||
|
set(ARCH_ARM_ANY ON)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR})
|
message(FATAL_ERROR "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(OQS_PORTABLE_BUILD AND ARCH_X86_64)
|
||||||
|
set(OQS_PORTABLE_X86_64_BUILD ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||||
set(OQS_DEBUG_BUILD ON)
|
set(OQS_DEBUG_BUILD ON)
|
||||||
else()
|
else()
|
||||||
@ -42,10 +54,6 @@ if(WIN32)
|
|||||||
set(CMAKE_GENERATOR_CC cl)
|
set(CMAKE_GENERATOR_CC cl)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(OQS_PORTABLE_BUILD "Ensure the resulting library is portable. This implies having run-time checks for CPU extensions." ON)
|
|
||||||
option(OQS_BUILD_ONLY_LIB "Build only liboqs and do not expose build targets for tests, documentation, and pretty-printing available." OFF)
|
|
||||||
option(OQS_MINIMAL_BUILD "Only build the default KEM and Signature schemes." OFF)
|
|
||||||
|
|
||||||
include(.CMake/compiler_opts.cmake)
|
include(.CMake/compiler_opts.cmake)
|
||||||
include(.CMake/alg_support.cmake)
|
include(.CMake/alg_support.cmake)
|
||||||
|
|
||||||
|
@ -8,10 +8,7 @@ if(OQS_ENABLE_KEM_BIKE)
|
|||||||
endif()
|
endif()
|
||||||
if(OQS_ENABLE_KEM_FRODOKEM)
|
if(OQS_ENABLE_KEM_FRODOKEM)
|
||||||
add_subdirectory(kem/frodokem)
|
add_subdirectory(kem/frodokem)
|
||||||
set(KEM_OBJS ${KEM_OBJS} $<TARGET_OBJECTS:frodokem>)
|
set(KEM_OBJS ${KEM_OBJS} ${FRODOKEM_OBJS})
|
||||||
if(OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
set(KEM_OBJS ${KEM_OBJS} $<TARGET_OBJECTS:frodokem_avx2>)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
if(OQS_ENABLE_KEM_SIKE OR OQS_ENABLE_KEM_SIDH)
|
if(OQS_ENABLE_KEM_SIKE OR OQS_ENABLE_KEM_SIDH)
|
||||||
add_subdirectory(kem/sike)
|
add_subdirectory(kem/sike)
|
||||||
|
@ -14,7 +14,7 @@ if(OQS_USE_AES_OPENSSL)
|
|||||||
set(AES_IMPL aes/aes_ossl.c)
|
set(AES_IMPL aes/aes_ossl.c)
|
||||||
else()
|
else()
|
||||||
set(AES_IMPL aes/aes.c aes/aes_c.c)
|
set(AES_IMPL aes/aes.c aes/aes_c.c)
|
||||||
if (OQS_USE_AES_INSTRUCTIONS)
|
if (OQS_PORTABLE_X86_64_BUILD OR OQS_USE_AES_INSTRUCTIONS)
|
||||||
set(AES_IMPL ${AES_IMPL} aes/aes128_ni.c)
|
set(AES_IMPL ${AES_IMPL} aes/aes128_ni.c)
|
||||||
set(AES_IMPL ${AES_IMPL} aes/aes256_ni.c)
|
set(AES_IMPL ${AES_IMPL} aes/aes256_ni.c)
|
||||||
set_source_files_properties(aes/aes128_ni.c PROPERTIES COMPILE_FLAGS -maes)
|
set_source_files_properties(aes/aes128_ni.c PROPERTIES COMPILE_FLAGS -maes)
|
||||||
|
@ -100,15 +100,6 @@ typedef enum {
|
|||||||
|
|
||||||
#if defined(OQS_USE_CPU_EXTENSIONS)
|
#if defined(OQS_USE_CPU_EXTENSIONS)
|
||||||
|
|
||||||
/**
|
|
||||||
* Architecture macros.
|
|
||||||
*/
|
|
||||||
#if (defined(_M_X64) || defined(__x86_64__))
|
|
||||||
#define ARCH_X86_64
|
|
||||||
#elif (defined(__arm__) || defined(_M_ARM) || defined(__aarch64__))
|
|
||||||
#define ARCH_ARM_ANY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CPU runtime detection flags
|
* CPU runtime detection flags
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
set(_FRODOKEM_OBJS "")
|
||||||
|
|
||||||
if(OQS_ENABLE_KEM_frodokem_640_aes)
|
if(OQS_ENABLE_KEM_frodokem_640_aes)
|
||||||
set(SRCS kem_frodokem640aes.c external/frodo640aes.c)
|
set(SRCS kem_frodokem640aes.c external/frodo640aes.c)
|
||||||
endif()
|
endif()
|
||||||
@ -22,19 +24,20 @@ if(OQS_ENABLE_KEM_frodokem_1344_shake)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(frodokem OBJECT ${SRCS})
|
add_library(frodokem OBJECT ${SRCS})
|
||||||
|
set(_FRODOKEM_OBJS ${_FRODOKEM_OBJS} $<TARGET_OBJECTS:frodokem>)
|
||||||
|
|
||||||
if(OQS_USE_AVX2_INSTRUCTIONS)
|
set(SRCS_AVX2 "")
|
||||||
if(OQS_USE_AES_INSTRUCTIONS)
|
if(OQS_PORTABLE_X86_64_BUILD OR OQS_USE_AVX2_INSTRUCTIONS)
|
||||||
if(OQS_ENABLE_KEM_frodokem_640_aes)
|
if(OQS_ENABLE_KEM_frodokem_640_aes)
|
||||||
set(SRCS_AVX2 external/frodo640aes_avx2.c)
|
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo640aes_avx2.c)
|
||||||
endif()
|
|
||||||
if(OQS_ENABLE_KEM_frodokem_976_aes)
|
|
||||||
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo976aes_avx2.c)
|
|
||||||
endif()
|
|
||||||
if(OQS_ENABLE_KEM_frodokem_1344_aes)
|
|
||||||
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo1344aes_avx2.c)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
if(OQS_ENABLE_KEM_frodokem_976_aes)
|
||||||
|
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo976aes_avx2.c)
|
||||||
|
endif()
|
||||||
|
if(OQS_ENABLE_KEM_frodokem_1344_aes)
|
||||||
|
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo1344aes_avx2.c)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(OQS_ENABLE_KEM_frodokem_640_shake)
|
if(OQS_ENABLE_KEM_frodokem_640_shake)
|
||||||
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo640shake_avx2.c)
|
set(SRCS_AVX2 ${SRCS_AVX2} external/frodo640shake_avx2.c)
|
||||||
endif()
|
endif()
|
||||||
@ -46,5 +49,8 @@ if(OQS_USE_AVX2_INSTRUCTIONS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(frodokem_avx2 OBJECT ${SRCS_AVX2})
|
add_library(frodokem_avx2 OBJECT ${SRCS_AVX2})
|
||||||
target_compile_options(frodokem_avx2 PRIVATE -maes -mavx2)
|
target_compile_options(frodokem_avx2 PRIVATE -mavx2)
|
||||||
|
set(_FRODOKEM_OBJS ${_FRODOKEM_OBJS} $<TARGET_OBJECTS:frodokem_avx2>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(FRODOKEM_OBJS ${_FRODOKEM_OBJS} PARENT_SCOPE)
|
||||||
|
@ -16,76 +16,61 @@
|
|||||||
|
|
||||||
#define frodo_mul_add_as_plus_e_actual frodo_mul_add_as_plus_e_portable
|
#define frodo_mul_add_as_plus_e_actual frodo_mul_add_as_plus_e_portable
|
||||||
#include "frodo_macrify_as_plus_e.c"
|
#include "frodo_macrify_as_plus_e.c"
|
||||||
#if defined(OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
int frodo_mul_add_as_plus_e_avx2(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
int frodo_mul_add_as_plus_e_avx2(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
||||||
#endif
|
int frodo_mul_add_sa_plus_e_aes_avx2(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
||||||
|
int frodo_mul_add_sa_plus_e_aes_portable(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
||||||
|
int frodo_mul_add_sa_plus_e_shake_avx2(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
||||||
|
int frodo_mul_add_sa_plus_e_shake_portable(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
||||||
|
|
||||||
int frodo_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A)
|
int frodo_mul_add_as_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A)
|
||||||
{ // Generate-and-multiply: generate matrix A (N x N) row-wise, multiply by s on the right.
|
{ // Generate-and-multiply: generate matrix A (N x N) row-wise, multiply by s on the right.
|
||||||
// Inputs: s, e (N x N_BAR)
|
// Inputs: s, e (N x N_BAR)
|
||||||
// Output: out = A*s + e (N x N_BAR)
|
// Output: out = A*s + e (N x N_BAR)
|
||||||
#if defined(OQS_USE_AVX2_INSTRUCTIONS)
|
#if defined(OQS_PORTABLE_X86_64_BUILD)
|
||||||
#if defined(OQS_PORTABLE_BUILD)
|
|
||||||
OQS_CPU_EXTENSIONS available_cpu_extensions = OQS_get_available_CPU_extensions();
|
OQS_CPU_EXTENSIONS available_cpu_extensions = OQS_get_available_CPU_extensions();
|
||||||
if (available_cpu_extensions.AVX2_ENABLED) {
|
if (available_cpu_extensions.AVX2_ENABLED) {
|
||||||
return frodo_mul_add_as_plus_e_avx2(out, s, e, seed_A);
|
return frodo_mul_add_as_plus_e_avx2(out, s, e, seed_A);
|
||||||
} else {
|
} else {
|
||||||
return frodo_mul_add_as_plus_e_portable(out, s, e, seed_A);
|
return frodo_mul_add_as_plus_e_portable(out, s, e, seed_A);
|
||||||
}
|
}
|
||||||
#else // OQS_USE_AVX2_INSTRUCTIONS && !(OQS_PORTABLE_BUILD)
|
#elif defined(OQS_USE_AVX2_INSTRUCTIONS)
|
||||||
return frodo_mul_add_as_plus_e_avx2(out, s, e, seed_A);
|
return frodo_mul_add_as_plus_e_avx2(out, s, e, seed_A);
|
||||||
#endif
|
#else
|
||||||
#else // !(OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
return frodo_mul_add_as_plus_e_portable(out, s, e, seed_A);
|
return frodo_mul_add_as_plus_e_portable(out, s, e, seed_A);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(USE_AES128_FOR_A)
|
|
||||||
int frodo_mul_add_sa_plus_e_aes_portable(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
|
||||||
#if defined(OQS_USE_AES_INSTRUCTIONS) && defined(OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
int frodo_mul_add_sa_plus_e_aes_avx2(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
|
||||||
#endif
|
|
||||||
#elif defined(USE_SHAKE128_FOR_A)
|
|
||||||
int frodo_mul_add_sa_plus_e_shake_portable(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
|
||||||
#if defined(OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
int frodo_mul_add_sa_plus_e_shake_avx2(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int frodo_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A)
|
int frodo_mul_add_sa_plus_e(uint16_t *out, const uint16_t *s, const uint16_t *e, const uint8_t *seed_A)
|
||||||
{ // Generate-and-multiply: generate matrix A (N x N) column-wise, multiply by s' on the left.
|
{ // Generate-and-multiply: generate matrix A (N x N) column-wise, multiply by s' on the left.
|
||||||
// Inputs: s', e' (N_BAR x N)
|
// Inputs: s', e' (N_BAR x N)
|
||||||
// Output: out = s'*A + e' (N_BAR x N)
|
// Output: out = s'*A + e' (N_BAR x N)
|
||||||
#if defined(USE_AES128_FOR_A)
|
#if defined(USE_AES128_FOR_A)
|
||||||
#if defined(OQS_USE_AES_INSTRUCTIONS) && defined(OQS_USE_AVX2_INSTRUCTIONS)
|
#if defined(OQS_PORTABLE_X86_64_BUILD)
|
||||||
#if defined(OQS_PORTABLE_BUILD)
|
|
||||||
OQS_CPU_EXTENSIONS available_cpu_extensions = OQS_get_available_CPU_extensions();
|
OQS_CPU_EXTENSIONS available_cpu_extensions = OQS_get_available_CPU_extensions();
|
||||||
if (available_cpu_extensions.AES_ENABLED && available_cpu_extensions.AVX2_ENABLED) {
|
if (available_cpu_extensions.AVX2_ENABLED) {
|
||||||
return frodo_mul_add_sa_plus_e_aes_avx2(out, s, e, seed_A);
|
return frodo_mul_add_sa_plus_e_aes_avx2(out, s, e, seed_A);
|
||||||
} else {
|
} else {
|
||||||
return frodo_mul_add_sa_plus_e_aes_portable(out, s, e, seed_A);
|
return frodo_mul_add_sa_plus_e_aes_portable(out, s, e, seed_A);
|
||||||
}
|
}
|
||||||
#else // OQS_USE_AES_INSTRUCTIONS && OQS_USE_AVX2_INSTRUCTIONS && !(OQS_PORTABLE_BUILD)
|
#elif defined(OQS_USE_AVX2_INSTRUCTIONS)
|
||||||
return frodo_mul_add_sa_plus_e_aes_avx2(out, s, e, seed_A);
|
return frodo_mul_add_sa_plus_e_aes_avx2(out, s, e, seed_A);
|
||||||
#endif
|
#else
|
||||||
#else // !(OQS_USE_AES_INSTRUCTIONS && OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
return frodo_mul_add_sa_plus_e_aes_portable(out, s, e, seed_A);
|
return frodo_mul_add_sa_plus_e_aes_portable(out, s, e, seed_A);
|
||||||
#endif
|
|
||||||
#else // USE_SHAKE128_FOR_A
|
|
||||||
#if defined(OQS_USE_AVX2_INSTRUCTIONS)
|
|
||||||
#if defined(OQS_PORTABLE_BUILD)
|
|
||||||
OQS_CPU_EXTENSIONS available_cpu_extensions = OQS_get_available_CPU_extensions();
|
|
||||||
if (available_cpu_extensions.AVX2_ENABLED) {
|
|
||||||
return frodo_mul_add_sa_plus_e_shake_avx2(out, s, e, seed_A);
|
|
||||||
} else {
|
|
||||||
return frodo_mul_add_sa_plus_e_shake_portable(out, s, e, seed_A);
|
|
||||||
}
|
|
||||||
#else // OQS_USE_AVX2_INSTRUCTIONS && !(OQS_PORTABLE_BUILD)
|
|
||||||
return frodo_mul_add_sa_plus_e_shake_avx2(out, s, e, seed_A);
|
|
||||||
#endif
|
#endif
|
||||||
#else // !(OQS_USE_AVX2_INSTRUCTIONS)
|
#elif defined(USE_SHAKE128_FOR_A)
|
||||||
return frodo_mul_add_sa_plus_e_shake_portable(out, s, e, seed_A);
|
#if defined(OQS_PORTABLE_X86_64_BUILD)
|
||||||
#endif
|
OQS_CPU_EXTENSIONS available_cpu_extensions = OQS_get_available_CPU_extensions();
|
||||||
|
if (available_cpu_extensions.AVX2_ENABLED) {
|
||||||
|
return frodo_mul_add_sa_plus_e_shake_avx2(out, s, e, seed_A);
|
||||||
|
} else {
|
||||||
|
return frodo_mul_add_sa_plus_e_shake_portable(out, s, e, seed_A);
|
||||||
|
}
|
||||||
|
#elif defined(OQS_USE_AVX2_INSTRUCTIONS)
|
||||||
|
return frodo_mul_add_sa_plus_e_shake_avx2(out, s, e, seed_A);
|
||||||
|
#else
|
||||||
|
return frodo_mul_add_sa_plus_e_shake_portable(out, s, e, seed_A);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
#cmakedefine OQS_VERSION_TEXT "@OQS_VERSION_TEXT@"
|
#cmakedefine OQS_VERSION_TEXT "@OQS_VERSION_TEXT@"
|
||||||
#cmakedefine OQS_COMPILE_BUILD_TARGET "@OQS_COMPILE_BUILD_TARGET@"
|
#cmakedefine OQS_COMPILE_BUILD_TARGET "@OQS_COMPILE_BUILD_TARGET@"
|
||||||
#cmakedefine OQS_PORTABLE_BUILD 1
|
#cmakedefine OQS_PORTABLE_BUILD 1
|
||||||
|
#cmakedefine OQS_PORTABLE_X86_64_BUILD 1
|
||||||
#cmakedefine OQS_DEBUG_BUILD 1
|
#cmakedefine OQS_DEBUG_BUILD 1
|
||||||
|
#cmakedefine ARCH_X86_64 1
|
||||||
|
#cmakedefine ARCH_ARM_ANY 1
|
||||||
|
|
||||||
#cmakedefine OQS_KEM_DEFAULT @OQS_KEM_DEFAULT@
|
#cmakedefine OQS_KEM_DEFAULT @OQS_KEM_DEFAULT@
|
||||||
#cmakedefine OQS_SIG_DEFAULT @OQS_SIG_DEFAULT@
|
#cmakedefine OQS_SIG_DEFAULT @OQS_SIG_DEFAULT@
|
||||||
|
Loading…
x
Reference in New Issue
Block a user