From 8afc681704950df8f6cae99408b53d9fc536f7e7 Mon Sep 17 00:00:00 2001 From: Jack Lloyd Date: Wed, 22 Jan 2020 08:36:45 -0500 Subject: Remove support for splitting the amalgamation by ABI This is as if --single-file-amalgamation was always used, except also now botan_all_internal.h is not created. This effectively drops support for very old GCC/Clang in the amalgamation (only). GCC 5+ and Clang 3.8+ support the target attribute and work fine. MSVC not affected since it doesn't need such attributes in the first place. --- src/build-data/cc/clang.txt | 15 --------------- src/build-data/cc/gcc.txt | 17 ----------------- src/configs/pylint.rc | 2 +- src/lib/block/sm4/sm4_armv8/sm4_armv8.cpp | 8 ++++---- src/lib/tls/tls_blocking.cpp | 8 +++----- src/lib/utils/compiler.h | 6 +++--- src/scripts/ci_build.py | 3 --- 7 files changed, 11 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/build-data/cc/clang.txt b/src/build-data/cc/clang.txt index 7521f0918..b183f60ef 100644 --- a/src/build-data/cc/clang.txt +++ b/src/build-data/cc/clang.txt @@ -67,21 +67,6 @@ arm32:neon -> "-mfpu=neon" arm64:neon -> "" - -sse41 -> sse4.1 -sse42 -> sse4.2 - -rdrand -> rdrnd - -armv8crypto -> "+crypto" -armv8sm4 -> "+sm4" - -powercrypto -> "crypto" - -arm32:neon -> "fpu=neon" -arm64:neon -> "+simd" - - llvm -> "-emit-llvm -fno-use-cxa-atexit" diff --git a/src/build-data/cc/gcc.txt b/src/build-data/cc/gcc.txt index 401e68ddc..a653fe47e 100644 --- a/src/build-data/cc/gcc.txt +++ b/src/build-data/cc/gcc.txt @@ -78,23 +78,6 @@ arm32:neon -> "-mfpu=neon" arm64:neon -> "" -# Values used in BOTAN_FUNC_ISA eg __attribute__((target("X"))) -# values not set are assumed identical to basename; sse2 -> sse2 - -sse41 -> sse4.1 -sse42 -> sse4.2 - -rdrand -> rdrnd - -armv8crypto -> "+crypto" -armv8sm4 -> "+sm4" - -powercrypto -> "crypto" - -arm32:neon -> "fpu=neon" -arm64:neon -> "+simd" - - # Flags set here are included at compile and link time all!haiku,qnx -> "-pthread" diff --git a/src/configs/pylint.rc b/src/configs/pylint.rc index ae9d2e24c..14020880b 100644 --- a/src/configs/pylint.rc +++ b/src/configs/pylint.rc @@ -60,7 +60,7 @@ confidence= # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=missing-docstring,no-else-return,logging-not-lazy,locally-disabled +disable=missing-docstring,no-else-return,logging-not-lazy,locally-disabled,import-outside-toplevel [REPORTS] diff --git a/src/lib/block/sm4/sm4_armv8/sm4_armv8.cpp b/src/lib/block/sm4/sm4_armv8/sm4_armv8.cpp index b91004aea..a0326f211 100644 --- a/src/lib/block/sm4/sm4_armv8/sm4_armv8.cpp +++ b/src/lib/block/sm4/sm4_armv8/sm4_armv8.cpp @@ -41,8 +41,8 @@ inline uint32x4_t bqswap_32(uint32x4_t B) } -BOTAN_FUNC_ISA("+sm4") -void SM4::sm4_armv8_encrypt(const uint8_t input8[], uint8_t output8[], size_t blocks) const +void BOTAN_FUNC_ISA("arch=armv8.2-a+sm4") +SM4::sm4_armv8_encrypt(const uint8_t input8[], uint8_t output8[], size_t blocks) const { const uint32x4_t K0 = vld1q_u32(&m_RK[ 0]); const uint32x4_t K1 = vld1q_u32(&m_RK[ 4]); @@ -102,8 +102,8 @@ void SM4::sm4_armv8_encrypt(const uint8_t input8[], uint8_t output8[], size_t bl } } -BOTAN_FUNC_ISA("+sm4") -void SM4::sm4_armv8_decrypt(const uint8_t input8[], uint8_t output8[], size_t blocks) const +void BOTAN_FUNC_ISA("arch=armv8.2-a+sm4") +SM4::sm4_armv8_decrypt(const uint8_t input8[], uint8_t output8[], size_t blocks) const { const uint32x4_t K0 = qswap_32(vld1q_u32(&m_RK[ 0])); const uint32x4_t K1 = qswap_32(vld1q_u32(&m_RK[ 4])); diff --git a/src/lib/tls/tls_blocking.cpp b/src/lib/tls/tls_blocking.cpp index d89c11a2c..b9c699dc0 100644 --- a/src/lib/tls/tls_blocking.cpp +++ b/src/lib/tls/tls_blocking.cpp @@ -12,8 +12,6 @@ namespace Botan { namespace TLS { -using namespace std::placeholders; - Blocking_Client::Blocking_Client(read_fn reader, write_fn writer, Session_Manager& session_manager, @@ -31,9 +29,9 @@ Blocking_Client::Blocking_Client(read_fn reader, */ TLS::Compat_Callbacks::SILENCE_DEPRECATION_WARNING::PLEASE, writer, - std::bind(&Blocking_Client::data_cb, this, _1, _2), - std::function(std::bind(&Blocking_Client::alert_cb, this, _1)), - std::bind(&Blocking_Client::handshake_cb, this, _1) + std::bind(&Blocking_Client::data_cb, this, std::placeholders::_1, std::placeholders::_2), + std::function(std::bind(&Blocking_Client::alert_cb, this, std::placeholders::_1)), + std::bind(&Blocking_Client::handshake_cb, this, std::placeholders::_1) )), m_channel(*m_callbacks.get(), session_manager, diff --git a/src/lib/utils/compiler.h b/src/lib/utils/compiler.h index 3f1dc4f8b..e30ecda71 100644 --- a/src/lib/utils/compiler.h +++ b/src/lib/utils/compiler.h @@ -103,7 +103,7 @@ #define BOTAN_DEPRECATED(msg) __attribute__ ((deprecated(msg))) #define BOTAN_DEPRECATED_HEADER(hdr) _Pragma("message \"this header is deprecated\"") - #if !defined(BOTAN_IS_BEING_BUILT) + #if !defined(BOTAN_IS_BEING_BUILT) && !defined(BOTAN_AMALGAMATION_H_) #define BOTAN_FUTURE_INTERNAL_HEADER(hdr) _Pragma("message \"this header will be made internal in the future\"") #endif @@ -111,7 +111,7 @@ #define BOTAN_DEPRECATED(msg) __declspec(deprecated(msg)) #define BOTAN_DEPRECATED_HEADER(hdr) __pragma(message("this header is deprecated")) - #if !defined(BOTAN_IS_BEING_BUILT) + #if !defined(BOTAN_IS_BEING_BUILT) && !defined(BOTAN_AMALGAMATION_H_) #define BOTAN_FUTURE_INTERNAL_HEADER(hdr) __pragma(message("this header will be made internal in the future")) #endif @@ -120,7 +120,7 @@ #define BOTAN_DEPRECATED(msg) __attribute__ ((deprecated(msg))) #define BOTAN_DEPRECATED_HEADER(hdr) _Pragma("GCC warning \"this header is deprecated\"") - #if !defined(BOTAN_IS_BEING_BUILT) + #if !defined(BOTAN_IS_BEING_BUILT) && !defined(BOTAN_AMALGAMATION_H_) #define BOTAN_FUTURE_INTERNAL_HEADER(hdr) _Pragma("GCC warning \"this header will be made internal in the future\"") #endif #endif diff --git a/src/scripts/ci_build.py b/src/scripts/ci_build.py index d10fc173b..99dc343db 100755 --- a/src/scripts/ci_build.py +++ b/src/scripts/ci_build.py @@ -86,9 +86,6 @@ def determine_flags(target, target_os, target_cpu, target_cc, cc_bin, # Arbitrarily test amalgamation with the static lib builds flags += ['--amalgamation'] - if target_cc == 'msvc': - flags += ['--single-amalgamation-file'] - if target in ['bsi', 'nist']: # Arbitrarily test disable static on module policy builds # tls is optional for bsi/nist but add it so verify tests work with these minimized configs -- cgit v1.2.3