summaryrefslogtreecommitdiff
path: root/sys-libs/libcxx
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-10 17:34:25 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-10 17:34:25 +0000
commit0bb42730e8fc9c8e571f12e3189c6c6f8d532c24 (patch)
treecba6032fbed30be2b0764494607c3ec9dda0c18a /sys-libs/libcxx
parentcc901a8ce7c6bfe97e3b4f048619693d360ae348 (diff)
gentoo auto-resync : 10:02:2024 - 17:34:25
Diffstat (limited to 'sys-libs/libcxx')
-rw-r--r--sys-libs/libcxx/Manifest11
-rw-r--r--sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild213
-rw-r--r--sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild12
-rw-r--r--sys-libs/libcxx/libcxx-19.0.0.9999.ebuild12
-rw-r--r--sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild213
-rw-r--r--sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild12
6 files changed, 15 insertions, 458 deletions
diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c2032ed5b943..6e03a27c25c8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,18 +6,13 @@ DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db3659
DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
-DIST llvm-project-18.1.0rc1.src.tar.xz 131969632 BLAKE2B 0cc2f3049a89ee07182189a1ff7aec1751bfe6bbaed4887e139854737fe4eb0ec924b37d8d5b01e298d6a4b271735a615283465262345d0a288180edd6276139 SHA512 85afc331c8a023f4d8177cc42143b968b94d6987a7ed38b8be1170c6b4e1ef1a79d2d4e44d5fae98b713959b5d69bd4e44c6ba84355f59e8fe99588cbca03d7a
-DIST llvm-project-18.1.0rc1.src.tar.xz.sig 566 BLAKE2B c9fd7e92e0c6bb8291314ed388d518d15b75c5d4e7ba5da461c2176c5519d721c5ae95d8ecf99ce17bdc398cf23f13b540aacab306c2923e4c0ac8a5f059746f SHA512 0bb072ef2d3156241bcb74102c977db73720f38918e1a0b2cbe6191b6884ce5750ed9f5af69575599bad840c0151a04f81ebc5194c4ce258cbd6516d6c26d9cb
DIST llvm-project-18.1.0rc2.src.tar.xz 131993176 BLAKE2B 8df1e34a54214975efe1b9a649753a2dc20c04e3c763bd8648000f48dd18f27ccfdc597ff6e68e0f408310493dfa92f48c7eee53376501e8ebc3b7c614809c15 SHA512 b595bb5d029723fee4e8f8edeaddd6fdcd48d668f66f4239e3208fd19d3a3622e8e4f90ae3fa4b1216fca1621d6c6b6ebf4d99dec7febff2457d0ceb79e8617a
DIST llvm-project-18.1.0rc2.src.tar.xz.sig 566 BLAKE2B c765549386a92883bd348d9be25a3c92b1e66a1bac71385ef99978ec2af413a7616a2d9699c57554d927f95b80a3584572557d26e3df16b2ff6678359d5fd6b0 SHA512 83bb4c133f34faec8a0109689ed7aa18222c9a803ba8c95c571a18e854726024f106a1c8e3a820020255c426b7fa8bda26789ff1546972e233fbe3e3ab3a8e91
-DIST llvm-project-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
DIST llvm-project-78b4e7c5e349d8c101b50affbd260eb109748f8f.tar.gz 207433034 BLAKE2B ab7189fe82b5a9309348b499130295b3057dbb263ad9c60b1748e4ea92be3a85f0160baa1408dde5516650994951d9f948223d2d6260492a07b07dde51a51ff9 SHA512 366ecb02720d2b550ebeca989abf74ca1c93b2585a95fa378f44edc6c3329ee4e1548f5fa2cf7a19e59bc817abe6cc8850841415227380114c59b58867959a5a
EBUILD libcxx-15.0.7-r1.ebuild 5283 BLAKE2B 4380fc5b851054a5ec226ee4c92a2b79511d73ac9b3f8bccc977211601eca36113fc0ae605854da53898507021f24a8b319197605c556244d84253bede7b84f4 SHA512 0a5859269422e794deb43ed960651a1dea830af28b5e395f32e28de8e67a1f399507340230af1c84248853f554e751709a60a9a78aeb0eb42804cb41907dbfce
EBUILD libcxx-16.0.6.ebuild 5287 BLAKE2B fc7ce91f80be1d635a4693fe44f9379701dc3d4241b2eaa701338f02ae580a402661ee60f6349119935a8fb1ce1667b83895a9da8f4da897cc12e8d2a6ed7e76 SHA512 69e9c4ed649f70fd5fd7d84049d095b9e65494749181b2a81f05b473b4303ebc3a353187039e1fc1d270fc39342bca2785b2a75a0025232bee57e2a2506c7ef0
EBUILD libcxx-17.0.6.ebuild 5269 BLAKE2B dbc9cfac07759943f456cf6919b66b74da69e6aec68f5342ee7e10051a7da835aa9b45752ca7832784f38643c7175ca0d6a978cd439d2ad93bd7d73f30c95e93 SHA512 0633e594869874a8ee47928e560d96c7db2094a5cd542b11e26b09eef593f4536c2e6e46c76cd0e8bb64e7b7ccc0c79a5d1fb8e52243f70aa0a923551043078b
-EBUILD libcxx-18.1.0_rc1.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
-EBUILD libcxx-18.1.0_rc2.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
-EBUILD libcxx-19.0.0.9999.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
-EBUILD libcxx-19.0.0_pre20240127.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
-EBUILD libcxx-19.0.0_pre20240203.ebuild 5601 BLAKE2B c11cf57ef6b6c209473b69b0c95c1a656387d3d32494c2a65537c67127a9d9b15a3153609b64c9046f29f29bdd916b0f482ddfad705612f4cdb78ea8ec68621c SHA512 a611b6bf010e315d5d3dc4454c6baf85e33579258ce990fab523a3daffadc3dac1bd51d035a42ed711dac5c5314ff3615cc67347178ecb84437e787fce29ed7e
+EBUILD libcxx-18.1.0_rc2.ebuild 5367 BLAKE2B f7db8abd6b4c8b6949fb0f5e3a7448ec6ee3209d1459090fed642db04277b396a5418d270bd5d44b08cf13752d8c3f0856e88c93697ef9ab66f7d9b5675465a7 SHA512 06d7ac584a93c185bdb0bac6bae43b7036825b15f31857db865b61b2e9c202826f4c861404d3be012694c4203632342aa4352fc41c6abbbb6eca2b745c33d7e1
+EBUILD libcxx-19.0.0.9999.ebuild 5367 BLAKE2B f7db8abd6b4c8b6949fb0f5e3a7448ec6ee3209d1459090fed642db04277b396a5418d270bd5d44b08cf13752d8c3f0856e88c93697ef9ab66f7d9b5675465a7 SHA512 06d7ac584a93c185bdb0bac6bae43b7036825b15f31857db865b61b2e9c202826f4c861404d3be012694c4203632342aa4352fc41c6abbbb6eca2b745c33d7e1
+EBUILD libcxx-19.0.0_pre20240203.ebuild 5367 BLAKE2B f7db8abd6b4c8b6949fb0f5e3a7448ec6ee3209d1459090fed642db04277b396a5418d270bd5d44b08cf13752d8c3f0856e88c93697ef9ab66f7d9b5675465a7 SHA512 06d7ac584a93c185bdb0bac6bae43b7036825b15f31857db865b61b2e9c202826f4c861404d3be012694c4203632342aa4352fc41c6abbbb6eca2b745c33d7e1
MISC metadata.xml 598 BLAKE2B b7a60449e0d8e4e7605ec203dfaa45b17a265b024e21a3bcfe05a3aeb6c3d19a1d2a218cb1f9ac9ed52296f0d6e723fed251f364341fb70cbd91b747962db580 SHA512 a23f912efff52c4687767023da826ace8c6e5dcd5e69ece86aabbea99da89e48ba81cdc292f03193e2e8a05743e62ebf4d4735d038e0cc4b42714fa277569335
diff --git a/sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild
deleted file mode 100644
index a24b477a5ab8..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-inherit cmake-multilib flag-o-matic llvm llvm.org 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? (
- ~sys-libs/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- sys-devel/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- sys-devel/clang:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} 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() {
- # 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_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
- fi
- 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
-}
-
-src_prepare() {
- # hanging tests
- # https://github.com/llvm/llvm-project/issues/73791
- rm ../libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_* || die
- rm ../libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.*_equals* || die
-
- cmake_src_prepare
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- # 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="${EPREFIX}/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() {
- if use clang; then
- local -x CC=${CHOST}-clang
- local -x CXX=${CHOST}-clang++
- strip-unsupported-flags
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- # bootstrap: cmake is unhappy if compiler can't link to stdlib
- local nolib_flags=( -nodefaultlibs -lc )
- if ! test_compiler; then
- if test_compiler "${nolib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}"
- fi
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
- -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=$(usex elibc_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
-
- 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 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
- dolib.so lib/libc++_shared.so
- use static-libs && dolib.a lib/libc++_static.a
- fi
-}
-
-# 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/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
index a24b477a5ab8..c205f3f21b57 100644
--- a/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
@@ -4,8 +4,8 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
-inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
- toolchain-funcs
+inherit cmake-multilib flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
HOMEPAGE="https://libcxx.llvm.org/"
@@ -48,12 +48,6 @@ python_check_deps() {
}
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_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
- fi
python-any-r1_pkg_setup
if ! use libcxxabi && ! tc-is-gcc ; then
@@ -79,6 +73,8 @@ test_compiler() {
}
src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
# note: we need to do this before multilib kicks in since it will
# alter the CHOST
local cxxabi cxxabi_incs
diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
index a24b477a5ab8..c205f3f21b57 100644
--- a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
@@ -4,8 +4,8 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
-inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
- toolchain-funcs
+inherit cmake-multilib flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
HOMEPAGE="https://libcxx.llvm.org/"
@@ -48,12 +48,6 @@ python_check_deps() {
}
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_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
- fi
python-any-r1_pkg_setup
if ! use libcxxabi && ! tc-is-gcc ; then
@@ -79,6 +73,8 @@ test_compiler() {
}
src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
# note: we need to do this before multilib kicks in since it will
# alter the CHOST
local cxxabi cxxabi_incs
diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild
deleted file mode 100644
index a24b477a5ab8..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-inherit cmake-multilib flag-o-matic llvm llvm.org 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? (
- ~sys-libs/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
- )
- !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-DEPEND="
- ${RDEPEND}
- sys-devel/llvm:${LLVM_MAJOR}
-"
-BDEPEND="
- clang? (
- sys-devel/clang:${LLVM_MAJOR}
- )
- !test? (
- ${PYTHON_DEPS}
- )
- test? (
- dev-debug/gdb[python]
- $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
- )
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} 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() {
- # 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_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
- fi
- 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
-}
-
-src_prepare() {
- # hanging tests
- # https://github.com/llvm/llvm-project/issues/73791
- rm ../libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/fetch_* || die
- rm ../libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/operator.*_equals* || die
-
- cmake_src_prepare
-}
-
-test_compiler() {
- $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
- <<<'int main() { return 0; }' &>/dev/null
-}
-
-src_configure() {
- # 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="${EPREFIX}/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() {
- if use clang; then
- local -x CC=${CHOST}-clang
- local -x CXX=${CHOST}-clang++
- strip-unsupported-flags
- fi
-
- # link to compiler-rt
- local use_compiler_rt=OFF
- [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
-
- # bootstrap: cmake is unhappy if compiler can't link to stdlib
- local nolib_flags=( -nodefaultlibs -lc )
- if ! test_compiler; then
- if test_compiler "${nolib_flags[@]}"; then
- local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
- ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}"
- fi
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- -DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
- -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=$(usex elibc_musl)
- -DLIBCXX_INCLUDE_BENCHMARKS=OFF
- -DLIBCXX_INCLUDE_TESTS=$(usex test)
- -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
- # this is broken with standalone builds, and also meaningless
- -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
- )
-
- 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 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
- dolib.so lib/libc++_shared.so
- use static-libs && dolib.a lib/libc++_static.a
- fi
-}
-
-# 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/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
index a24b477a5ab8..c205f3f21b57 100644
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
@@ -4,8 +4,8 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
-inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
- toolchain-funcs
+inherit cmake-multilib flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
HOMEPAGE="https://libcxx.llvm.org/"
@@ -48,12 +48,6 @@ python_check_deps() {
}
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_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
- fi
python-any-r1_pkg_setup
if ! use libcxxabi && ! tc-is-gcc ; then
@@ -79,6 +73,8 @@ test_compiler() {
}
src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
# note: we need to do this before multilib kicks in since it will
# alter the CHOST
local cxxabi cxxabi_incs