From 6459947b9a21796aa2980fce0e16f25a9bb37294 Mon Sep 17 00:00:00 2001 From: Sam James Date: Thu, 29 Apr 2021 04:02:48 +0100 Subject: dev-cpp/abseil-cpp: backport fix for arm64 CPUs without crypto extensions * Backport fix for arm64 CPUs without crypto extensions (needed for a keywording bug). * Add information in patch / background on the problem (including mentioning the need for an ebuild change, in case e.g. another distro tries to pick it up, and to remind us to try upstream it.) * Add explicit flag-o-matic inherits accordingly. See: 619cfe3daec298493d31030008efc12e5ebbf7ec Bug: https://bugs.gentoo.org/778926 Bug: https://bugs.gentoo.org/766411 Signed-off-by: Sam James --- dev-cpp/abseil-cpp/abseil-cpp-20200225.2-r1.ebuild | 13 ++++++++++++- dev-cpp/abseil-cpp/abseil-cpp-20200923.2-r1.ebuild | 3 ++- dev-cpp/abseil-cpp/abseil-cpp-20210324.1.ebuild | 3 ++- .../files/abseil-cpp-20200923-arm_no_crypto.patch | 7 +++++++ 4 files changed, 23 insertions(+), 3 deletions(-) (limited to 'dev-cpp/abseil-cpp') diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20200225.2-r1.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20200225.2-r1.ebuild index 344942f1ecaa..a4ec361d4c04 100644 --- a/dev-cpp/abseil-cpp/abseil-cpp-20200225.2-r1.ebuild +++ b/dev-cpp/abseil-cpp/abseil-cpp-20200225.2-r1.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit cmake python-any-r1 +inherit cmake flag-o-matic python-any-r1 DESCRIPTION="Abseil Common Libraries (C++), LTS Branch" HOMEPAGE="https://abseil.io" @@ -23,6 +23,10 @@ BDEPEND="${PYTHON_DEPS}" # requires source of gtest and other libs RESTRICT=test +PATCHES=( + "${FILESDIR}/${PN}-20200923-arm_no_crypto.patch" +) + src_prepare() { cmake_src_prepare @@ -40,6 +44,13 @@ src_prepare() { } src_configure() { + if use arm || use arm64; then + # bug #778926 + 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 ) diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20200923.2-r1.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20200923.2-r1.ebuild index a5ffd719aa27..d15b9e966d86 100644 --- a/dev-cpp/abseil-cpp/abseil-cpp-20200923.2-r1.ebuild +++ b/dev-cpp/abseil-cpp/abseil-cpp-20200923.2-r1.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit cmake python-any-r1 toolchain-funcs +inherit cmake flag-o-matic python-any-r1 toolchain-funcs # yes, it needs SOURCE, not just installed one GTEST_COMMIT="aee0f9d9b5b87796ee8a0ab26b7587ec30e8858e" @@ -59,6 +59,7 @@ src_prepare() { src_configure() { if use arm || use arm64; then + # bug #778926 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 diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20210324.1.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20210324.1.ebuild index 136d41f23b4d..12ecd89301f5 100644 --- a/dev-cpp/abseil-cpp/abseil-cpp-20210324.1.ebuild +++ b/dev-cpp/abseil-cpp/abseil-cpp-20210324.1.ebuild @@ -5,7 +5,7 @@ EAPI=7 PYTHON_COMPAT=( python3_{7,8,9} ) -inherit cmake python-any-r1 toolchain-funcs +inherit cmake flag-o-matic python-any-r1 toolchain-funcs # yes, it needs SOURCE, not just installed one GTEST_COMMIT="aee0f9d9b5b87796ee8a0ab26b7587ec30e8858e" @@ -61,6 +61,7 @@ src_prepare() { src_configure() { if use arm || use arm64; then + # bug #778926 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 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 index b74a6c70e904..762476a10184 100644 --- 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 @@ -1,3 +1,10 @@ +Don't assume all ARM CPUs have crypto extensions. + +Requires an accompanying change in the ebuild to disable crypto +extensions (by passing -DABSL_ARCH_ARM_NO_CRYPTO). This could +be done by the build system instead in future. + +https://bugs.gentoo.org/778926 --- /absl/random/internal/randen_hwaes.cc +++ /absl/random/internal/randen_hwaes.cc @@ -50,8 +50,11 @@ -- cgit v1.2.3