diff options
Diffstat (limited to 'dev-cpp/abseil-cpp')
-rw-r--r-- | dev-cpp/abseil-cpp/abseil-cpp-20200923.2.ebuild | 14 | ||||
-rw-r--r-- | dev-cpp/abseil-cpp/files/abseil-cpp-20200923-arm_no_crypto.patch | 16 |
2 files changed, 28 insertions, 2 deletions
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20200923.2.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20200923.2.ebuild index 8e62b032d05f..90be485e13ae 100644 --- a/dev-cpp/abseil-cpp/abseil-cpp-20200923.2.ebuild +++ b/dev-cpp/abseil-cpp/abseil-cpp-20200923.2.ebuild @@ -1,11 +1,11 @@ -# Copyright 2020 Gentoo Authors +# Copyright 2020-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit cmake python-any-r1 +inherit cmake python-any-r1 toolchain-funcs # yes, it needs SOURCE, not just installed one GTEST_COMMIT="aee0f9d9b5b87796ee8a0ab26b7587ec30e8858e" @@ -34,6 +34,10 @@ BDEPEND=" RESTRICT="!test? ( test )" +PATCHES=( + "${FILESDIR}/${PN}-20200923-arm_no_crypto.patch" +) + src_prepare() { cmake_src_prepare @@ -53,6 +57,12 @@ src_prepare() { } src_configure() { + if use arm || use arm64; then + if [[ $($(tc-getCXX) ${CXXFLAGS} -E -P - <<<$'#if defined(__ARM_FEATURE_CRYPTO)\nHAVE_ARM_FEATURE_CRYPTO\n#endif') != *HAVE_ARM_FEATURE_CRYPTO* ]]; then + append-cxxflags -DABSL_ARCH_ARM_NO_CRYPTO + fi + fi + local mycmakeargs=( -DABSL_ENABLE_INSTALL=TRUE -DABSL_LOCAL_GOOGLETEST_DIR="${WORKDIR}/googletest-${GTEST_COMMIT}" diff --git a/dev-cpp/abseil-cpp/files/abseil-cpp-20200923-arm_no_crypto.patch b/dev-cpp/abseil-cpp/files/abseil-cpp-20200923-arm_no_crypto.patch new file mode 100644 index 000000000000..b74a6c70e904 --- /dev/null +++ b/dev-cpp/abseil-cpp/files/abseil-cpp-20200923-arm_no_crypto.patch @@ -0,0 +1,16 @@ +--- /absl/random/internal/randen_hwaes.cc ++++ /absl/random/internal/randen_hwaes.cc +@@ -50,8 +50,11 @@ + (defined(__ARM_NEON) && defined(__ARM_FEATURE_CRYPTO)) + #define ABSL_RANDEN_HWAES_IMPL 1 + +-#elif ABSL_RANDOM_INTERNAL_AES_DISPATCH && !defined(__APPLE__) && \ +- (defined(__GNUC__) && __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 9) ++// When ABSL_ARCH_ARM_NO_CRYPTO is defined, then ARM CPU without ++// crypto extension is assumed. ++#elif !defined(ABSL_ARCH_ARM_NO_CRYPTO) && \ ++ (ABSL_RANDOM_INTERNAL_AES_DISPATCH && !defined(__APPLE__) && \ ++ (defined(__GNUC__) && __GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ > 9)) + // ...or, on GCC, we can use an ASM directive to + // instruct the assember to allow crypto instructions. + #define ABSL_RANDEN_HWAES_IMPL 1 |