commit: 936a69e939463600f26da1467afd825ab5a7a390
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 23 20:04:11 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec 23 20:07:11 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=936a69e9
llvm-runtimes/libcxx: Remove old
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
llvm-runtimes/libcxx/Manifest | 8 -
llvm-runtimes/libcxx/libcxx-21.1.5.ebuild | 254 --------------------
llvm-runtimes/libcxx/libcxx-21.1.6.ebuild | 254 --------------------
llvm-runtimes/libcxx/libcxx-21.1.7.ebuild | 254 --------------------
.../libcxx/libcxx-22.0.0_pre20251108.ebuild | 260 ---------------------
.../libcxx/libcxx-22.0.0_pre20251120.ebuild | 260 ---------------------
6 files changed, 1290 deletions(-)
diff --git a/llvm-runtimes/libcxx/Manifest b/llvm-runtimes/libcxx/Manifest
index 67a5fd1d5e84..3efa8a13593d 100644
--- a/llvm-runtimes/libcxx/Manifest
+++ b/llvm-runtimes/libcxx/Manifest
@@ -1,6 +1,5 @@
DIST llvm-gentoo-patchset-15.0.7-r8.tar.xz 27904 BLAKE2B
1fc5df0dc44484ea0225438f3d861ab23739773df58eaf2b531966baeeb5e717b2a3c03f62b1cfb8bb5e316393e8b295d4fbd8be3246381723f905304f005e12
SHA512
7f0ba8ef4291de87cc3220e63ad0ac088a81491d4a46b1053dd51d9725ca6c87d3d7720c2440908b10b1ace406f7ed1c523ca28b199a7a29ed06d0973a0829a2
DIST llvm-gentoo-patchset-16.0.6-r6.tar.xz 21672 BLAKE2B
b52c29a7c19b60ccd076c01014e374e35aa5da061917cdc6a9d321f9386ce4e9286d5a7cccfffc23e0f6737c6eeb32ef4ab030b9d3165f528d1c657b53b6ab17
SHA512
f8a6cdaded545219107505c57b194b3f4df8ee7a2f1f0756b8e8884633e389ad7462445e1522414615210c0a4407a0358c84882366a475441f681a2ba75dc985
-DIST llvm-project-0875755f5275dc7a84b1aeb526b7822b47a733c9.tar.gz 254111698
BLAKE2B
16bd787e9af46837e6e2962d2f9bdd2a1d13b1ab6f4dcb1a428914cc2502b6430f79ee163b0d8ad5b6a9124162f262fa394265f8c52950100b543b7027df310c
SHA512
de107dd50b078d9f7e0f838b3e439e2012d6e4e14fcdd2438de344a11dd6b2542ee1efd029067fddf05b8eb9d97786f214ff199d1b6aabfd2e3459f9840bc497
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B
f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5
SHA512
4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B
47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df
SHA512
fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B
95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d
SHA512
89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -13,14 +12,7 @@ DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B
1259ed7f9aca7b35e89d818bef
DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B
4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd
SHA512
195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B
7657ac0b26acc5affb1bfc91b912ade3191c5d77f3979d5a80d5f6ce52f56a7d1c448bd257398390bf10838f02faa6f3ece37a7327cced69d165ec2e2e699316
SHA512
f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773
DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B
85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4
SHA512
d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
-DIST llvm-project-21.1.5.src.tar.xz 158957032 BLAKE2B
c056049214b18a17a3fd2dc86ae82121a821841002b8386b1fe35fc34f1f0faeb681f39880814e4a47f976b2744bfd2c4f1316156469c6b6a79c013d200dab30
SHA512
865ad44575c9288f06da8c48acbb60779f6c38aaf2ee85eac2002452f83892b704263f2ef51d3596abf06dccc1559f1d9dcdc89120363efd8ce1b1239ae83f6b
-DIST llvm-project-21.1.5.src.tar.xz.sig 119 BLAKE2B
abf014908e981ea358ee38f6d1ef6c745ebbe51011fa7e83a514672bbad152fac92c95dd32a7b52a8d9c2a2a9ea1b44e447bb0bc5953f0f7bbd9ced34aa3c0cc
SHA512
4e327c7d60525526ff3ac6ca58f1e753a57f841b88078a9bfe2a2ce91e4a5e17bcc52fd2f27f75801540610c1a56d57a3070243f13ad583e3526901b1f7be4a5
-DIST llvm-project-21.1.6.src.tar.xz 158947864 BLAKE2B
eeda7b9903ef59319ad22e5e3a8b66a339cbbb7445ccb75fa09db6823371a22e9b66cb44c084fdeb16054f2e62a149f6e069d9726f269f667dbd6a631cb658c3
SHA512
f9e6c84828e40cb0a7894258b07240468a9d555c11496a1725bf959444362277a90ea822eeb8c9b51b3b7fecd4dd0b213a28a2f2effefbf43efdd21084d10afc
-DIST llvm-project-21.1.6.src.tar.xz.sig 119 BLAKE2B
2e3de87f4adb181740cfc8a5f8de3e6f4090f50d2f0dfa2670b27c0a6dde296b399ee017b5f6220aa80581a16c81afb5c96454d69dac8ce246713570470956b8
SHA512
637cc9f778f8303e80985469c3102573a9cf6264093b1a83fb494e34b5cb444f76cbb7d6d497d44b05250d56e25ec27dd9df685e0b78b23bb71e4bcd05a8facf
-DIST llvm-project-21.1.7.src.tar.xz 158956584 BLAKE2B
dc9738fdde764d520f0e6d615295133a96833935b38239ea2ec6dffe72558d01332905fa265a55eb105ab4c4f88f37d5b3427126b1f7c788dc266add581cdf25
SHA512
ae30a53ed929df979849f7433bf705bc3d540aa9e12a02a175eb2483d1a56f9ca1203c9b67795f6e84cf2407c28d46d5d5351b290d8735adb5206103fee6f379
-DIST llvm-project-21.1.7.src.tar.xz.sig 438 BLAKE2B
be4808a0888b088df0be4edaa7d49361dee717508d4438ad09c18b00752cd7a14ef56f5f18e3e4306a9ace95d9da7ed6904c998eb8a386577f21049bf5b6c0ce
SHA512
d02b09c77abd537eb24d6d43470f962c80a9ec6ccc03ac0efc950d90dbdec5b94dd6abad18143890ff85cee2bdeb7bcf1dac2a576ffcab8ef053d8526417bdcc
DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B
0d3d4ee920f8e5db50e98152616f16004c74df0e7313cc86d893428fb7b1c875109988a5e40ea6f2e5d0fef53c7bfe2fc2b69e84807f6eb440b03afa1b228a36
SHA512
cae4c44e7bf678071723da63ad5839491d717a7233e7f4791aa408207f3ea42f52de939ad15189b112c02a0770f1bb8d59bae6ad31ef53417a6eea7770fe52ab
DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B
cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d
SHA512
10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c
-DIST llvm-project-21c4c1502e3383988ba77eac75b13da7b9426957.tar.gz 254650569
BLAKE2B
aaa8fffbe3b8ddcffa232c6cd078d33efc0f23453fd79b2ae71a0760b35da2ad17ffaed95d99c2548904468767d9f95af2ca4a59245e1ddf51a6612bda61cda4
SHA512
40a97c53cf7825b5c1e6867df74fa22e3b786a2ec9bcb478e1af0e6a165c582316c3c75b12f4704227b8e95cce91ab110acb10f2d8f30bc82319d6af4d201956
DIST llvm-project-8401a8d0be7671fb5089f850a34dc92ad4a2eb12.tar.gz 254694831
BLAKE2B
edac68e2b57124504262d68d1fabbb2161af023c2b9f96f304ce220e3d84249e2a2c1137c83bcfb15f6f082b68ef24a775150e5f435ec14d0f471c51ec438346
SHA512
a35f918fc3363df20fecac5820595060acd9fa0bce2cc3f696603192100a63ff4d31f6ba6ac98ad13f62b01c0789f3cce2ecbe4b9c0095d2bf02d2b24971d973
DIST llvm-project-a3c8b090c37fb10e8c3aa6cd2e5644033cc8a0e4.tar.gz 256214859
BLAKE2B
9b0b94d84ce14b35bd90e1e7c4cb1c6acace5156d10345f56bb35945b8db28747c196eeec43011a98eaca008595950eefbe8a1ebda2871fd6d0bc3bd3012818a
SHA512
b26e7b5b1654f2004e6afa7e452f2e9b5623021ec97406f4c5d42ed26fa4532c5d904d276e5665c758a9310859ee274e06a6d6eb4371d7ccba99ce86b04264ea
diff --git a/llvm-runtimes/libcxx/libcxx-21.1.5.ebuild
b/llvm-runtimes/libcxx/libcxx-21.1.5.ebuild
deleted file mode 100644
index 618ec03322e9..000000000000
--- a/llvm-runtimes/libcxx/libcxx-21.1.5.ebuild
+++ /dev/null
@@ -1,254 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..14} )
-inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
-inherit python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
-IUSE="+clang +libcxxabi +static-libs test"
-REQUIRED_USE="test? ( clang )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- libcxxabi? (
- ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- llvm-core/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- llvm-core/clang:${LLVM_MAJOR}
- llvm-core/clang-linker-config:${LLVM_MAJOR}
- llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
- llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=(
- runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
-)
-llvm.org_set_globals
-
-python_check_deps() {
- use test || return 0
- python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-
- if ! use libcxxabi && ! tc-is-gcc ; then
- eerror "To build ${PN} against libsupc++, you have to use gcc.
Other"
- eerror "compilers are not supported. Please set CC=gcc and
CXX=g++"
- eerror "and try again."
- die
- fi
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- local install_prefix=${EPREFIX}
- is_crosspkg && install_prefix+=/usr/${CTARGET}
-
- # note: we need to do this before multilib kicks in since it will
- # alter the CHOST
- local cxxabi cxxabi_incs
- if use libcxxabi; then
- cxxabi=system-libcxxabi
- cxxabi_incs="${install_prefix}/usr/include/c++/v1"
- else
- local
gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
- cxxabi=libsupc++
- cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- # Workaround for bgo #961153.
- # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
- if ! is_crosspkg; then
- export CTARGET=${CHOST}
- fi
-
- if use clang; then
- llvm_prepend_path -b "${LLVM_MAJOR}"
- local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
- local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
- strip-unsupported-flags
-
- # The full clang configuration might not be ready yet. Use the
partial
- # configuration of components that libunwind depends on.
- local flags=(
-
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
- )
- local -x CFLAGS="${CFLAGS} ${flags[@]}"
- local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
- local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- local nostdlib_flags=( -nostdlib++ )
- if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with
${nostdlib_flags[*]}"
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-
- -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
- -DPython3_EXECUTABLE="${PYTHON}"
- -DLLVM_ENABLE_RUNTIMES=libcxx
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DLIBCXX_ENABLE_SHARED=ON
- -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
- -DLIBCXX_CXX_ABI=${cxxabi}
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
- # we're using our own mechanism for generating linker scripts
- -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
- -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_INSTALL_MODULES=ON
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
- if is_crosspkg; then
- # Needed to target built libc headers
- local -x CFLAGS="${CFLAGS} -isystem
${ESYSROOT}/usr/${CTARGET}/usr/include"
- mycmakeargs+=(
- # Without this, the compiler will compile a test program
- # and fail due to no builtins.
- -DCMAKE_C_COMPILER_WORKS=1
- -DCMAKE_CXX_COMPILER_WORKS=1
- # Install inside the cross sysroot.
- -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
- )
- fi
- if use test; then
- mycmakeargs+=(
- -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
- -DLLVM_LIT_ARGS="$(get_lit_flags)"
- -DPython3_EXECUTABLE="${PYTHON}"
- )
- fi
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
- if [[ ${CHOST} != *-darwin* ]] ; then
- gen_shared_ldscript
- use static-libs && gen_static_ldscript
- fi
-}
-
-multilib_src_test() {
- local -x LIT_PRESERVES_TMP=1
- cmake_build install-cxx-test-suite-prefix
- cp
"${BUILD_DIR}"/{lib,libcxx/test-suite-install/$(get_libdir)}/libc++_shared.so
|| die
- if use static-libs; then
- cp
"${BUILD_DIR}"/{lib,libcxx/test-suite-install/$(get_libdir)}/libc++_static.a ||
die
- fi
- cmake_build check-cxx
-}
-
-multilib_src_install() {
- cmake_src_install
- # since we've replaced libc++.{a,so} with ldscripts, now we have to
- # install the extra symlinks
- if [[ ${CHOST} != *-darwin* ]] ; then
- is_crosspkg && into /usr/${CTARGET}
- dolib.so lib/libc++_shared.so
- use static-libs && dolib.a lib/libc++_static.a
- fi
-
- local install_prefix=
- is_crosspkg && install_prefix=/usr/${CTARGET}
- insinto "${install_prefix}/usr/share/libc++/gdb"
- doins ../libcxx/utils/gdb/libcxx/printers.py
-
- local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p'
CMakeCache.txt || die)
- [[ -n ${lib_version} ]] || die "Could not determine
LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
-
- insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
- newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
- __import__("sys").path.insert(0,
"${EPREFIX}/usr/share/libc++/gdb")
- __import__("printers").register_libcxx_printer_loader()
- EOF
-}
-
-# Usage: deps
-gen_ldscript() {
- local output_format
- output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 |
sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
- [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT (
${output_format} )"
-
- cat <<-END_LDSCRIPT
-/* GNU ld script
- Include missing dependencies
-*/
-${output_format}
-GROUP ( $@ )
-END_LDSCRIPT
-}
-
-gen_static_ldscript() {
- # Move it first.
- mv lib/libc++{,_static}.a || die
- # Generate libc++.a ldscript for inclusion of its dependencies so that
- # clang++ -stdlib=libc++ -static works out of the box.
- local deps=(
- libc++_static.a
- $(usex libcxxabi libc++abi.a libsupc++.a)
- )
- # On Linux/glibc it does not link without libpthread or libdl. It is
- # fine on FreeBSD.
- use elibc_glibc && deps+=( libpthread.a libdl.a )
-
- gen_ldscript "${deps[*]}" > lib/libc++.a || die
-}
-
-gen_shared_ldscript() {
- # Move it first.
- mv lib/libc++{,_shared}.so || die
- local deps=(
- libc++_shared.so
- # libsupc++ doesn't have a shared version
- $(usex libcxxabi libc++abi.so libsupc++.a)
- )
-
- gen_ldscript "${deps[*]}" > lib/libc++.so || die
-}
diff --git a/llvm-runtimes/libcxx/libcxx-21.1.6.ebuild
b/llvm-runtimes/libcxx/libcxx-21.1.6.ebuild
deleted file mode 100644
index 618ec03322e9..000000000000
--- a/llvm-runtimes/libcxx/libcxx-21.1.6.ebuild
+++ /dev/null
@@ -1,254 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..14} )
-inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
-inherit python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
-IUSE="+clang +libcxxabi +static-libs test"
-REQUIRED_USE="test? ( clang )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- libcxxabi? (
- ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- llvm-core/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- llvm-core/clang:${LLVM_MAJOR}
- llvm-core/clang-linker-config:${LLVM_MAJOR}
- llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
- llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=(
- runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
-)
-llvm.org_set_globals
-
-python_check_deps() {
- use test || return 0
- python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-
- if ! use libcxxabi && ! tc-is-gcc ; then
- eerror "To build ${PN} against libsupc++, you have to use gcc.
Other"
- eerror "compilers are not supported. Please set CC=gcc and
CXX=g++"
- eerror "and try again."
- die
- fi
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- local install_prefix=${EPREFIX}
- is_crosspkg && install_prefix+=/usr/${CTARGET}
-
- # note: we need to do this before multilib kicks in since it will
- # alter the CHOST
- local cxxabi cxxabi_incs
- if use libcxxabi; then
- cxxabi=system-libcxxabi
- cxxabi_incs="${install_prefix}/usr/include/c++/v1"
- else
- local
gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
- cxxabi=libsupc++
- cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- # Workaround for bgo #961153.
- # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
- if ! is_crosspkg; then
- export CTARGET=${CHOST}
- fi
-
- if use clang; then
- llvm_prepend_path -b "${LLVM_MAJOR}"
- local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
- local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
- strip-unsupported-flags
-
- # The full clang configuration might not be ready yet. Use the
partial
- # configuration of components that libunwind depends on.
- local flags=(
-
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
- )
- local -x CFLAGS="${CFLAGS} ${flags[@]}"
- local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
- local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- local nostdlib_flags=( -nostdlib++ )
- if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with
${nostdlib_flags[*]}"
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-
- -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
- -DPython3_EXECUTABLE="${PYTHON}"
- -DLLVM_ENABLE_RUNTIMES=libcxx
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DLIBCXX_ENABLE_SHARED=ON
- -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
- -DLIBCXX_CXX_ABI=${cxxabi}
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
- # we're using our own mechanism for generating linker scripts
- -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
- -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_INSTALL_MODULES=ON
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
- if is_crosspkg; then
- # Needed to target built libc headers
- local -x CFLAGS="${CFLAGS} -isystem
${ESYSROOT}/usr/${CTARGET}/usr/include"
- mycmakeargs+=(
- # Without this, the compiler will compile a test program
- # and fail due to no builtins.
- -DCMAKE_C_COMPILER_WORKS=1
- -DCMAKE_CXX_COMPILER_WORKS=1
- # Install inside the cross sysroot.
- -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
- )
- fi
- if use test; then
- mycmakeargs+=(
- -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
- -DLLVM_LIT_ARGS="$(get_lit_flags)"
- -DPython3_EXECUTABLE="${PYTHON}"
- )
- fi
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
- if [[ ${CHOST} != *-darwin* ]] ; then
- gen_shared_ldscript
- use static-libs && gen_static_ldscript
- fi
-}
-
-multilib_src_test() {
- local -x LIT_PRESERVES_TMP=1
- cmake_build install-cxx-test-suite-prefix
- cp
"${BUILD_DIR}"/{lib,libcxx/test-suite-install/$(get_libdir)}/libc++_shared.so
|| die
- if use static-libs; then
- cp
"${BUILD_DIR}"/{lib,libcxx/test-suite-install/$(get_libdir)}/libc++_static.a ||
die
- fi
- cmake_build check-cxx
-}
-
-multilib_src_install() {
- cmake_src_install
- # since we've replaced libc++.{a,so} with ldscripts, now we have to
- # install the extra symlinks
- if [[ ${CHOST} != *-darwin* ]] ; then
- is_crosspkg && into /usr/${CTARGET}
- dolib.so lib/libc++_shared.so
- use static-libs && dolib.a lib/libc++_static.a
- fi
-
- local install_prefix=
- is_crosspkg && install_prefix=/usr/${CTARGET}
- insinto "${install_prefix}/usr/share/libc++/gdb"
- doins ../libcxx/utils/gdb/libcxx/printers.py
-
- local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p'
CMakeCache.txt || die)
- [[ -n ${lib_version} ]] || die "Could not determine
LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
-
- insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
- newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
- __import__("sys").path.insert(0,
"${EPREFIX}/usr/share/libc++/gdb")
- __import__("printers").register_libcxx_printer_loader()
- EOF
-}
-
-# Usage: deps
-gen_ldscript() {
- local output_format
- output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 |
sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
- [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT (
${output_format} )"
-
- cat <<-END_LDSCRIPT
-/* GNU ld script
- Include missing dependencies
-*/
-${output_format}
-GROUP ( $@ )
-END_LDSCRIPT
-}
-
-gen_static_ldscript() {
- # Move it first.
- mv lib/libc++{,_static}.a || die
- # Generate libc++.a ldscript for inclusion of its dependencies so that
- # clang++ -stdlib=libc++ -static works out of the box.
- local deps=(
- libc++_static.a
- $(usex libcxxabi libc++abi.a libsupc++.a)
- )
- # On Linux/glibc it does not link without libpthread or libdl. It is
- # fine on FreeBSD.
- use elibc_glibc && deps+=( libpthread.a libdl.a )
-
- gen_ldscript "${deps[*]}" > lib/libc++.a || die
-}
-
-gen_shared_ldscript() {
- # Move it first.
- mv lib/libc++{,_shared}.so || die
- local deps=(
- libc++_shared.so
- # libsupc++ doesn't have a shared version
- $(usex libcxxabi libc++abi.so libsupc++.a)
- )
-
- gen_ldscript "${deps[*]}" > lib/libc++.so || die
-}
diff --git a/llvm-runtimes/libcxx/libcxx-21.1.7.ebuild
b/llvm-runtimes/libcxx/libcxx-21.1.7.ebuild
deleted file mode 100644
index 618ec03322e9..000000000000
--- a/llvm-runtimes/libcxx/libcxx-21.1.7.ebuild
+++ /dev/null
@@ -1,254 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..14} )
-inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
-inherit python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
-IUSE="+clang +libcxxabi +static-libs test"
-REQUIRED_USE="test? ( clang )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- libcxxabi? (
- ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- llvm-core/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- llvm-core/clang:${LLVM_MAJOR}
- llvm-core/clang-linker-config:${LLVM_MAJOR}
- llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
- llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=(
- runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
-)
-llvm.org_set_globals
-
-python_check_deps() {
- use test || return 0
- python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-
- if ! use libcxxabi && ! tc-is-gcc ; then
- eerror "To build ${PN} against libsupc++, you have to use gcc.
Other"
- eerror "compilers are not supported. Please set CC=gcc and
CXX=g++"
- eerror "and try again."
- die
- fi
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- local install_prefix=${EPREFIX}
- is_crosspkg && install_prefix+=/usr/${CTARGET}
-
- # note: we need to do this before multilib kicks in since it will
- # alter the CHOST
- local cxxabi cxxabi_incs
- if use libcxxabi; then
- cxxabi=system-libcxxabi
- cxxabi_incs="${install_prefix}/usr/include/c++/v1"
- else
- local
gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
- cxxabi=libsupc++
- cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- # Workaround for bgo #961153.
- # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
- if ! is_crosspkg; then
- export CTARGET=${CHOST}
- fi
-
- if use clang; then
- llvm_prepend_path -b "${LLVM_MAJOR}"
- local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
- local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
- strip-unsupported-flags
-
- # The full clang configuration might not be ready yet. Use the
partial
- # configuration of components that libunwind depends on.
- local flags=(
-
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
- )
- local -x CFLAGS="${CFLAGS} ${flags[@]}"
- local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
- local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- local nostdlib_flags=( -nostdlib++ )
- if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with
${nostdlib_flags[*]}"
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-
- -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
- -DPython3_EXECUTABLE="${PYTHON}"
- -DLLVM_ENABLE_RUNTIMES=libcxx
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DLIBCXX_ENABLE_SHARED=ON
- -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
- -DLIBCXX_CXX_ABI=${cxxabi}
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
- # we're using our own mechanism for generating linker scripts
- -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
- -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_INSTALL_MODULES=ON
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
- if is_crosspkg; then
- # Needed to target built libc headers
- local -x CFLAGS="${CFLAGS} -isystem
${ESYSROOT}/usr/${CTARGET}/usr/include"
- mycmakeargs+=(
- # Without this, the compiler will compile a test program
- # and fail due to no builtins.
- -DCMAKE_C_COMPILER_WORKS=1
- -DCMAKE_CXX_COMPILER_WORKS=1
- # Install inside the cross sysroot.
- -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
- )
- fi
- if use test; then
- mycmakeargs+=(
- -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
- -DLLVM_LIT_ARGS="$(get_lit_flags)"
- -DPython3_EXECUTABLE="${PYTHON}"
- )
- fi
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
- if [[ ${CHOST} != *-darwin* ]] ; then
- gen_shared_ldscript
- use static-libs && gen_static_ldscript
- fi
-}
-
-multilib_src_test() {
- local -x LIT_PRESERVES_TMP=1
- cmake_build install-cxx-test-suite-prefix
- cp
"${BUILD_DIR}"/{lib,libcxx/test-suite-install/$(get_libdir)}/libc++_shared.so
|| die
- if use static-libs; then
- cp
"${BUILD_DIR}"/{lib,libcxx/test-suite-install/$(get_libdir)}/libc++_static.a ||
die
- fi
- cmake_build check-cxx
-}
-
-multilib_src_install() {
- cmake_src_install
- # since we've replaced libc++.{a,so} with ldscripts, now we have to
- # install the extra symlinks
- if [[ ${CHOST} != *-darwin* ]] ; then
- is_crosspkg && into /usr/${CTARGET}
- dolib.so lib/libc++_shared.so
- use static-libs && dolib.a lib/libc++_static.a
- fi
-
- local install_prefix=
- is_crosspkg && install_prefix=/usr/${CTARGET}
- insinto "${install_prefix}/usr/share/libc++/gdb"
- doins ../libcxx/utils/gdb/libcxx/printers.py
-
- local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p'
CMakeCache.txt || die)
- [[ -n ${lib_version} ]] || die "Could not determine
LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
-
- insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
- newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
- __import__("sys").path.insert(0,
"${EPREFIX}/usr/share/libc++/gdb")
- __import__("printers").register_libcxx_printer_loader()
- EOF
-}
-
-# Usage: deps
-gen_ldscript() {
- local output_format
- output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 |
sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
- [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT (
${output_format} )"
-
- cat <<-END_LDSCRIPT
-/* GNU ld script
- Include missing dependencies
-*/
-${output_format}
-GROUP ( $@ )
-END_LDSCRIPT
-}
-
-gen_static_ldscript() {
- # Move it first.
- mv lib/libc++{,_static}.a || die
- # Generate libc++.a ldscript for inclusion of its dependencies so that
- # clang++ -stdlib=libc++ -static works out of the box.
- local deps=(
- libc++_static.a
- $(usex libcxxabi libc++abi.a libsupc++.a)
- )
- # On Linux/glibc it does not link without libpthread or libdl. It is
- # fine on FreeBSD.
- use elibc_glibc && deps+=( libpthread.a libdl.a )
-
- gen_ldscript "${deps[*]}" > lib/libc++.a || die
-}
-
-gen_shared_ldscript() {
- # Move it first.
- mv lib/libc++{,_shared}.so || die
- local deps=(
- libc++_shared.so
- # libsupc++ doesn't have a shared version
- $(usex libcxxabi libc++abi.so libsupc++.a)
- )
-
- gen_ldscript "${deps[*]}" > lib/libc++.so || die
-}
diff --git a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251108.ebuild
b/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251108.ebuild
deleted file mode 100644
index 9825200fd784..000000000000
--- a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251108.ebuild
+++ /dev/null
@@ -1,260 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..14} )
-inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
-inherit python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-IUSE="+clang +libcxxabi +static-libs test"
-REQUIRED_USE="test? ( clang )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- libcxxabi? (
- ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- llvm-core/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- llvm-core/clang:${LLVM_MAJOR}
- llvm-core/clang-linker-config:${LLVM_MAJOR}
- llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
- llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=(
- runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
-)
-llvm.org_set_globals
-
-python_check_deps() {
- use test || return 0
- python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-
- if ! use libcxxabi && ! tc-is-gcc ; then
- eerror "To build ${PN} against libsupc++, you have to use gcc.
Other"
- eerror "compilers are not supported. Please set CC=gcc and
CXX=g++"
- eerror "and try again."
- die
- fi
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- local install_prefix=${EPREFIX}
- is_crosspkg && install_prefix+=/usr/${CTARGET}
-
- # note: we need to do this before multilib kicks in since it will
- # alter the CHOST
- local cxxabi cxxabi_incs
- if use libcxxabi; then
- cxxabi=system-libcxxabi
- cxxabi_incs="${install_prefix}/usr/include/c++/v1"
- else
- local
gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
- cxxabi=libsupc++
- cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- # Workaround for bgo #961153.
- # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
- if ! is_crosspkg; then
- export CTARGET=${CHOST}
- fi
-
- if use clang; then
- llvm_prepend_path -b "${LLVM_MAJOR}"
- local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
- local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
- strip-unsupported-flags
-
- # The full clang configuration might not be ready yet. Use the
partial
- # configuration of components that libunwind depends on.
- local flags=(
-
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
- )
- local -x CFLAGS="${CFLAGS} ${flags[@]}"
- local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
- local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- local nostdlib_flags=( -nostdlib++ )
- if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nort_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with
${nort_flags[*]}"
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-
- -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
- -DPython3_EXECUTABLE="${PYTHON}"
- -DLLVM_ENABLE_RUNTIMES=libcxx
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DLIBCXX_ENABLE_SHARED=ON
- -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
- -DLIBCXX_CXX_ABI=${cxxabi}
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
- # we're using our own mechanism for generating linker scripts
- -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
- -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_INSTALL_MODULES=ON
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
- if is_crosspkg; then
- # Needed to target built libc headers
- local -x CFLAGS="${CFLAGS} -isystem
${ESYSROOT}/usr/${CTARGET}/usr/include"
- mycmakeargs+=(
- # Without this, the compiler will compile a test program
- # and fail due to no builtins.
- -DCMAKE_C_COMPILER_WORKS=1
- -DCMAKE_CXX_COMPILER_WORKS=1
- # Install inside the cross sysroot.
- -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
- )
- fi
- if use test; then
- mycmakeargs+=(
- -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
- -DLLVM_LIT_ARGS="$(get_lit_flags)"
- -DPython3_EXECUTABLE="${PYTHON}"
- )
- fi
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
- if [[ ${CHOST} != *-darwin* ]] ; then
- local libdir=$(get_libdir)
- gen_shared_ldscript
- use static-libs && gen_static_ldscript
- fi
-}
-
-multilib_src_test() {
- local -x LIT_PRESERVES_TMP=1
- # https://github.com/llvm/llvm-project/issues/153940
- local -x LIT_XFAIL="libcxx/gdb/gdb_pretty_printer_test.sh.cpp"
- cmake_build install-cxx-test-suite-prefix
- if [[ ${CHOST} != *-darwin* ]] ; then
- local libdir=$(get_libdir)
- cp
"${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_shared.so || die
- if use static-libs; then
- cp
"${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_static.a || die
- fi
- fi
- cmake_build check-cxx
-}
-
-multilib_src_install() {
- cmake_src_install
- # since we've replaced libc++.{a,so} with ldscripts, now we have to
- # install the extra symlinks
- if [[ ${CHOST} != *-darwin* ]] ; then
- local libdir=$(get_libdir)
- is_crosspkg && into /usr/${CTARGET}
- dolib.so "${libdir}"/libc++_shared.so
- use static-libs && dolib.a "${libdir}"/libc++_static.a
- fi
-
- local install_prefix=
- is_crosspkg && install_prefix=/usr/${CTARGET}
- insinto "${install_prefix}/usr/share/libc++/gdb"
- doins ../libcxx/utils/gdb/libcxx/printers.py
-
- local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p'
CMakeCache.txt || die)
- [[ -n ${lib_version} ]] || die "Could not determine
LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
-
- insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
- newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
- __import__("sys").path.insert(0,
"${EPREFIX}/usr/share/libc++/gdb")
- __import__("printers").register_libcxx_printer_loader()
- EOF
-}
-
-# Usage: deps
-gen_ldscript() {
- local output_format
- output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 |
sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
- [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT (
${output_format} )"
-
- cat <<-END_LDSCRIPT
-/* GNU ld script
- Include missing dependencies
-*/
-${output_format}
-GROUP ( $@ )
-END_LDSCRIPT
-}
-
-gen_static_ldscript() {
- # Move it first.
- mv "${libdir}"/libc++{,_static}.a || die
- # Generate libc++.a ldscript for inclusion of its dependencies so that
- # clang++ -stdlib=libc++ -static works out of the box.
- local deps=(
- libc++_static.a
- $(usex libcxxabi libc++abi.a libsupc++.a)
- )
- # On Linux/glibc it does not link without libpthread or libdl. It is
- # fine on FreeBSD.
- use elibc_glibc && deps+=( libpthread.a libdl.a )
-
- gen_ldscript "${deps[*]}" > "${libdir}"/libc++.a || die
-}
-
-gen_shared_ldscript() {
- # Move it first.
- mv "${libdir}"/libc++{,_shared}.so || die
- local deps=(
- libc++_shared.so
- # libsupc++ doesn't have a shared version
- $(usex libcxxabi libc++abi.so libsupc++.a)
- )
-
- gen_ldscript "${deps[*]}" > "${libdir}"/libc++.so || die
-}
diff --git a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251120.ebuild
b/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251120.ebuild
deleted file mode 100644
index 9825200fd784..000000000000
--- a/llvm-runtimes/libcxx/libcxx-22.0.0_pre20251120.ebuild
+++ /dev/null
@@ -1,260 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{11..14} )
-inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
-inherit python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-IUSE="+clang +libcxxabi +static-libs test"
-REQUIRED_USE="test? ( clang )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- libcxxabi? (
- ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- llvm-core/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- llvm-core/clang:${LLVM_MAJOR}
- llvm-core/clang-linker-config:${LLVM_MAJOR}
- llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
- llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=(
- runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
-)
-llvm.org_set_globals
-
-python_check_deps() {
- use test || return 0
- python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-
- if ! use libcxxabi && ! tc-is-gcc ; then
- eerror "To build ${PN} against libsupc++, you have to use gcc.
Other"
- eerror "compilers are not supported. Please set CC=gcc and
CXX=g++"
- eerror "and try again."
- die
- fi
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- local install_prefix=${EPREFIX}
- is_crosspkg && install_prefix+=/usr/${CTARGET}
-
- # note: we need to do this before multilib kicks in since it will
- # alter the CHOST
- local cxxabi cxxabi_incs
- if use libcxxabi; then
- cxxabi=system-libcxxabi
- cxxabi_incs="${install_prefix}/usr/include/c++/v1"
- else
- local
gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
- cxxabi=libsupc++
- cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
- fi
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- # Workaround for bgo #961153.
- # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
- if ! is_crosspkg; then
- export CTARGET=${CHOST}
- fi
-
- if use clang; then
- llvm_prepend_path -b "${LLVM_MAJOR}"
- local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
- local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
- strip-unsupported-flags
-
- # The full clang configuration might not be ready yet. Use the
partial
- # configuration of components that libunwind depends on.
- local flags=(
-
--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
- )
- local -x CFLAGS="${CFLAGS} ${flags[@]}"
- local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
- local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- local nostdlib_flags=( -nostdlib++ )
- if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nort_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with
${nort_flags[*]}"
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-
- -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
- -DPython3_EXECUTABLE="${PYTHON}"
- -DLLVM_ENABLE_RUNTIMES=libcxx
- -DLLVM_INCLUDE_TESTS=OFF
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DLIBCXX_ENABLE_SHARED=ON
- -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
- -DLIBCXX_CXX_ABI=${cxxabi}
- -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
- # we're using our own mechanism for generating linker scripts
- -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
- -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_INSTALL_MODULES=ON
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
- if is_crosspkg; then
- # Needed to target built libc headers
- local -x CFLAGS="${CFLAGS} -isystem
${ESYSROOT}/usr/${CTARGET}/usr/include"
- mycmakeargs+=(
- # Without this, the compiler will compile a test program
- # and fail due to no builtins.
- -DCMAKE_C_COMPILER_WORKS=1
- -DCMAKE_CXX_COMPILER_WORKS=1
- # Install inside the cross sysroot.
- -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
- )
- fi
- if use test; then
- mycmakeargs+=(
- -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
- -DLLVM_LIT_ARGS="$(get_lit_flags)"
- -DPython3_EXECUTABLE="${PYTHON}"
- )
- fi
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
- if [[ ${CHOST} != *-darwin* ]] ; then
- local libdir=$(get_libdir)
- gen_shared_ldscript
- use static-libs && gen_static_ldscript
- fi
-}
-
-multilib_src_test() {
- local -x LIT_PRESERVES_TMP=1
- # https://github.com/llvm/llvm-project/issues/153940
- local -x LIT_XFAIL="libcxx/gdb/gdb_pretty_printer_test.sh.cpp"
- cmake_build install-cxx-test-suite-prefix
- if [[ ${CHOST} != *-darwin* ]] ; then
- local libdir=$(get_libdir)
- cp
"${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_shared.so || die
- if use static-libs; then
- cp
"${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_static.a || die
- fi
- fi
- cmake_build check-cxx
-}
-
-multilib_src_install() {
- cmake_src_install
- # since we've replaced libc++.{a,so} with ldscripts, now we have to
- # install the extra symlinks
- if [[ ${CHOST} != *-darwin* ]] ; then
- local libdir=$(get_libdir)
- is_crosspkg && into /usr/${CTARGET}
- dolib.so "${libdir}"/libc++_shared.so
- use static-libs && dolib.a "${libdir}"/libc++_static.a
- fi
-
- local install_prefix=
- is_crosspkg && install_prefix=/usr/${CTARGET}
- insinto "${install_prefix}/usr/share/libc++/gdb"
- doins ../libcxx/utils/gdb/libcxx/printers.py
-
- local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p'
CMakeCache.txt || die)
- [[ -n ${lib_version} ]] || die "Could not determine
LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
-
- insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
- newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
- __import__("sys").path.insert(0,
"${EPREFIX}/usr/share/libc++/gdb")
- __import__("printers").register_libcxx_printer_loader()
- EOF
-}
-
-# Usage: deps
-gen_ldscript() {
- local output_format
- output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 |
sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
- [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT (
${output_format} )"
-
- cat <<-END_LDSCRIPT
-/* GNU ld script
- Include missing dependencies
-*/
-${output_format}
-GROUP ( $@ )
-END_LDSCRIPT
-}
-
-gen_static_ldscript() {
- # Move it first.
- mv "${libdir}"/libc++{,_static}.a || die
- # Generate libc++.a ldscript for inclusion of its dependencies so that
- # clang++ -stdlib=libc++ -static works out of the box.
- local deps=(
- libc++_static.a
- $(usex libcxxabi libc++abi.a libsupc++.a)
- )
- # On Linux/glibc it does not link without libpthread or libdl. It is
- # fine on FreeBSD.
- use elibc_glibc && deps+=( libpthread.a libdl.a )
-
- gen_ldscript "${deps[*]}" > "${libdir}"/libc++.a || die
-}
-
-gen_shared_ldscript() {
- # Move it first.
- mv "${libdir}"/libc++{,_shared}.so || die
- local deps=(
- libc++_shared.so
- # libsupc++ doesn't have a shared version
- $(usex libcxxabi libc++abi.so libsupc++.a)
- )
-
- gen_ldscript "${deps[*]}" > "${libdir}"/libc++.so || die
-}