* Ensure build without an executable stack (fixes#1285)
Until it is clear why the shared library on mips64el and hppa is built
with the executable bit set for the stack, build with both
`-Wa,--noexecstack` (for the assembler) and `-Wl,-z,--noexecstack` (for
the linker).
* Check if compiler/linker support flags for noexecstack before using them
* Add a warning if unable to check for support
* Mark stack non-executable when compiling with clang or gcc
Fixes#1159
* Change noexecstack option on gcc
* Use gcc noexecstack only on non-Darwin
* Check for non-executable stack in shared object builds on Linux
* CMake: ARM toolchain files
* CI: Cross compile for ARM instead of emulating the entire build
* CMake: do not use mcpu=native when cross compiling
* CI: Disable testapproval [skip ci]
* CI: Disable armel tests
* CI: Disable test_mem on ARM
* Replace OQS_PORTABLE_BUILD with OQS_DIST_BUILD
Also introduces OQS_OPT_TARGET and removes OQS_USE_CPU_EXTENSIONS
* Only compile sha3 avx2 code on Linux|Darwin
* Use new ARCH_ARM[X] flags in SIKE CMakeLists
* Update test_portability and rename to test_distbuild
* Update documentation for building Windows AMD64 from Ubuntu Bionic
* Update scripts/build-android.sh
* More specific CMAKE_SYSTEM_PROCESSOR for rasppi toolchain
* CI: Use OQS_DIST_BUILD in some jobs
* Replace OQS_get_available_CPU_extensions by OQS_CPU_has_extension
* ARM64v8/ARM32v7 runtime cpu feature detection
* Compile-time detection of some ARM features
* Toolchain files to cross compile for ARM32v7 and ARM64v8
* Remove unnecessary references to CMAKE_BUILD_TYPE=Release
* Use OQS_DIST_BUILD=ON on Windows
* 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
* Fix minimal build support for McEliece avx
* mceliece avx consts.S: use .hidden to avoid putting consts in GOT
* mceliece avx int32_sort.c: avoid gcc extension __m256i_u
* cmake: Use target_compile_option when setting -Wno-language-extension-token for mceliece avx
* Constant time checks using Valgrind and suppression files
* Suppression file for Kyber (ref+avx), HQC, SIKE, NTRUPrime, McEliece, SIDH, Falcon (ref+avx), SPHINCS, Dilithium r2+r3, picnic
* mark all BIKE implementations as vartime
* Set OQS_DEBUG_BUILD in oqsconfig.h if CMAKE_BUILD_TYPE=Debug
* Add OQS_ENABLE_TEST_CONSTANT_TIME to oqsconfig.h
* Check build options before running
* test_{kem,sig}: avoid direct call to OQS_randombytes_system
* Remove picnic3 issue based on review #889
* fix Kyber namespacing
* Missing BIKE error type, skip BIKE
* Resolve SIDH/SIKE bingcd issue as per #888
* Mark Falcon hash_to_point_vartime issue as resolved
* Disable CI tests
* Add OQS_MINIMAL_BUILD option that builds only the default KEM/SIG
* CI: add buildcheck job, which uses minimal build
* Add buildcheck and testapproval to CI workflow
* CI: Only run address-sanitizer on audit branches
* CI: Disable centos-8 and debian-buster
* Start re-adding AES-NI with CPU feature detection
* Follow Goutam's feedback on CPU feature detection
* Macrify CPU feature detection logic in AES
* AES128 and AES256 using NI based on Romain Dolbeau's public domain code
* Fewer calls to C_OR_NI
* Restricting setting of OQS_USE_CPU_EXTENSIONS.
* Unroll AES loops
Co-authored-by: xvzcf <xvzcf@users.noreply.github.com>
* Increase stack size when using musl libc on Alpine
This is probably not the best way to do it in long run, but I'm not sure
how to detect libc version at compile time.
* Fix free-check bug on Alpine
* Extra symbols in shared library on Alpine
* Activate Alpine builds
* Only increase stack size if musl is present on Alpine
This is not the most generic way to do it but hopefully will suffice
* Temporarily enable Alpine builds
* Simplify link option on Alpine
* Add SPDX-License-Identifier in src/common
* Add SPDX-License-Identifier in FrodoKEM
* Add SPDX-License-Identifier in SIKE
* Add SPDX-License-Identifier in BIKE
* Add SPDX-License-Identifier in OQS headers
* Add SPDX-License-Identifier in files generated during copy-from-pqclean
* Add SPDX-License-Identifier in Picnic
* Add SPDX-License-Identifier in qTesla
* Add SPDX-License-Identifier in CMake files
* Update license info in README
* Add SPDX-License-Identifier in scripts
* Add SPDX-License-Info to CMakeLists
* Add SPDX-License-Info in tests
* Add SPDX-License-Info to various files
* Prettyprint
* Add test for SPDX-License-Identifier headers
* Updated license identifiers for CPU extension detection code.
* Use conjunction for SPDX in file with two licenses
Co-authored-by: xvzcf <xvzcf@users.noreply.github.com>
* Removed non-standard CMake build types and introduced new variables to customize the build.
* Added handling for new build variables to all KEMS and signatures and updated CI.
* Added clang-9 test to CI.