public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/user/gerislay:master commit in: sys-libs/libcxxabi/
@ 2024-06-30 21:07 gerion
  0 siblings, 0 replies; only message in thread
From: gerion @ 2024-06-30 21:07 UTC (permalink / raw
  To: gentoo-commits

commit:     a86c65a2a1fbabb439acad11e21efa5bc794dcba
Author:     Gerion Entrup <gerion.entrup <AT> flump <DOT> de>
AuthorDate: Tue Jun 25 08:30:42 2024 +0000
Commit:     gerion <gerion.entrup <AT> flump <DOT> de>
CommitDate: Sun Jun 30 21:07:04 2024 +0000
URL:        https://gitweb.gentoo.org/repo/user/gerislay.git/commit/?id=a86c65a2

Revert "sys-libs/libcxxabi: Remove LLVM 14"

This reverts commit 1efacd7df89d73500a46dedc8a938c604c28452a.

Signed-off-by: Gerion Entrup <gerion.entrup <AT> flump.de>

 sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild | 125 +++++++++++++++++++++++++++++
 sys-libs/libcxxabi/metadata.xml            |   1 +
 2 files changed, 126 insertions(+)

diff --git a/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild b/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild
new file mode 100644
index 0000000..32b26c8
--- /dev/null
+++ b/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild
@@ -0,0 +1,125 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..10} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="Low level support for a standard C++ library"
+HOMEPAGE="https://libcxxabi.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
+IUSE="+libunwind +static-libs test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libunwind? (
+		|| (
+			>=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}]
+			>=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}]
+		)
+	)
+"
+# llvm-6 for new lit options
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/cmake cmake )
+LLVM_TEST_COMPONENTS=( llvm/utils/llvm-lit )
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	# darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix
+	# to set the appropriate path vars to LLVM instead of using llvm_pkg_setup.
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
+		llvm_pkg_setup
+	fi
+	python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+	# link against compiler-rt instead of libgcc if we are using clang with libunwind
+	local want_compiler_rt=OFF
+	if use libunwind && [[ $(tc-get-c-rtlib) == compiler-rt ]]; then
+		want_compiler_rt=ON
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DPython3_EXECUTABLE="${PYTHON}"
+		-DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
+		-DLLVM_INCLUDE_TESTS=OFF
+		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+		-DLIBCXXABI_ENABLE_SHARED=ON
+		-DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
+		-DLIBCXXABI_INCLUDE_TESTS=$(usex test)
+		-DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind)
+		-DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt}
+
+		# upstream is omitting standard search path for this
+		# probably because gcc & clang are bundling their own unwind.h
+		-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
+		-DLIBCXXABI_TARGET_TRIPLE="${CHOST}"
+
+		-DLIBCXX_LIBDIR_SUFFIX=
+		-DLIBCXX_ENABLE_SHARED=ON
+		-DLIBCXX_ENABLE_STATIC=OFF
+		-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+		-DLIBCXX_CXX_ABI=libcxxabi
+		-DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include
+		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+		-DLIBCXX_HAS_GCC_S_LIB=OFF
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=OFF
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+	)
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_compile() {
+	cmake_build cxxabi
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxxabi
+}
+
+multilib_src_install() {
+	DESTDIR="${D}" cmake_build install-cxxabi
+}
+
+multilib_src_install_all() {
+	insinto /usr/include/libcxxabi
+	doins -r "${WORKDIR}"/libcxxabi/include/.
+}

diff --git a/sys-libs/libcxxabi/metadata.xml b/sys-libs/libcxxabi/metadata.xml
index 9dfed36..6aba5e0 100644
--- a/sys-libs/libcxxabi/metadata.xml
+++ b/sys-libs/libcxxabi/metadata.xml
@@ -7,6 +7,7 @@
 	<use>
 		<flag name="clang">Force building using installed clang (rather
 			than the default CC/CXX; required for testing).</flag>
+		<flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependency on gcc</flag>
 	</use>
 	<upstream>
 		<remote-id type="github">llvm/llvm-project</remote-id>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-06-30 21:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-30 21:07 [gentoo-commits] repo/user/gerislay:master commit in: sys-libs/libcxxabi/ gerion

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox