diff options
author | Jason Zaman <perfinion@gentoo.org> | 2022-06-25 09:24:12 -0700 |
---|---|---|
committer | Jason Zaman <perfinion@gentoo.org> | 2022-06-25 19:37:26 -0700 |
commit | 5b9ba90d62157a5ef8fe991a87c51c39666f029e (patch) | |
tree | 35b6f84d38bfea3211f625c89e1d7400fa427c5d /dev-cpp/abseil-cpp | |
parent | dev-libs/cudnn: add 8.4.1.50 (diff) | |
download | gentoo-5b9ba90d62157a5ef8fe991a87c51c39666f029e.tar.gz gentoo-5b9ba90d62157a5ef8fe991a87c51c39666f029e.tar.bz2 gentoo-5b9ba90d62157a5ef8fe991a87c51c39666f029e.zip |
dev-cpp/abseil-cpp: Fix build with nvidia cuda11.6
also update EAPI 7 -> 8
Signed-off-by: Jason Zaman <perfinion@gentoo.org>
Diffstat (limited to 'dev-cpp/abseil-cpp')
-rw-r--r-- | dev-cpp/abseil-cpp/abseil-cpp-20211102.0-r2.ebuild | 73 | ||||
-rw-r--r-- | dev-cpp/abseil-cpp/files/abseil-cpp-20211102.0-r2-cuda11.6-compile-fix.patch | 24 |
2 files changed, 97 insertions, 0 deletions
diff --git a/dev-cpp/abseil-cpp/abseil-cpp-20211102.0-r2.ebuild b/dev-cpp/abseil-cpp/abseil-cpp-20211102.0-r2.ebuild new file mode 100644 index 000000000000..a987d852dee3 --- /dev/null +++ b/dev-cpp/abseil-cpp/abseil-cpp-20211102.0-r2.ebuild @@ -0,0 +1,73 @@ +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) + +inherit cmake python-any-r1 + +# yes, it needs SOURCE, not just installed one +# and no, 1.11.0 is not enough +GTEST_COMMIT="1b18723e874b256c1e39378c6774a90701d70f7a" +GTEST_FILE="gtest-${GTEST_COMMIT}.tar.gz" + +DESCRIPTION="Abseil Common Libraries (C++), LTS Branch" +HOMEPAGE="https://abseil.io" +SRC_URI="https://github.com/abseil/abseil-cpp/archive/${PV}.tar.gz -> ${P}.tar.gz + test? ( https://github.com/google/googletest/archive/${GTEST_COMMIT}.tar.gz -> ${GTEST_FILE} )" + +LICENSE=" + Apache-2.0 + test? ( BSD ) +" +SLOT="0/${PV%%.*}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="test" + +DEPEND="" +RDEPEND="${DEPEND}" + +BDEPEND=" + ${PYTHON_DEPS} + test? ( sys-libs/timezone-data ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${PN}-20211102.0-fix-cuda-nvcc-build.patch" + "${FILESDIR}/${PN}-20211102.0-r2-cuda11.6-compile-fix.patch" +) + +src_prepare() { + cmake_src_prepare + + # un-hardcode abseil compiler flags + sed -i \ + -e '/"-maes",/d' \ + -e '/"-msse4.1",/d' \ + -e '/"-mfpu=neon"/d' \ + -e '/"-march=armv8-a+crypto"/d' \ + absl/copts/copts.py || die + + # now generate cmake files + python_fix_shebang absl/copts/generate_copts.py + absl/copts/generate_copts.py || die + + if use test; then + sed -i 's/-Werror//g' \ + "${WORKDIR}/googletest-${GTEST_COMMIT}"/googletest/cmake/internal_utils.cmake || die + fi +} + +src_configure() { + local mycmakeargs=( + -DABSL_ENABLE_INSTALL=TRUE + -DABSL_LOCAL_GOOGLETEST_DIR="${WORKDIR}/googletest-${GTEST_COMMIT}" + -DCMAKE_CXX_STANDARD=17 + -DABSL_PROPAGATE_CXX_STD=TRUE + $(usex test -DBUILD_TESTING=ON '') #intentional usex + ) + cmake_src_configure +} diff --git a/dev-cpp/abseil-cpp/files/abseil-cpp-20211102.0-r2-cuda11.6-compile-fix.patch b/dev-cpp/abseil-cpp/files/abseil-cpp-20211102.0-r2-cuda11.6-compile-fix.patch new file mode 100644 index 000000000000..59efc0f321e3 --- /dev/null +++ b/dev-cpp/abseil-cpp/files/abseil-cpp-20211102.0-r2-cuda11.6-compile-fix.patch @@ -0,0 +1,24 @@ +diff --git a/absl/strings/internal/string_constant.h b/absl/strings/internal/string_constant.h +index a11336b..e1596b1 100644 +--- a/absl/strings/internal/string_constant.h ++++ b/absl/strings/internal/string_constant.h +@@ -35,12 +35,18 @@ namespace strings_internal { + // below. + template <typename T> + struct StringConstant { ++ private: ++ static constexpr bool ValidateConstant(absl::string_view view) { ++ return view.empty() || 2 * view[0] != 1; ++ } ++ ++public: + static constexpr absl::string_view value = T{}(); + constexpr absl::string_view operator()() const { return value; } + + // Check to be sure `view` points to constant data. + // Otherwise, it can't be constant evaluated. +- static_assert(value.empty() || 2 * value[0] != 1, ++ static_assert(ValidateConstant(value), + "The input string_view must point to constant data."); + }; + |