Add OQS_PERMIT_UNSUPPORTED_ARCHITECTURE flag (#1021)

* Add OQS_PERMIT_UNSUPPORTED_ARCHITECTURE flag

* Add warning for unsupported architecture

Co-authored-by: Douglas Stebila <dstebila@uwaterloo.ca>
This commit is contained in:
John Schanck 2021-06-24 20:57:34 -04:00 committed by GitHub
parent 7a5097dbd4
commit d9fb4e0e81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View File

@ -17,6 +17,7 @@ project(liboqs C ASM)
option(OQS_DIST_BUILD "Build distributable library with optimized code for several CPU microarchitectures. Enables run-time CPU feature detection." OFF)
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)
option(OQS_PERMIT_UNSUPPORTED_ARCHITECTURE "Permit compilation on an an unsupported architecture." OFF)
set(OQS_OPT_TARGET auto CACHE STRING "The target microarchitecture for optimization.")
@ -46,8 +47,11 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armel|armhf|armv7|arm32v7")
if(${OQS_DIST_BUILD})
set(OQS_DIST_ARM32v7_BUILD ON)
endif()
elseif(OQS_PERMIT_UNSUPPORTED_ARCHITECTURE)
message(WARNING "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR})
message(WARNING "Compilation on an unsupported processor should only be used for testing, as it may result an insecure configuration, for example due to variable-time instructions leaking secret information.")
else()
message(FATAL_ERROR "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR})
message(FATAL_ERROR "Unknown or unsupported processor: " ${CMAKE_SYSTEM_PROCESSOR} ". Override by setting OQS_PERMIT_UNSUPPORTED_ARCHITECTURE=ON")
endif()
# intentionally don't switch to variables to avoid --warn-uninitialized report

View File

@ -103,6 +103,9 @@ static void set_available_cpu_extensions(void) {
cpu_ext_data[OQS_CPU_EXT_ARM_NEON] = 1;
}
}
#elif defined(OQS_DIST_BUILD)
static void set_available_cpu_extensions(void) {
}
#endif
OQS_API int OQS_CPU_has_extension(OQS_CPU_EXT ext) {