diff --git a/.CMake/compiler_opts.cmake b/.CMake/compiler_opts.cmake index 2d998d308..e160bdcfe 100644 --- a/.CMake/compiler_opts.cmake +++ b/.CMake/compiler_opts.cmake @@ -144,6 +144,9 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang") endif() elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU") + if (NOT ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL ${OQS_MINIMAL_GCC_VERSION}) + message(FATAL_ERROR "GCC version ${CMAKE_C_COMPILER_VERSION} below minimally required version ${OQS_MINIMAL_GCC_VERSION}.") + endif() if(${OQS_STRICT_WARNINGS}) add_compile_options(-Wall) add_compile_options(-Wextra) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8166ceb49..ef9c9beea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_C_VISIBILITY_PRESET hidden) set(OQS_VERSION_TEXT "0.8.0-dev") set(OQS_COMPILE_BUILD_TARGET "${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_HOST_SYSTEM}") +set(OQS_MINIMAL_GCC_VERSION "7.1.0") set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # heuristic check to see whether we're running on a RaspberryPi diff --git a/README.md b/README.md index f718d0789..ac255df51 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,12 @@ We realize some parties may want to deploy quantum-safe cryptography prior to th **WE DO NOT CURRENTLY RECOMMEND RELYING ON THIS LIBRARY IN A PRODUCTION ENVIRONMENT OR TO PROTECT ANY SENSITIVE DATA.** This library is meant to help with research and prototyping. While we make a best-effort approach to avoid security bugs, this library has not received the level of auditing and analysis that would be necessary to rely on it for high security use. +#### Platform limitations + +In order to optimize support effort, +- not all algorithms are equally well supported on all platforms. In case of questions, it is first advised to review the [documentation files for each algorithm](docs/algorithms). +- not all compilers are equally well supported. For example, at least v7.1.0 of the GNU compiler is required. + ## Quickstart ### Linux/macOS