public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2015-09-14 13:24 Alexis Ballier
  0 siblings, 0 replies; 608+ messages in thread
From: Alexis Ballier @ 2015-09-14 13:24 UTC (permalink / raw
  To: gentoo-commits

commit:     d2bc793ac205591b2ed8b1219766244020623cdd
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 14 12:41:18 2015 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Mon Sep 14 13:24:00 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2bc793a

sys-libs/libcxx: bump to 3.7.0.

Package-Manager: portage-2.2.20.1

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-3.7.0.ebuild | 170 ++++++++++++++++++++++++++++++++++++
 2 files changed, 171 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f7608c7..ea3c237 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,3 +4,4 @@ DIST libcxx-0.0_p20140322.tar.xz 879256 SHA256 b5eae28ced378349e4b7ec6f2e944d063
 DIST libcxx-3.6.0.src.tar.xz 946380 SHA256 299c1e82b0086a79c5c1aa1885ea3be3bbce6979aaa9b886409b14f9b387fbb7 SHA512 fe16d129a4e2429677a2b87aa2da27fcb5331d6335a0b819ea67de6498e82293bc13661602baafabb56a7f0a4e8f304d468088b8d3e0b5d1c0d01976f7cf3e92 WHIRLPOOL 527b4d1c54e5d76d0958c6d8ac622be4cb7b1a2feb3a9f2d2efa09564ab8d2f8f8cb15a536b8390f80c327dc8b86fee4fcc0b3d7c3771b11ca64885505fb449a
 DIST libcxx-3.6.1.src.tar.xz 943756 SHA256 5a5c653becf3978d4c4f6095708660855bed691210a9426bb839eecd88b6c0f9 SHA512 96d7700ef1c15327b68e8865c2294a3455f09e166991d4465c45bf870fe2d9ce4ddc9af1cd52b900a8a6a9f89c096b9ee1b2c2af58b550f7bc224505eb04d8ea WHIRLPOOL e7eba2d69d679198725147845d2e92631294b27ab2eb73bc057f6851bffbae941fb2570d66bdc28a7382b69d7dc87558e12b730f87a7e9a54f9d149eea1209c9
 DIST libcxx-3.6.2.src.tar.xz 944020 SHA256 52f3d452f48209c9df1792158fdbd7f3e98ed9bca8ebb51fcd524f67437c8b81 SHA512 1eb575921ca0d636c4b7ba21b3ad2c09468d779c69b3106ceefde294344cf20a48a03f9d38ea0db9f8b909f56f0fd1a56a255101305318e04d9f2d20af358ba6 WHIRLPOOL ec225d10cbfe3ca5eba2ed5f16ac6c19914ee75d71db2a1d8ca30f326c9fd5576899361f4397f2ee5d09dd3e8abaca82080c63e303b90d6f19f755465a11a065
+DIST libcxx-3.7.0.src.tar.xz 994580 SHA256 c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e SHA512 e71d04efa0fafab129a97ca6f4fd7b5f185258de7455c7a25d0964f459bc6068c69c5d67199f6d7cd3541bdce630106cbaf3b7099e4737dddbdd57c77a3fe054 WHIRLPOOL 26672e3f6e0772504e7ee174c37e5fc20079c730ac8bd0d2563d5415ca9589360aa3be42a8aac15eb5a63c69227bd4911aa822b158b9a35e3d74ec0d71bb1300

diff --git a/sys-libs/libcxx/libcxx-3.7.0.ebuild b/sys-libs/libcxx/libcxx-3.7.0.ebuild
new file mode 100644
index 0000000..92689d8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-3.7.0.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
+
+[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
+
+inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+if [ "${PV%9999}" = "${PV}" ] ; then
+	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [ "${PV%9999}" = "${PV}" ] ; then
+	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc +libcxxrt +static-libs test"
+
+RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
+DEPEND="${RDEPEND}
+	test? ( sys-devel/clang )
+	app-arch/xz-utils"
+
+DOCS=( CREDITS.TXT )
+
+pkg_setup() {
+	if ! use libcxxrt ; then
+		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
+		ewarn "libsupc++. Please note that this is not well supported."
+		ewarn "In particular, static linking will not work."
+	fi
+	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
+		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
+		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
+		die
+	fi
+}
+
+src_prepare() {
+	cp -f "${FILESDIR}/Makefile" lib/ || die
+	multilib_copy_sources
+}
+
+src_configure() {
+	export LIBS="-lpthread -lrt -lc -lgcc_s"
+	if use libcxxrt ; then
+		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
+		LIBS="-lcxxrt ${LIBS}"
+		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
+	else
+		# Very hackish, see $HOMEPAGE
+		# If someone has a clever idea, please share it!
+		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
+		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
+		append-cppflags -D__GLIBCXX__ ${includes}
+		LIBS="-lsupc++ ${LIBS}"
+		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
+		for i in ${libsupcxx_includes} ; do
+			local found=""
+			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
+			for j in ${libcxx_gcc_dirs} ; do
+				if [ -f "${j}/${i}" ] ; then
+					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
+					found=yes
+				fi
+			done
+			[ -n "${found}" ] || die "Header not found: ${i}"
+		done
+	fi
+
+	tc-export AR CC CXX
+
+	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
+}
+
+multilib_src_compile() {
+	cd "${BUILD_DIR}/lib" || die
+	emake shared
+	use static-libs && emake static
+}
+
+# Tests fail for now, if anybody is able to fix them, help is very welcome.
+multilib_src_test() {
+	cd "${BUILD_DIR}/test"
+	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
+		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
+		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
+		SOURCE_LIB="-L${BUILD_DIR}/lib" \
+		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
+		./testit || die
+	# TODO: fix link against libsupc++
+}
+
+# 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() {
+	if use libcxxrt ; then
+		# Move it first.
+		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
+		# On Linux/glibc it does not link without libpthread or libdl. It is
+		# fine on FreeBSD.
+		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
+
+		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
+	fi
+	# TODO: Generate a libc++.a ldscript when building against libsupc++
+}
+
+gen_shared_ldscript() {
+	if use libcxxrt ; then
+		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
+		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
+		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
+	fi
+	# TODO: Generate the linker script for other confiurations too.
+}
+
+multilib_src_install() {
+	cd "${BUILD_DIR}/lib"
+	if use static-libs ; then
+		dolib.a libc++.a
+		gen_static_ldscript
+	fi
+	dolib.so libc++.so*
+	gen_shared_ldscript
+}
+
+multilib_src_install_all() {
+	einstalldocs
+	insinto /usr/include/c++/v1
+	doins -r include/*
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-01-05  8:34 Alexis Ballier
  0 siblings, 0 replies; 608+ messages in thread
From: Alexis Ballier @ 2016-01-05  8:34 UTC (permalink / raw
  To: gentoo-commits

commit:     38c169737779f639a3434bd8effe7b7a76d98ff3
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  5 07:43:13 2016 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Tue Jan  5 08:27:02 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=38c16973

sys-libs/libcxx: bump to 3.7.1

Package-Manager: portage-2.2.26
Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-3.7.1.ebuild | 170 ++++++++++++++++++++++++++++++++++++
 2 files changed, 171 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 39d0adb..49261ca 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1 +1,2 @@
 DIST libcxx-3.7.0.src.tar.xz 994580 SHA256 c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e SHA512 e71d04efa0fafab129a97ca6f4fd7b5f185258de7455c7a25d0964f459bc6068c69c5d67199f6d7cd3541bdce630106cbaf3b7099e4737dddbdd57c77a3fe054 WHIRLPOOL 26672e3f6e0772504e7ee174c37e5fc20079c730ac8bd0d2563d5415ca9589360aa3be42a8aac15eb5a63c69227bd4911aa822b158b9a35e3d74ec0d71bb1300
+DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d258aeebaab8b6a791201e6f7f144 SHA512 08d2399a8b36aa15290733256c896c9fa43f1a1223bc5c73bbcd014fddf8880e514d2a6dcc456bcf18b537c01fb6911b092e6d9958bccd8e64e9f375ed7a1ab9 WHIRLPOOL 19f77946abf48cbdd3e7ea21fd009ca3cc5f607dfe0512a44b102847044bb1d5ae4b16f503f18b14ebd9ea115256e87af07409907ba2a65f6061e217a502a359

diff --git a/sys-libs/libcxx/libcxx-3.7.1.ebuild b/sys-libs/libcxx/libcxx-3.7.1.ebuild
new file mode 100644
index 0000000..92689d8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-3.7.1.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
+
+[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
+
+inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+if [ "${PV%9999}" = "${PV}" ] ; then
+	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [ "${PV%9999}" = "${PV}" ] ; then
+	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc +libcxxrt +static-libs test"
+
+RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
+DEPEND="${RDEPEND}
+	test? ( sys-devel/clang )
+	app-arch/xz-utils"
+
+DOCS=( CREDITS.TXT )
+
+pkg_setup() {
+	if ! use libcxxrt ; then
+		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
+		ewarn "libsupc++. Please note that this is not well supported."
+		ewarn "In particular, static linking will not work."
+	fi
+	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
+		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
+		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
+		die
+	fi
+}
+
+src_prepare() {
+	cp -f "${FILESDIR}/Makefile" lib/ || die
+	multilib_copy_sources
+}
+
+src_configure() {
+	export LIBS="-lpthread -lrt -lc -lgcc_s"
+	if use libcxxrt ; then
+		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
+		LIBS="-lcxxrt ${LIBS}"
+		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
+	else
+		# Very hackish, see $HOMEPAGE
+		# If someone has a clever idea, please share it!
+		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
+		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
+		append-cppflags -D__GLIBCXX__ ${includes}
+		LIBS="-lsupc++ ${LIBS}"
+		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
+		for i in ${libsupcxx_includes} ; do
+			local found=""
+			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
+			for j in ${libcxx_gcc_dirs} ; do
+				if [ -f "${j}/${i}" ] ; then
+					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
+					found=yes
+				fi
+			done
+			[ -n "${found}" ] || die "Header not found: ${i}"
+		done
+	fi
+
+	tc-export AR CC CXX
+
+	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
+}
+
+multilib_src_compile() {
+	cd "${BUILD_DIR}/lib" || die
+	emake shared
+	use static-libs && emake static
+}
+
+# Tests fail for now, if anybody is able to fix them, help is very welcome.
+multilib_src_test() {
+	cd "${BUILD_DIR}/test"
+	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
+		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
+		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
+		SOURCE_LIB="-L${BUILD_DIR}/lib" \
+		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
+		./testit || die
+	# TODO: fix link against libsupc++
+}
+
+# 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() {
+	if use libcxxrt ; then
+		# Move it first.
+		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
+		# On Linux/glibc it does not link without libpthread or libdl. It is
+		# fine on FreeBSD.
+		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
+
+		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
+	fi
+	# TODO: Generate a libc++.a ldscript when building against libsupc++
+}
+
+gen_shared_ldscript() {
+	if use libcxxrt ; then
+		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
+		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
+		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
+	fi
+	# TODO: Generate the linker script for other confiurations too.
+}
+
+multilib_src_install() {
+	cd "${BUILD_DIR}/lib"
+	if use static-libs ; then
+		dolib.a libc++.a
+		gen_static_ldscript
+	fi
+	dolib.so libc++.so*
+	gen_shared_ldscript
+}
+
+multilib_src_install_all() {
+	einstalldocs
+	insinto /usr/include/c++/v1
+	doins -r include/*
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-01-05  8:34 Alexis Ballier
  0 siblings, 0 replies; 608+ messages in thread
From: Alexis Ballier @ 2016-01-05  8:34 UTC (permalink / raw
  To: gentoo-commits

commit:     ef032c2949d812cc968e4d33ac64a33e36eb7eb7
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  5 07:39:20 2016 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Tue Jan  5 08:27:02 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef032c29

sys-libs/libcxx: remove old

Package-Manager: portage-2.2.26
Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org>

 sys-libs/libcxx/Manifest                    |   6 -
 sys-libs/libcxx/libcxx-0.0_p20130725.ebuild | 168 ---------------------------
 sys-libs/libcxx/libcxx-0.0_p20131222.ebuild | 169 ---------------------------
 sys-libs/libcxx/libcxx-0.0_p20140322.ebuild | 169 ---------------------------
 sys-libs/libcxx/libcxx-3.6.0.ebuild         | 170 ----------------------------
 sys-libs/libcxx/libcxx-3.6.1.ebuild         | 170 ----------------------------
 sys-libs/libcxx/libcxx-3.6.2.ebuild         | 170 ----------------------------
 7 files changed, 1022 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ea3c237..39d0adb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1 @@
-DIST libcxx-0.0_p20130725.tar.xz 833240 SHA256 16428d2a493d2f833bc695300f4fc4e2bfd756fa4eb8e0b7696af10ff5e82653 SHA512 756cb089dc6514125b53623a410039c0edc2fb56a734b7faabee018e073adb96a30f7413546ba42fb40dd815697f27735fbbb6bbcce2e7dea10d284a3ed394d3 WHIRLPOOL 329817e70c27e13d37d75d3d15f0b49375e59d660d784b2e174b059046090a2514d7ddd39ac8fc917da784899f7d394842e73f7c81301d4fdf9add74d259f086
-DIST libcxx-0.0_p20131222.tar.xz 872416 SHA256 d77b7555daa368a493a71c99d9d5868706cc3a66a4e37e002a860733407d21ee SHA512 d4466a4e66365d38c552813f9d4be251bbc956ca0f2800dcd08b3d5633e6bd1a48601016e0e63a92cb4cd2f7863b31ece0ce9b68f2de2c76cf457a7093920fec WHIRLPOOL 07acd16939694e2cfc946f8f021a2b8a4d4ae40dfe2128273a6e0c76b9a2ac8d9f2e6347d091861219044674ea02b76caf80b3f55f74e8e504c58fe96b19eb91
-DIST libcxx-0.0_p20140322.tar.xz 879256 SHA256 b5eae28ced378349e4b7ec6f2e944d0630213462159a0bb2393dc82b536d77d8 SHA512 a80cc3b47acdc1de1a24f5aad19ed0b2518529fe6e8d56cbbe6801874ea334dabd6cec38c27cccbaec961de69b731e22462f0faae30f371e3acb8ecd1b46b2b4 WHIRLPOOL 9374e2b717a3a00f3046f06920775a31403e36ee9a6c5049e4a50173eae947c5e4641dafd178e459ab3caf6dcad6c99baf37cd5587ebf8a3e2d021e18ac36793
-DIST libcxx-3.6.0.src.tar.xz 946380 SHA256 299c1e82b0086a79c5c1aa1885ea3be3bbce6979aaa9b886409b14f9b387fbb7 SHA512 fe16d129a4e2429677a2b87aa2da27fcb5331d6335a0b819ea67de6498e82293bc13661602baafabb56a7f0a4e8f304d468088b8d3e0b5d1c0d01976f7cf3e92 WHIRLPOOL 527b4d1c54e5d76d0958c6d8ac622be4cb7b1a2feb3a9f2d2efa09564ab8d2f8f8cb15a536b8390f80c327dc8b86fee4fcc0b3d7c3771b11ca64885505fb449a
-DIST libcxx-3.6.1.src.tar.xz 943756 SHA256 5a5c653becf3978d4c4f6095708660855bed691210a9426bb839eecd88b6c0f9 SHA512 96d7700ef1c15327b68e8865c2294a3455f09e166991d4465c45bf870fe2d9ce4ddc9af1cd52b900a8a6a9f89c096b9ee1b2c2af58b550f7bc224505eb04d8ea WHIRLPOOL e7eba2d69d679198725147845d2e92631294b27ab2eb73bc057f6851bffbae941fb2570d66bdc28a7382b69d7dc87558e12b730f87a7e9a54f9d149eea1209c9
-DIST libcxx-3.6.2.src.tar.xz 944020 SHA256 52f3d452f48209c9df1792158fdbd7f3e98ed9bca8ebb51fcd524f67437c8b81 SHA512 1eb575921ca0d636c4b7ba21b3ad2c09468d779c69b3106ceefde294344cf20a48a03f9d38ea0db9f8b909f56f0fd1a56a255101305318e04d9f2d20af358ba6 WHIRLPOOL ec225d10cbfe3ca5eba2ed5f16ac6c19914ee75d71db2a1d8ca30f326c9fd5576899361f4397f2ee5d09dd3e8abaca82080c63e303b90d6f19f755465a11a065
 DIST libcxx-3.7.0.src.tar.xz 994580 SHA256 c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e SHA512 e71d04efa0fafab129a97ca6f4fd7b5f185258de7455c7a25d0964f459bc6068c69c5d67199f6d7cd3541bdce630106cbaf3b7099e4737dddbdd57c77a3fe054 WHIRLPOOL 26672e3f6e0772504e7ee174c37e5fc20079c730ac8bd0d2563d5415ca9589360aa3be42a8aac15eb5a63c69227bd4911aa822b158b9a35e3d74ec0d71bb1300

diff --git a/sys-libs/libcxx/libcxx-0.0_p20130725.ebuild b/sys-libs/libcxx/libcxx-0.0_p20130725.ebuild
deleted file mode 100644
index dde2eea..0000000
--- a/sys-libs/libcxx/libcxx-0.0_p20130725.ebuild
+++ /dev/null
@@ -1,168 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="mirror://gentoo/${P}.tar.xz"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm" \
-		./testit || die
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-0.0_p20131222.ebuild b/sys-libs/libcxx/libcxx-0.0_p20131222.ebuild
deleted file mode 100644
index 4ceb09f..0000000
--- a/sys-libs/libcxx/libcxx-0.0_p20131222.ebuild
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="mirror://gentoo/${P}.tar.xz"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-0.0_p20140322.ebuild b/sys-libs/libcxx/libcxx-0.0_p20140322.ebuild
deleted file mode 100644
index 4ceb09f..0000000
--- a/sys-libs/libcxx/libcxx-0.0_p20140322.ebuild
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="mirror://gentoo/${P}.tar.xz"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-3.6.0.ebuild b/sys-libs/libcxx/libcxx-3.6.0.ebuild
deleted file mode 100644
index 92689d8..0000000
--- a/sys-libs/libcxx/libcxx-3.6.0.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt +static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-3.6.1.ebuild b/sys-libs/libcxx/libcxx-3.6.1.ebuild
deleted file mode 100644
index 92689d8..0000000
--- a/sys-libs/libcxx/libcxx-3.6.1.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt +static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-3.6.2.ebuild b/sys-libs/libcxx/libcxx-3.6.2.ebuild
deleted file mode 100644
index 92689d8..0000000
--- a/sys-libs/libcxx/libcxx-3.6.2.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt +static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-03-10  9:46 Alexis Ballier
  0 siblings, 0 replies; 608+ messages in thread
From: Alexis Ballier @ 2016-03-10  9:46 UTC (permalink / raw
  To: gentoo-commits

commit:     d02b5e7adfc56c523276a271ac3abe6ab673426f
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 10 09:46:30 2016 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Thu Mar 10 09:46:30 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d02b5e7a

sys-libs/libcxx: bump to 3.8.0

Package-Manager: portage-2.2.27
Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-3.8.0.ebuild | 170 ++++++++++++++++++++++++++++++++++++
 2 files changed, 171 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 49261ca..c39b7c2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,2 +1,3 @@
 DIST libcxx-3.7.0.src.tar.xz 994580 SHA256 c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e SHA512 e71d04efa0fafab129a97ca6f4fd7b5f185258de7455c7a25d0964f459bc6068c69c5d67199f6d7cd3541bdce630106cbaf3b7099e4737dddbdd57c77a3fe054 WHIRLPOOL 26672e3f6e0772504e7ee174c37e5fc20079c730ac8bd0d2563d5415ca9589360aa3be42a8aac15eb5a63c69227bd4911aa822b158b9a35e3d74ec0d71bb1300
 DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d258aeebaab8b6a791201e6f7f144 SHA512 08d2399a8b36aa15290733256c896c9fa43f1a1223bc5c73bbcd014fddf8880e514d2a6dcc456bcf18b537c01fb6911b092e6d9958bccd8e64e9f375ed7a1ab9 WHIRLPOOL 19f77946abf48cbdd3e7ea21fd009ca3cc5f607dfe0512a44b102847044bb1d5ae4b16f503f18b14ebd9ea115256e87af07409907ba2a65f6061e217a502a359
+DIST libcxx-3.8.0.src.tar.xz 1062884 SHA256 36804511b940bc8a7cefc7cb391a6b28f5e3f53f6372965642020db91174237b SHA512 3a9f0c9b4b0c22757028800b28c5fd7b28fc79d0cbf33cad2087de493dc778c93f2df4b919f162638d883069f60a633f36ddc18d7da8ae00c6af409266a05e6b WHIRLPOOL 6f1328c8b220f91d15f6644e34dd74e3d204ee0ee56769df4442d14b884e31626a289e6ab5e7d075438c7527b2efde92763b362791914bcd18c269405c9c7c8e

diff --git a/sys-libs/libcxx/libcxx-3.8.0.ebuild b/sys-libs/libcxx/libcxx-3.8.0.ebuild
new file mode 100644
index 0000000..92689d8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-3.8.0.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
+
+[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
+
+inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+if [ "${PV%9999}" = "${PV}" ] ; then
+	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [ "${PV%9999}" = "${PV}" ] ; then
+	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc +libcxxrt +static-libs test"
+
+RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
+DEPEND="${RDEPEND}
+	test? ( sys-devel/clang )
+	app-arch/xz-utils"
+
+DOCS=( CREDITS.TXT )
+
+pkg_setup() {
+	if ! use libcxxrt ; then
+		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
+		ewarn "libsupc++. Please note that this is not well supported."
+		ewarn "In particular, static linking will not work."
+	fi
+	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
+		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
+		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
+		die
+	fi
+}
+
+src_prepare() {
+	cp -f "${FILESDIR}/Makefile" lib/ || die
+	multilib_copy_sources
+}
+
+src_configure() {
+	export LIBS="-lpthread -lrt -lc -lgcc_s"
+	if use libcxxrt ; then
+		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
+		LIBS="-lcxxrt ${LIBS}"
+		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
+	else
+		# Very hackish, see $HOMEPAGE
+		# If someone has a clever idea, please share it!
+		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
+		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
+		append-cppflags -D__GLIBCXX__ ${includes}
+		LIBS="-lsupc++ ${LIBS}"
+		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
+		for i in ${libsupcxx_includes} ; do
+			local found=""
+			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
+			for j in ${libcxx_gcc_dirs} ; do
+				if [ -f "${j}/${i}" ] ; then
+					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
+					found=yes
+				fi
+			done
+			[ -n "${found}" ] || die "Header not found: ${i}"
+		done
+	fi
+
+	tc-export AR CC CXX
+
+	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
+}
+
+multilib_src_compile() {
+	cd "${BUILD_DIR}/lib" || die
+	emake shared
+	use static-libs && emake static
+}
+
+# Tests fail for now, if anybody is able to fix them, help is very welcome.
+multilib_src_test() {
+	cd "${BUILD_DIR}/test"
+	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
+		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
+		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
+		SOURCE_LIB="-L${BUILD_DIR}/lib" \
+		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
+		./testit || die
+	# TODO: fix link against libsupc++
+}
+
+# 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() {
+	if use libcxxrt ; then
+		# Move it first.
+		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
+		# On Linux/glibc it does not link without libpthread or libdl. It is
+		# fine on FreeBSD.
+		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
+
+		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
+	fi
+	# TODO: Generate a libc++.a ldscript when building against libsupc++
+}
+
+gen_shared_ldscript() {
+	if use libcxxrt ; then
+		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
+		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
+		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
+	fi
+	# TODO: Generate the linker script for other confiurations too.
+}
+
+multilib_src_install() {
+	cd "${BUILD_DIR}/lib"
+	if use static-libs ; then
+		dolib.a libc++.a
+		gen_static_ldscript
+	fi
+	dolib.so libc++.so*
+	gen_shared_ldscript
+}
+
+multilib_src_install_all() {
+	einstalldocs
+	insinto /usr/include/c++/v1
+	doins -r include/*
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-08-01 22:05 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-08-01 22:05 UTC (permalink / raw
  To: gentoo-commits

commit:     b2f49c60138863df29aead80ce7252b44b1debd1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  1 21:48:11 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Aug  1 21:49:26 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2f49c60

sys-libs/libcxx: Add myself as co-maintainer

 sys-libs/libcxx/metadata.xml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index cd53c38..c3db08d 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -11,6 +11,10 @@
     <email>bsd@gentoo.org</email>
     <name>BSD Project</name>
   </maintainer>
+  <maintainer type="person">
+    <email>mgorny@gentoo.org</email>
+    <name>Michał Górny</name>
+  </maintainer>
   <use>
 	  <flag name="libcxxrt">Build on top of <pkg>sys-libs/libcxxrt</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
 	  <flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-03  8:51 Alexis Ballier
  0 siblings, 0 replies; 608+ messages in thread
From: Alexis Ballier @ 2016-10-03  8:51 UTC (permalink / raw
  To: gentoo-commits

commit:     bef68cdcc80c0577b35b8ff038320389477b15f8
Author:     Lei Zhang <zhanglei.april <AT> gmail <DOT> com>
AuthorDate: Sun Sep  4 11:00:27 2016 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Mon Oct  3 08:51:19 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bef68cdc

sys-libs/libcxx: update maintainers in metadata

 sys-libs/libcxx/metadata.xml | 34 ++++++++++++++++------------------
 1 file changed, 16 insertions(+), 18 deletions(-)

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index c3db08d..bcb4744 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -1,22 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <!-- BSD is here because the plan is to have libc++ as the standard C++
-	   library with clang. A llvm herd would make a lot of sense here too -->
-  <maintainer type="person">
-    <email>aballier@gentoo.org</email>
-    <name>Alexis Ballier</name>
-  </maintainer>
-  <maintainer type="project">
-    <email>bsd@gentoo.org</email>
-    <name>BSD Project</name>
-  </maintainer>
-  <maintainer type="person">
-    <email>mgorny@gentoo.org</email>
-    <name>Michał Górny</name>
-  </maintainer>
-  <use>
-	  <flag name="libcxxrt">Build on top of <pkg>sys-libs/libcxxrt</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
-	  <flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>
-  </use>
+	<maintainer type="person">
+		<email>aballier@gentoo.org</email>
+		<name>Alexis Ballier</name>
+	</maintainer>
+	<maintainer type="project">
+		<email>bsd@gentoo.org</email>
+		<name>BSD Project</name>
+	</maintainer>
+	<maintainer type="project">
+		<email>llvm@gentoo.org</email>
+		<name>LLVM Project</name>
+	</maintainer>
+	<use>
+		<flag name="libcxxrt">Build on top of <pkg>sys-libs/libcxxrt</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
+		<flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>
+	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-03 12:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-03 12:00 UTC (permalink / raw
  To: gentoo-commits

commit:     7e4620701ae0f56afb758bbe417e91e4d1b49e79
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  3 11:50:59 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  3 11:56:28 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e462070

sys-libs/libcxx: Use CMake files from native LLVM build

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 12 ++++++++++--
 sys-libs/libcxx/libcxx-9999.ebuild  | 12 ++++++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index 25e0b69..d466c0f 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -46,7 +46,7 @@ DEPEND="${RDEPEND}
 	test? ( sys-devel/clang[${MULTILIB_USEDEP}]
 		${PYTHON_DEPS} )
 	app-arch/xz-utils
-	>=sys-devel/llvm-3.9.0[${MULTILIB_USEDEP}]"
+	>=sys-devel/llvm-3.9.0"
 
 DOCS=( CREDITS.TXT )
 
@@ -94,6 +94,11 @@ src_unpack() {
 	git-r3_checkout
 }
 
+src_configure() {
+	NATIVE_LIBDIR=$(get_libdir)
+	cmake-multilib_src_configure
+}
+
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxrt; then
@@ -107,7 +112,10 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
-		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+		# LLVM_LIBDIR_SUFFIX is used to find CMake files
+		# and we are happy to use the native set
+		-DLLVM_LIBDIR_SUFFIX=${NATIVE_LIBDIR#lib}
+		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
 		-DLIBCXX_ENABLE_SHARED=ON
 		-DLIBCXX_ENABLE_STATIC=$(usex static-libs)
 		-DLIBCXX_CXX_ABI=${cxxabi}

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index dc867aa..7f444c7 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -46,7 +46,7 @@ DEPEND="${RDEPEND}
 	test? ( sys-devel/clang[${MULTILIB_USEDEP}]
 		${PYTHON_DEPS} )
 	app-arch/xz-utils
-	>=sys-devel/llvm-3.9.0[${MULTILIB_USEDEP}]"
+	>=sys-devel/llvm-3.9.0"
 
 DOCS=( CREDITS.TXT )
 
@@ -90,6 +90,11 @@ src_unpack() {
 	git-r3_checkout
 }
 
+src_configure() {
+	NATIVE_LIBDIR=$(get_libdir)
+	cmake-multilib_src_configure
+}
+
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxrt; then
@@ -103,7 +108,10 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
-		-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+		# LLVM_LIBDIR_SUFFIX is used to find CMake files
+		# and we are happy to use the native set
+		-DLLVM_LIBDIR_SUFFIX=${NATIVE_LIBDIR#lib}
+		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
 		-DLIBCXX_ENABLE_SHARED=ON
 		-DLIBCXX_ENABLE_STATIC=$(usex static-libs)
 		-DLIBCXX_CXX_ABI=${cxxabi}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-03 12:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-03 12:47 UTC (permalink / raw
  To: gentoo-commits

commit:     983ab306d43d2cd82b32ef3880b81b0bae2b5ac2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  3 12:45:41 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  3 12:47:37 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=983ab306

sys-libs/libcxx: Dep on >=clang-3.9.0 for target symlinks

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 4 +++-
 sys-libs/libcxx/libcxx-9999.ebuild  | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index d466c0f..a559476 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -42,8 +42,10 @@ RDEPEND="libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP
 	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
 # llvm-3.9.0 needed because its cmake files installation path changed, which is
 # needed by libcxx
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
-	test? ( sys-devel/clang[${MULTILIB_USEDEP}]
+	test? ( >=sys-devel/clang-3.9.0
 		${PYTHON_DEPS} )
 	app-arch/xz-utils
 	>=sys-devel/llvm-3.9.0"

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 7f444c7..9092652 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -42,8 +42,10 @@ RDEPEND="libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP
 	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
 # llvm-3.9.0 needed because its cmake files installation path changed, which is
 # needed by libcxx
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
-	test? ( sys-devel/clang[${MULTILIB_USEDEP}]
+	test? ( >=sys-devel/clang-3.9.0
 		${PYTHON_DEPS} )
 	app-arch/xz-utils
 	>=sys-devel/llvm-3.9.0"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-05 13:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-05 13:38 UTC (permalink / raw
  To: gentoo-commits

commit:     1c22c625648953957c1c8c6b0ec9f1db89612fdb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  3 13:02:18 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  5 13:38:10 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c22c625

sys-libs/libcxx: Support sys-libs/libcxxabi

 sys-libs/libcxx/libcxx-9999.ebuild | 24 +++++++++++++++---------
 sys-libs/libcxx/metadata.xml       |  1 +
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 9092652..6d0328d 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -35,11 +35,14 @@ if [[ ${PV} != 9999 ]] ; then
 else
 	KEYWORDS=""
 fi
-IUSE="elibc_glibc elibc_musl +libcxxrt libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxrt )"
-
-RDEPEND="libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
+IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( sys-libs/libcxxabi[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
 # llvm-3.9.0 needed because its cmake files installation path changed, which is
 # needed by libcxx
 # clang-3.9.0 installs necessary target symlinks unconditionally
@@ -61,7 +64,7 @@ PATCHES=(
 pkg_setup() {
 	use test && python_setup
 
-	if ! use libcxxrt && ! tc-is-gcc ; then
+	if ! use libcxxabi && ! use libcxxrt && ! 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."
@@ -99,7 +102,10 @@ src_configure() {
 
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
-	if use libcxxrt; then
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
 		cxxabi=libcxxrt
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
 	else
@@ -159,7 +165,7 @@ END_LDSCRIPT
 
 gen_static_ldscript() {
 	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxrt "libcxxrt.a" "libsupc++.a")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
 
 	# Move it first.
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
@@ -178,7 +184,7 @@ gen_static_ldscript() {
 gen_shared_ldscript() {
 	local libdir=$(get_libdir)
 	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxrt "libcxxrt.so" "libsupc++.a")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
 	local deps="libc++_shared.so ${cxxabi_lib}"

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index bcb4744..df0c52d 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -14,6 +14,7 @@
 		<name>LLVM Project</name>
 	</maintainer>
 	<use>
+		<flag name="libcxxabi">Build on top of <pkg>sys-libs/libcxxabi</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
 		<flag name="libcxxrt">Build on top of <pkg>sys-libs/libcxxrt</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
 		<flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>
 	</use>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-05 13:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-05 13:38 UTC (permalink / raw
  To: gentoo-commits

commit:     692417fccb61e9aaac344f9d3486d9859b4ba909
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  3 11:00:59 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  5 13:38:11 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=692417fc

sys-libs/libcxx: Run tests without LLVM sources

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 34 ++++++++++------------------------
 sys-libs/libcxx/libcxx-9999.ebuild  | 35 +++++++++++------------------------
 2 files changed, 21 insertions(+), 48 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index a559476..110038b 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -19,13 +19,10 @@ inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="http://libcxx.llvm.org/"
 if [[ ${PV} != 9999 ]] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
-		test? ( http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.xz )"
+	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
-	LLVM_S="${WORKDIR}/llvm-${PV}.src"
 else
 	SRC_URI=""
-	LLVM_S="${WORKDIR}/llvm"
 fi
 
 LICENSE="|| ( UoI-NCSA MIT )"
@@ -46,7 +43,7 @@ RDEPEND="libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
 	test? ( >=sys-devel/clang-3.9.0
-		${PYTHON_DEPS} )
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
 	app-arch/xz-utils
 	>=sys-devel/llvm-3.9.0"
 
@@ -62,8 +59,12 @@ PATCHES=(
 	"${FILESDIR}/${PN}-3.9-cmake-static-lib.patch"
 )
 
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
 pkg_setup() {
-	use test && python_setup
+	use test && python-any-r1_pkg_setup
 
 	if ! use libcxxrt && ! tc-is-gcc ; then
 		eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
@@ -79,23 +80,6 @@ pkg_setup() {
 	fi
 }
 
-src_unpack() {
-	[[ ${PV} != 9999 ]] && default && return
-
-	if use test; then
-		# needed for tests
-		git-r3_fetch "http://llvm.org/git/llvm.git
-			https://github.com/llvm-mirror/llvm.git"
-	fi
-	git-r3_fetch
-
-	if use test; then
-		git-r3_checkout http://llvm.org/git/llvm.git \
-			"${WORKDIR}"/llvm
-	fi
-	git-r3_checkout
-}
-
 src_configure() {
 	NATIVE_LIBDIR=$(get_libdir)
 	cmake-multilib_src_configure
@@ -131,7 +115,9 @@ multilib_src_configure() {
 	)
 	if use test; then
 		mycmakeargs+=(
-			-DLLVM_MAIN_SRC_DIR=${LLVM_S}
+			# this can be any directory, it just needs to exist...
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
 		)
 	fi
 	cmake-utils_src_configure

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 6d0328d..401a8ea 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -19,13 +19,10 @@ inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="http://libcxx.llvm.org/"
 if [[ ${PV} != 9999 ]] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
-		test? ( http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.xz )"
+	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
-	LLVM_S="${WORKDIR}/llvm-${PV}.src"
 else
 	SRC_URI=""
-	LLVM_S="${WORKDIR}/llvm"
 fi
 
 LICENSE="|| ( UoI-NCSA MIT )"
@@ -49,7 +46,7 @@ RDEPEND="
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
 	test? ( >=sys-devel/clang-3.9.0
-		${PYTHON_DEPS} )
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
 	app-arch/xz-utils
 	>=sys-devel/llvm-3.9.0"
 
@@ -61,8 +58,12 @@ PATCHES=(
 	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 )
 
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
 pkg_setup() {
-	use test && python_setup
+	use test && python-any-r1_pkg_setup
 
 	if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then
 		eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
@@ -78,23 +79,6 @@ pkg_setup() {
 	fi
 }
 
-src_unpack() {
-	[[ ${PV} != 9999 ]] && default && return
-
-	if use test; then
-		# needed for tests
-		git-r3_fetch "http://llvm.org/git/llvm.git
-			https://github.com/llvm-mirror/llvm.git"
-	fi
-	git-r3_fetch
-
-	if use test; then
-		git-r3_checkout http://llvm.org/git/llvm.git \
-			"${WORKDIR}"/llvm
-	fi
-	git-r3_checkout
-}
-
 src_configure() {
 	NATIVE_LIBDIR=$(get_libdir)
 	cmake-multilib_src_configure
@@ -133,7 +117,10 @@ multilib_src_configure() {
 	)
 	if use test; then
 		mycmakeargs+=(
-			-DLLVM_MAIN_SRC_DIR=${LLVM_S}
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
 		)
 	fi
 	cmake-utils_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-05 14:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-05 14:12 UTC (permalink / raw
  To: gentoo-commits

commit:     b2035afd5e876bbad76675ac43d89a1e88a99555
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  5 14:11:50 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  5 14:12:48 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2035afd

sys-libs/libcxx: Require matching libcxxabi version

 sys-libs/libcxx/libcxx-9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 401a8ea..a5e7c7f 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -37,7 +37,7 @@ REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
 
 RDEPEND="
-	libcxxabi? ( sys-libs/libcxxabi[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
 # llvm-3.9.0 needed because its cmake files installation path changed, which is


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-05 14:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-05 14:12 UTC (permalink / raw
  To: gentoo-commits

commit:     abb85edb75ac30ebab145053874824529fabb5fd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  5 14:11:15 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  5 14:12:39 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=abb85edb

sys-libs/libcxx: Kill spurious digest for llvm-*

 sys-libs/libcxx/Manifest | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d6884e0..fd7976e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,3 @@ DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d2
 DIST libcxx-3.8.0.src.tar.xz 1062884 SHA256 36804511b940bc8a7cefc7cb391a6b28f5e3f53f6372965642020db91174237b SHA512 3a9f0c9b4b0c22757028800b28c5fd7b28fc79d0cbf33cad2087de493dc778c93f2df4b919f162638d883069f60a633f36ddc18d7da8ae00c6af409266a05e6b WHIRLPOOL 6f1328c8b220f91d15f6644e34dd74e3d204ee0ee56769df4442d14b884e31626a289e6ab5e7d075438c7527b2efde92763b362791914bcd18c269405c9c7c8e
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
-DIST llvm-3.9.0.src.tar.xz 18235716 SHA256 66c73179da42cee1386371641241f79ded250e117a79f571bbd69e56daa48948 SHA512 f18ae32531218ab156c3e56c11826be0fd05f0799c82eaf2e6a043b38e1277560b4d921987513b88b11d97ea2619feaf277eec72181dd2ae4f4108c2836bf7b2 WHIRLPOOL a36c1bcee6e7995067a9a7a51e3fdb0f10d51d0239250eefab92ed2e46b024a203fa10a17a25a5aca69046bcb413628e288427f1a6690d0862e07cd95694c8a8


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-05 14:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-05 14:46 UTC (permalink / raw
  To: gentoo-commits

commit:     f24f51ecacae2848e95c0fefedfd91708d53c564
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  5 14:14:55 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  5 14:46:45 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f24f51ec

sys-libs/libcxx: Backport libcxxabi support to 3.9.0

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index 110038b..656a979 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -32,11 +32,14 @@ if [[ ${PV} != 9999 ]] ; then
 else
 	KEYWORDS=""
 fi
-IUSE="elibc_glibc elibc_musl +libcxxrt libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxrt )"
-
-RDEPEND="libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
+IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
 # llvm-3.9.0 needed because its cmake files installation path changed, which is
 # needed by libcxx
 # clang-3.9.0 installs necessary target symlinks unconditionally
@@ -66,7 +69,7 @@ python_check_deps() {
 pkg_setup() {
 	use test && python-any-r1_pkg_setup
 
-	if ! use libcxxrt && ! tc-is-gcc ; then
+	if ! use libcxxabi && ! use libcxxrt && ! 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."
@@ -87,7 +90,10 @@ src_configure() {
 
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
-	if use libcxxrt; then
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
 		cxxabi=libcxxrt
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
 	else
@@ -149,7 +155,7 @@ END_LDSCRIPT
 
 gen_static_ldscript() {
 	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxrt "libcxxrt.a" "libsupc++.a")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
 
 	# Move it first.
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
@@ -168,7 +174,7 @@ gen_static_ldscript() {
 gen_shared_ldscript() {
 	local libdir=$(get_libdir)
 	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxrt "libcxxrt.so" "libsupc++.a")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
 	local deps="libc++_shared.so ${cxxabi_lib}"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-07  8:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-07  8:41 UTC (permalink / raw
  To: gentoo-commits

commit:     f9dd98ec5f9aaf196319a0527d0312d18f2430a2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  6 16:27:40 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  7 08:41:24 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9dd98ec

sys-libs/libcxx: Always pass compiler runtime libs

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 27 +++++++++++++++++++++++++--
 sys-libs/libcxx/libcxx-9999.ebuild  | 27 +++++++++++++++++++++++++--
 2 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index a92f0f8..7f16bd2 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -102,6 +102,28 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
 		# LLVM_LIBDIR_SUFFIX is used to find CMake files
@@ -115,10 +137,11 @@ multilib_src_configure() {
 		# we're using our own mechanism for generating linker scripts
 		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
-		-DLIBCXX_HAS_GCC_S_LIB=$(usex !libunwind)
+		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS=$(usex libunwind "-lunwind" "")
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
+
 	if use test; then
 		mycmakeargs+=(
 			# this can be any directory, it just needs to exist...

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index bbc218b..3beacf0 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -98,6 +98,28 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
 		# LLVM_LIBDIR_SUFFIX is used to find CMake files
@@ -111,10 +133,11 @@ multilib_src_configure() {
 		# we're using our own mechanism for generating linker scripts
 		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
-		-DLIBCXX_HAS_GCC_S_LIB=$(usex !libunwind)
+		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS=$(usex libunwind "-lunwind" "")
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
+
 	if use test; then
 		mycmakeargs+=(
 			# this can be any directory, it just needs to exist...


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-10-07  8:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-10-07  8:41 UTC (permalink / raw
  To: gentoo-commits

commit:     5d5f3ac1f6d24c6893be04c9f1637a408b62c713
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  6 15:19:42 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  7 08:41:21 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d5f3ac1

sys-libs/libcxx: Fix ldscripts to include gcc EH lib for USE=-unwind

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 7 ++-----
 sys-libs/libcxx/libcxx-9999.ebuild  | 7 ++-----
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index 656a979..a92f0f8 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -161,12 +161,10 @@ gen_static_ldscript() {
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib}"
+	local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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"
-	# unlike libgcc_s, libunwind is not implicitly linked
-	use libunwind && deps+=" libunwind.a"
 
 	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die
 }
@@ -177,8 +175,7 @@ gen_shared_ldscript() {
 	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib}"
-	use libunwind && deps+=" libunwind.so"
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
 
 	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
 }

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index a5e7c7f..bbc218b 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -158,12 +158,10 @@ gen_static_ldscript() {
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib}"
+	local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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"
-	# unlike libgcc_s, libunwind is not implicitly linked
-	use libunwind && deps+=" libunwind.a"
 
 	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die
 }
@@ -174,8 +172,7 @@ gen_shared_ldscript() {
 	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib}"
-	use libunwind && deps+=" libunwind.so"
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
 
 	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
 }


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-11-12 10:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-11-12 10:50 UTC (permalink / raw
  To: gentoo-commits

commit:     57ce4a9665487077655302098d4a6e49d46a2bf4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 12 09:24:17 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 12 10:50:46 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57ce4a96

sys-libs/libcxx: Drop a few old versions

 sys-libs/libcxx/Manifest            |   2 -
 sys-libs/libcxx/libcxx-3.7.0.ebuild | 170 ------------------------------------
 sys-libs/libcxx/libcxx-3.8.0.ebuild | 170 ------------------------------------
 3 files changed, 342 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index fd7976e..0e09dde 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,3 @@
-DIST libcxx-3.7.0.src.tar.xz 994580 SHA256 c18f3c8333cd7e678c1424a57fe5e25efe740ca7caf62ac67152b4723f3ad08e SHA512 e71d04efa0fafab129a97ca6f4fd7b5f185258de7455c7a25d0964f459bc6068c69c5d67199f6d7cd3541bdce630106cbaf3b7099e4737dddbdd57c77a3fe054 WHIRLPOOL 26672e3f6e0772504e7ee174c37e5fc20079c730ac8bd0d2563d5415ca9589360aa3be42a8aac15eb5a63c69227bd4911aa822b158b9a35e3d74ec0d71bb1300
 DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d258aeebaab8b6a791201e6f7f144 SHA512 08d2399a8b36aa15290733256c896c9fa43f1a1223bc5c73bbcd014fddf8880e514d2a6dcc456bcf18b537c01fb6911b092e6d9958bccd8e64e9f375ed7a1ab9 WHIRLPOOL 19f77946abf48cbdd3e7ea21fd009ca3cc5f607dfe0512a44b102847044bb1d5ae4b16f503f18b14ebd9ea115256e87af07409907ba2a65f6061e217a502a359
-DIST libcxx-3.8.0.src.tar.xz 1062884 SHA256 36804511b940bc8a7cefc7cb391a6b28f5e3f53f6372965642020db91174237b SHA512 3a9f0c9b4b0c22757028800b28c5fd7b28fc79d0cbf33cad2087de493dc778c93f2df4b919f162638d883069f60a633f36ddc18d7da8ae00c6af409266a05e6b WHIRLPOOL 6f1328c8b220f91d15f6644e34dd74e3d204ee0ee56769df4442d14b884e31626a289e6ab5e7d075438c7527b2efde92763b362791914bcd18c269405c9c7c8e
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a

diff --git a/sys-libs/libcxx/libcxx-3.7.0.ebuild b/sys-libs/libcxx/libcxx-3.7.0.ebuild
deleted file mode 100644
index 92689d8..00000000
--- a/sys-libs/libcxx/libcxx-3.7.0.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt +static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-3.8.0.ebuild b/sys-libs/libcxx/libcxx-3.8.0.ebuild
deleted file mode 100644
index 92689d8..00000000
--- a/sys-libs/libcxx/libcxx-3.8.0.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
-
-[ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
-
-inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc +libcxxrt +static-libs test"
-
-RDEPEND="libcxxrt? ( >=sys-libs/libcxxrt-0.0_p20130725[static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
-DEPEND="${RDEPEND}
-	test? ( sys-devel/clang )
-	app-arch/xz-utils"
-
-DOCS=( CREDITS.TXT )
-
-pkg_setup() {
-	if ! use libcxxrt ; then
-		ewarn "You have disabled USE=libcxxrt. This will build ${PN} against"
-		ewarn "libsupc++. Please note that this is not well supported."
-		ewarn "In particular, static linking will not work."
-	fi
-	if [[ $(gcc-version) < 4.7 ]] && [[ $(tc-getCXX) != *clang++* ]] ; then
-		eerror "${PN} needs to be built with clang++ or gcc-4.7 or later."
-		eerror "Please use gcc-config to switch to gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_prepare() {
-	cp -f "${FILESDIR}/Makefile" lib/ || die
-	multilib_copy_sources
-}
-
-src_configure() {
-	export LIBS="-lpthread -lrt -lc -lgcc_s"
-	if use libcxxrt ; then
-		append-cppflags -DLIBCXXRT "-I${EPREFIX}/usr/include/libcxxrt/"
-		LIBS="-lcxxrt ${LIBS}"
-		cp "${EPREFIX}/usr/include/libcxxrt/"*.h "${S}/include"
-	else
-		# Very hackish, see $HOMEPAGE
-		# If someone has a clever idea, please share it!
-		local includes="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | sed -e 's/^ /-I/' | tr '\n' ' ')"
-		local libcxx_gcc_dirs="$(echo | ${CHOST}-g++ -Wp,-v -x c++ - -fsyntax-only 2>&1 | grep -C 2 '#include.*<...>' | tail -n 2 | tr '\n' ' ')"
-		append-cppflags -D__GLIBCXX__ ${includes}
-		LIBS="-lsupc++ ${LIBS}"
-		local libsupcxx_includes="cxxabi.h bits/c++config.h bits/os_defines.h bits/cpu_defines.h bits/cxxabi_tweaks.h bits/cxxabi_forced.h"
-		for i in ${libsupcxx_includes} ; do
-			local found=""
-			[ -d "${S}/include/$(dirname ${i})/" ] || mkdir -p "${S}/include/$(dirname ${i})"
-			for j in ${libcxx_gcc_dirs} ; do
-				if [ -f "${j}/${i}" ] ; then
-					cp "${j}/${i}" "${S}/include/$(dirname ${i})/" || die
-					found=yes
-				fi
-			done
-			[ -n "${found}" ] || die "Header not found: ${i}"
-		done
-	fi
-
-	tc-export AR CC CXX
-
-	append-ldflags "-Wl,-z,defs" # make sure we are not underlinked
-}
-
-multilib_src_compile() {
-	cd "${BUILD_DIR}/lib" || die
-	emake shared
-	use static-libs && emake static
-}
-
-# Tests fail for now, if anybody is able to fix them, help is very welcome.
-multilib_src_test() {
-	cd "${BUILD_DIR}/test"
-	LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" \
-		CC="clang++ $(get_abi_CFLAGS) ${CXXFLAGS}" \
-		HEADER_INCLUDE="-I${BUILD_DIR}/include" \
-		SOURCE_LIB="-L${BUILD_DIR}/lib" \
-		LIBS="-lm $(usex libcxxrt -lcxxrt "")" \
-		./testit || die
-	# TODO: fix link against libsupc++
-}
-
-# 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() {
-	if use libcxxrt ; then
-		# Move it first.
-		mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_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="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
-		# On Linux/glibc it does not link without libpthread or libdl. It is
-		# fine on FreeBSD.
-		use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
-
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
-	fi
-	# TODO: Generate a libc++.a ldscript when building against libsupc++
-}
-
-gen_shared_ldscript() {
-	if use libcxxrt ; then
-		mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
-		local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
-		gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
-	fi
-	# TODO: Generate the linker script for other confiurations too.
-}
-
-multilib_src_install() {
-	cd "${BUILD_DIR}/lib"
-	if use static-libs ; then
-		dolib.a libc++.a
-		gen_static_ldscript
-	fi
-	dolib.so libc++.so*
-	gen_shared_ldscript
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	insinto /usr/include/c++/v1
-	doins -r include/*
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2016-12-21 21:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2016-12-21 21:01 UTC (permalink / raw
  To: gentoo-commits

commit:     dbcb04b9833e6a2f6baa328d0fac574ba5524060
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 21 16:11:42 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Dec 21 21:01:10 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbcb04b9

sys-libs/libcxx: Bump to 3.9.1

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-3.9.1.ebuild | 218 ++++++++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0e09dde..53e06fe 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d258aeebaab8b6a791201e6f7f144 SHA512 08d2399a8b36aa15290733256c896c9fa43f1a1223bc5c73bbcd014fddf8880e514d2a6dcc456bcf18b537c01fb6911b092e6d9958bccd8e64e9f375ed7a1ab9 WHIRLPOOL 19f77946abf48cbdd3e7ea21fd009ca3cc5f607dfe0512a44b102847044bb1d5ae4b16f503f18b14ebd9ea115256e87af07409907ba2a65f6061e217a502a359
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
+DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
new file mode 100644
index 00000000..7f16bd2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+EGIT_REPO_URI="http://llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+CMAKE_MIN_VERSION=3.4.3
+PYTHON_COMPAT=( python2_7 )
+
+[[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
+
+inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+if [[ ${PV} != 9999 ]] ; then
+	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [[ ${PV} != 9999 ]] ; then
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-3.9.0 needed because its cmake files installation path changed, which is
+# needed by libcxx
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-3.9.0"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# Back-port of https://reviews.llvm.org/D23232, allowing building both
+	# shared and static libs in one run.
+	"${FILESDIR}/${PN}-3.9-cmake-static-lib.patch"
+)
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+src_configure() {
+	NATIVE_LIBDIR=$(get_libdir)
+	cmake-multilib_src_configure
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		# LLVM_LIBDIR_SUFFIX is used to find CMake files
+		# and we are happy to use the native set
+		-DLLVM_LIBDIR_SUFFIX=${NATIVE_LIBDIR#lib}
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-01-01 16:32 Johannes Huber
  0 siblings, 0 replies; 608+ messages in thread
From: Johannes Huber @ 2017-01-01 16:32 UTC (permalink / raw
  To: gentoo-commits

commit:     99f561db09983fc6996cce55ad4bb61f27d6a5ad
Author:     Johannes Huber <johu <AT> gentoo <DOT> org>
AuthorDate: Sun Jan  1 16:28:51 2017 +0000
Commit:     Johannes Huber <johu <AT> gentoo <DOT> org>
CommitDate: Sun Jan  1 16:32:15 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=99f561db

sys-libs/libcxx: Drop CMAKE_MIN_VERSION

Covered by cmake-utils eclass now.

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 sys-libs/libcxx/libcxx-3.9.0.ebuild | 3 +--
 sys-libs/libcxx/libcxx-3.9.1.ebuild | 3 +--
 sys-libs/libcxx/libcxx-9999.ebuild  | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index 7f16bd2..57f3312 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -9,7 +9,6 @@ EAPI=6
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 EGIT_REPO_URI="http://llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
-CMAKE_MIN_VERSION=3.4.3
 PYTHON_COMPAT=( python2_7 )
 
 [[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
index 7f16bd2..57f3312 100644
--- a/sys-libs/libcxx/libcxx-3.9.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -9,7 +9,6 @@ EAPI=6
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 EGIT_REPO_URI="http://llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
-CMAKE_MIN_VERSION=3.4.3
 PYTHON_COMPAT=( python2_7 )
 
 [[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 3beacf0..4470d66 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -9,7 +9,6 @@ EAPI=6
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 EGIT_REPO_URI="http://llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
-CMAKE_MIN_VERSION=3.4.3
 PYTHON_COMPAT=( python2_7 )
 
 [[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-01-12 15:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-01-12 15:25 UTC (permalink / raw
  To: gentoo-commits

commit:     6bdc25f1471b7b49c739b70176289a91be9dbf1f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 12 10:56:13 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 12 15:25:32 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bdc25f1

sys-libs/libcxx: Switch to CMAKE_BUILD_TYPE=RelWithDebInfo

 sys-libs/libcxx/libcxx-9999.ebuild | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 4470d66..a5f89ac 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -7,6 +7,8 @@ EAPI=6
 # Ninja provides better scalability and cleaner verbose output, and is used
 # throughout all LLVM projects.
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
 EGIT_REPO_URI="http://llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
 PYTHON_COMPAT=( python2_7 )
@@ -57,6 +59,9 @@ PATCHES=(
 	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 )
 
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-01-15 14:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-01-15 14:31 UTC (permalink / raw
  To: gentoo-commits

commit:     7384151ea7963b2314524e6f92a122fcf7bf27f4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 15 14:14:04 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jan 15 14:31:01 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7384151e

sys-libs/libcxx: Remove unnecessary LLVM_LIBDIR_SUFFIX

 sys-libs/libcxx/libcxx-9999.ebuild | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index a5f89ac..c9030c1 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -41,15 +41,14 @@ RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-3.9.0 needed because its cmake files installation path changed, which is
-# needed by libcxx
+# LLVM 4 required for llvm-config --cmakedir
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
 	test? ( >=sys-devel/clang-3.9.0
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
 	app-arch/xz-utils
-	>=sys-devel/llvm-3.9.0"
+	>=sys-devel/llvm-4"
 
 DOCS=( CREDITS.TXT )
 
@@ -83,11 +82,6 @@ pkg_setup() {
 	fi
 }
 
-src_configure() {
-	NATIVE_LIBDIR=$(get_libdir)
-	cmake-multilib_src_configure
-}
-
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
@@ -126,9 +120,6 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
-		# LLVM_LIBDIR_SUFFIX is used to find CMake files
-		# and we are happy to use the native set
-		-DLLVM_LIBDIR_SUFFIX=${NATIVE_LIBDIR#lib}
 		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
 		-DLIBCXX_ENABLE_SHARED=ON
 		-DLIBCXX_ENABLE_STATIC=$(usex static-libs)


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-01-19  9:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-01-19  9:14 UTC (permalink / raw
  To: gentoo-commits

commit:     ec0b4b6fa7d5190ac26eb2ec074bbd18e8080688
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 19 09:10:43 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 19 09:14:09 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec0b4b6f

sys-libs/libcxx: Bump to 4.0.0rc1

 sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild | 201 ++++++++++++++++++++++++++++++++
 1 file changed, 201 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild
new file mode 100644
index 00000000..3fdd186
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit git-r3 cmake-multilib python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+SRC_URI=""
+EGIT_REPO_URI="http://llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_40"
+EGIT_COMMIT="39c36254e55627b5f94d37a453bf97fcd907cd38"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-01-24 19:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-01-24 19:08 UTC (permalink / raw
  To: gentoo-commits

commit:     d080513fdce8f842ec57e1c87d3a51dbe4c849c0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 24 18:39:55 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 24 19:07:57 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d080513f

sys-libs/libcxx: Switch 4.0.0rc1 to tarballs, add keywords

 sys-libs/libcxx/Manifest                |  1 +
 sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild | 12 +++++-------
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 53e06fe..56edb92 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,3 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d2
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
+DIST libcxx-4.0.0rc1.src.tar.xz 1451684 SHA256 f2a579ef30e59594a297b1f96f014e8c086c950456285023210044a08e6a26af SHA512 3227ff3cc6e92ba9693aa7d1fada9c2ceb7c1fe56eea04209a48c3696a86a813cb6e39d5698671263dd56d89f9594c7d78c6d1cc816a745d956e79fbedb07d54 WHIRLPOOL e935f3e347402571c30c2c8f0c9e6b3550463df858b38bb5b586c7556985759eb66b06cef4223fd9339d01519e93054e8bbaa5f3a520d0deb8ed7aece839f002

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild
index 3fdd186..8691f98 100644
--- a/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild
@@ -11,19 +11,15 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit git-r3 cmake-multilib python-any-r1 toolchain-funcs
+inherit cmake-multilib python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="http://libcxx.llvm.org/"
-SRC_URI=""
-EGIT_REPO_URI="http://llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_40"
-EGIT_COMMIT="39c36254e55627b5f94d37a453bf97fcd907cd38"
+SRC_URI="http://www.llvm.org/pre-releases/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
@@ -41,6 +37,8 @@ DEPEND="${RDEPEND}
 	app-arch/xz-utils
 	>=sys-devel/llvm-4"
 
+S=${WORKDIR}/${P/_/}.src
+
 DOCS=( CREDITS.TXT )
 
 PATCHES=(


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-02-15 12:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-02-15 12:47 UTC (permalink / raw
  To: gentoo-commits

commit:     80aa7cb0a444c7bfe19e28af9178cb573d5b8679
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 14 20:48:24 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 15 12:47:37 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80aa7cb0

sys-libs/libcxx: Bump to 4.0.0.rc2

 sys-libs/libcxx/Manifest                                             | 2 +-
 sys-libs/libcxx/{libcxx-4.0.0_rc1.ebuild => libcxx-4.0.0_rc2.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 56edb92166..2ba0cf2373 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d2
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
-DIST libcxx-4.0.0rc1.src.tar.xz 1451684 SHA256 f2a579ef30e59594a297b1f96f014e8c086c950456285023210044a08e6a26af SHA512 3227ff3cc6e92ba9693aa7d1fada9c2ceb7c1fe56eea04209a48c3696a86a813cb6e39d5698671263dd56d89f9594c7d78c6d1cc816a745d956e79fbedb07d54 WHIRLPOOL e935f3e347402571c30c2c8f0c9e6b3550463df858b38bb5b586c7556985759eb66b06cef4223fd9339d01519e93054e8bbaa5f3a520d0deb8ed7aece839f002
+DIST libcxx-4.0.0rc2.src.tar.xz 1452040 SHA256 d631c653c2b05b63683f62a9eea2b1284ce9ac49256f6a1744b462e7dca60c8c SHA512 e9252fcdaf039cc46a80cc79f22bce5fcd86dc4a3505a8756368d25be59cd9543fb41f1891f75054afb9fc1812483cf7ca45f45cf75df24b1b9f874db28c3988 WHIRLPOOL 9b194511f7a86c65125197a050b57b2a70c6a94cc10cc25ed1c23fcfa1b2a788bf7cfe17d0c5805c9604cb8a2618b0b49b5d4d2482c83d43dfbdc8f29951e8b7

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-4.0.0_rc2.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-4.0.0_rc1.ebuild
rename to sys-libs/libcxx/libcxx-4.0.0_rc2.ebuild


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-02-25  7:54 Markus Meier
  0 siblings, 0 replies; 608+ messages in thread
From: Markus Meier @ 2017-02-25  7:54 UTC (permalink / raw
  To: gentoo-commits

commit:     90c903703091d76b0a00178c83b90d7b26032185
Author:     Markus Meier <maekke <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 25 07:51:59 2017 +0000
Commit:     Markus Meier <maekke <AT> gentoo <DOT> org>
CommitDate: Sat Feb 25 07:51:59 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90c90370

sys-libs/libcxx: add ~arm64, bug #591822

Package-Manager: Portage-2.3.3, Repoman-2.3.1
RepoMan-Options: --include-arches="arm64"

 sys-libs/libcxx/libcxx-3.9.1.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
index 57f33122de..6ed9ab4c05 100644
--- a/sys-libs/libcxx/libcxx-3.9.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -27,9 +27,9 @@ fi
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 if [[ ${PV} != 9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+	KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
-	KEYWORDS=""
+	KEYWORDS="~arm64"
 fi
 IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-03-06 22:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-03-06 22:18 UTC (permalink / raw
  To: gentoo-commits

commit:     4d37c8701bd803fc1b96a7c0f69709b5e70a4375
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar  6 19:38:45 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar  6 22:18:22 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d37c870

sys-libs/libcxx: Bump to 4.0.0rc3

 sys-libs/libcxx/Manifest                                             | 2 +-
 sys-libs/libcxx/{libcxx-4.0.0_rc2.ebuild => libcxx-4.0.0_rc3.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2ba0cf23736..8ab56dae1e1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d2
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
-DIST libcxx-4.0.0rc2.src.tar.xz 1452040 SHA256 d631c653c2b05b63683f62a9eea2b1284ce9ac49256f6a1744b462e7dca60c8c SHA512 e9252fcdaf039cc46a80cc79f22bce5fcd86dc4a3505a8756368d25be59cd9543fb41f1891f75054afb9fc1812483cf7ca45f45cf75df24b1b9f874db28c3988 WHIRLPOOL 9b194511f7a86c65125197a050b57b2a70c6a94cc10cc25ed1c23fcfa1b2a788bf7cfe17d0c5805c9604cb8a2618b0b49b5d4d2482c83d43dfbdc8f29951e8b7
+DIST libcxx-4.0.0rc3.src.tar.xz 1452356 SHA256 836000ac3542fb5884f5aaa19a725721bc21d6af545482195e577fc62b5b8696 SHA512 c82df667b71110a7ecb8b2092481a645f02f7d0606040cc8789ef5b5f47bde4f26ed6ef78f09468abdc1e3c5f1cfde486d1499b3c617793864482cf7a9723d9a WHIRLPOOL 251ad814e4d9444092516fae8aa31124f9cfd0a410501c5a0ec41db6a35f2f4d3f35524446c46c390d041e1b58a6529d2962da3f0a898664cf1f36441c3c9734

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-4.0.0_rc2.ebuild
rename to sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-03-08 21:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-03-08 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     25f61afa3d356cb8fc035c06859f0fd82714b956
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 18:15:53 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  8 21:30:39 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25f61afa

sys-libs/libcxx: Enable libunwind by default

 sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild | 2 +-
 sys-libs/libcxx/libcxx-9999.ebuild      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
index 005b6fa9bdd..9dc98c29ec1 100644
--- a/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
@@ -19,7 +19,7 @@ SRC_URI="http://www.llvm.org/pre-releases/${PV/_//}/${P/_/}.src.tar.xz"
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
 

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 51878b61ee3..0f39966844b 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -32,7 +32,7 @@ if [[ ${PV} != 9999 ]] ; then
 else
 	KEYWORDS=""
 fi
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-03-08 21:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-03-08 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     3e61b7225053175b8427bc79c44c6fd2ab1e433b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 18:09:03 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  8 21:30:37 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e61b722

sys-libs/libcxx: Switch the default to libcxxabi following upstream

 sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild | 2 +-
 sys-libs/libcxx/libcxx-9999.ebuild      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
index afd7cbaf85b..005b6fa9bdd 100644
--- a/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
@@ -19,7 +19,7 @@ SRC_URI="http://www.llvm.org/pre-releases/${PV/_//}/${P/_/}.src.tar.xz"
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
 

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 1618ed8ba44..51878b61ee3 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -32,7 +32,7 @@ if [[ ${PV} != 9999 ]] ; then
 else
 	KEYWORDS=""
 fi
-IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-03-13 17:37 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-03-13 17:37 UTC (permalink / raw
  To: gentoo-commits

commit:     0cf54a0494597ad0ef9beffa9ede71d0d9164c79
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 13 17:14:13 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 13 17:37:34 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cf54a04

sys-libs/libcxx: Bump to 4.0.0 final

 sys-libs/libcxx/Manifest                                         | 2 +-
 sys-libs/libcxx/{libcxx-4.0.0_rc3.ebuild => libcxx-4.0.0.ebuild} | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8ab56dae1e1..02075e1b46f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d2
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
-DIST libcxx-4.0.0rc3.src.tar.xz 1452356 SHA256 836000ac3542fb5884f5aaa19a725721bc21d6af545482195e577fc62b5b8696 SHA512 c82df667b71110a7ecb8b2092481a645f02f7d0606040cc8789ef5b5f47bde4f26ed6ef78f09468abdc1e3c5f1cfde486d1499b3c617793864482cf7a9723d9a WHIRLPOOL 251ad814e4d9444092516fae8aa31124f9cfd0a410501c5a0ec41db6a35f2f4d3f35524446c46c390d041e1b58a6529d2962da3f0a898664cf1f36441c3c9734
+DIST libcxx-4.0.0.src.tar.xz 1450376 SHA256 4f4d33c4ad69bf9e360eebe6b29b7b19486948b1a41decf89d4adec12473cf96 SHA512 6dad794c00919955e14710def169cdcde8a1743431479e993c4a6a3c87c2fd9f5dbd6e17542e524981eed0783dce70384c356b74ef3c6d70598c6ff03454b1dd WHIRLPOOL 2c5074087e306d100c96ae5b7175e1e1792f0317c7be6231692c80423ec716732c08293fe14fe6da5cd52d8709d6ce0a240009df24e717ab0eb9093ac7679af7

diff --git a/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-4.0.0.ebuild
similarity index 98%
rename from sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
rename to sys-libs/libcxx/libcxx-4.0.0.ebuild
index 9dc98c29ec1..691e252ab02 100644
--- a/sys-libs/libcxx/libcxx-4.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.0.ebuild
@@ -14,7 +14,7 @@ inherit cmake-multilib python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="http://libcxx.llvm.org/"
-SRC_URI="http://www.llvm.org/pre-releases/${PV/_//}/${P/_/}.src.tar.xz"
+SRC_URI="http://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-03-14 22:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-03-14 22:22 UTC (permalink / raw
  To: gentoo-commits

commit:     aea339cafa2867e9aaaf06c3d89ead6d97939f24
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 14 22:03:52 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Mar 14 22:22:25 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aea339ca

sys-libs/libcxx: Use llvm.eclass for reliable upgrade from :0

 sys-libs/libcxx/libcxx-4.0.0.ebuild | 3 ++-
 sys-libs/libcxx/libcxx-9999.ebuild  | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-4.0.0.ebuild b/sys-libs/libcxx/libcxx-4.0.0.ebuild
index 691e252ab02..ce256df08e8 100644
--- a/sys-libs/libcxx/libcxx-4.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.0.ebuild
@@ -10,7 +10,7 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit cmake-multilib python-any-r1 toolchain-funcs
+inherit cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="http://libcxx.llvm.org/"
@@ -54,6 +54,7 @@ python_check_deps() {
 }
 
 pkg_setup() {
+	llvm_pkg_setup
 	use test && python-any-r1_pkg_setup
 
 	if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 0f39966844b..c063388b1ad 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -14,7 +14,7 @@ PYTHON_COMPAT=( python2_7 )
 
 [[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
 
-inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
+inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="http://libcxx.llvm.org/"
@@ -65,6 +65,7 @@ python_check_deps() {
 }
 
 pkg_setup() {
+	llvm_pkg_setup
 	use test && python-any-r1_pkg_setup
 
 	if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-04-02 18:01 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2017-04-02 18:01 UTC (permalink / raw
  To: gentoo-commits

commit:     c1eec390084113485025288de7bac0ad54c7cb3a
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  2 18:01:17 2017 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sun Apr  2 18:01:17 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1eec390

sys-libs/libcxx: amd64 stable wrt bug #607660

Package-Manager: Portage-2.3.3, Repoman-2.3.1
RepoMan-Options: --include-arches="amd64"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-3.9.1.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
index 90128fb84eb..bc29b1a2eea 100644
--- a/sys-libs/libcxx/libcxx-3.9.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -26,9 +26,9 @@ fi
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 if [[ ${PV} != 9999 ]] ; then
-	KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+	KEYWORDS="amd64 ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
-	KEYWORDS="~arm64"
+	KEYWORDS="amd64 ~arm64"
 fi
 IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-04-02 18:06 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2017-04-02 18:06 UTC (permalink / raw
  To: gentoo-commits

commit:     44d81e610ef839b33624129cd8605dfe642adcec
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  2 18:06:07 2017 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sun Apr  2 18:06:07 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44d81e61

sys-libs/libcxx: x86 stable wrt bug #607660

Package-Manager: Portage-2.3.3, Repoman-2.3.1
RepoMan-Options: --include-arches="x86"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-3.9.1.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
index bc29b1a2eea..8872bb9a666 100644
--- a/sys-libs/libcxx/libcxx-3.9.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -26,9 +26,9 @@ fi
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 if [[ ${PV} != 9999 ]] ; then
-	KEYWORDS="amd64 ~arm64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+	KEYWORDS="amd64 ~arm64 x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
-	KEYWORDS="amd64 ~arm64"
+	KEYWORDS="amd64 ~arm64 x86"
 fi
 IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-06-27 19:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-06-27 19:18 UTC (permalink / raw
  To: gentoo-commits

commit:     d98964c73596565cbab64a7689e2d5f95e6471fd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 26 14:48:12 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 27 19:18:02 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d98964c7

sys-libs/libcxx: Bump to 4.0.1

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-4.0.1.ebuild | 199 ++++++++++++++++++++++++++++++++++++
 2 files changed, 200 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 02075e1b46f..7a4869aee1d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,3 +3,4 @@ DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
 DIST libcxx-4.0.0.src.tar.xz 1450376 SHA256 4f4d33c4ad69bf9e360eebe6b29b7b19486948b1a41decf89d4adec12473cf96 SHA512 6dad794c00919955e14710def169cdcde8a1743431479e993c4a6a3c87c2fd9f5dbd6e17542e524981eed0783dce70384c356b74ef3c6d70598c6ff03454b1dd WHIRLPOOL 2c5074087e306d100c96ae5b7175e1e1792f0317c7be6231692c80423ec716732c08293fe14fe6da5cd52d8709d6ce0a240009df24e717ab0eb9093ac7679af7
+DIST libcxx-4.0.1.src.tar.xz 1446380 SHA256 520a1171f272c9ff82f324d5d89accadcec9bc9f3c78de11f5575cdb99accc4c SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a WHIRLPOOL fe7c71e8dc2d17d14e94896837229c5ed872e7c04aea79a207e8fa98aa4539a7445e402b848d0c0d009f154f00d970159ad009d16bfdb9ae012ce5c7c6d9ba51

diff --git a/sys-libs/libcxx/libcxx-4.0.1.ebuild b/sys-libs/libcxx/libcxx-4.0.1.ebuild
new file mode 100644
index 00000000000..ce256df08e8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-4.0.1.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="http://libcxx.llvm.org/"
+SRC_URI="http://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-07-08 23:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-07-08 23:18 UTC (permalink / raw
  To: gentoo-commits

commit:     426250090564492cb9c71248f985fdff6ce1b118
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul  8 19:11:55 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul  8 23:18:25 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42625009

sys-libs/libcxx: Update upstream git URI

 sys-libs/libcxx/libcxx-9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index c063388b1ad..5787fb5be57 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 # (needed due to CMAKE_BUILD_TYPE != Gentoo)
 CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="http://llvm.org/git/libcxx.git
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
 PYTHON_COMPAT=( python2_7 )
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-07-08 23:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-07-08 23:25 UTC (permalink / raw
  To: gentoo-commits

commit:     da99825c801829fc5199ae2819823d24ddbc106b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul  8 23:23:45 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul  8 23:25:10 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da99825c

sys-libs/libcxx: Use https for llvm.org

 sys-libs/libcxx/libcxx-3.7.1.ebuild | 6 +++---
 sys-libs/libcxx/libcxx-3.8.1.ebuild | 6 +++---
 sys-libs/libcxx/libcxx-3.9.0.ebuild | 6 +++---
 sys-libs/libcxx/libcxx-3.9.1.ebuild | 6 +++---
 sys-libs/libcxx/libcxx-4.0.0.ebuild | 4 ++--
 sys-libs/libcxx/libcxx-4.0.1.ebuild | 4 ++--
 sys-libs/libcxx/libcxx-9999.ebuild  | 4 ++--
 7 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.7.1.ebuild b/sys-libs/libcxx/libcxx-3.7.1.ebuild
index a608803e1f8..3535d3d9404 100644
--- a/sys-libs/libcxx/libcxx-3.7.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.7.1.ebuild
@@ -3,16 +3,16 @@
 
 EAPI=5
 
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
+ESVN_REPO_URI="https://llvm.org/svn/llvm-project/libcxx/trunk"
 
 [ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
 
 inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
+HOMEPAGE="https://libcxx.llvm.org/"
 if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
 	SRC_URI=""

diff --git a/sys-libs/libcxx/libcxx-3.8.1.ebuild b/sys-libs/libcxx/libcxx-3.8.1.ebuild
index 98b17e37d72..33c990ecd40 100644
--- a/sys-libs/libcxx/libcxx-3.8.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.8.1.ebuild
@@ -3,16 +3,16 @@
 
 EAPI=5
 
-ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk"
+ESVN_REPO_URI="https://llvm.org/svn/llvm-project/libcxx/trunk"
 
 [ "${PV%9999}" != "${PV}" ] && SCM="subversion" || SCM=""
 
 inherit ${SCM} flag-o-matic toolchain-funcs multilib multilib-minimal
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
+HOMEPAGE="https://libcxx.llvm.org/"
 if [ "${PV%9999}" = "${PV}" ] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
 	SRC_URI=""

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index d1d3852b1da..185bbc3d7be 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 # Ninja provides better scalability and cleaner verbose output, and is used
 # throughout all LLVM projects.
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-EGIT_REPO_URI="http://llvm.org/git/libcxx.git
+EGIT_REPO_URI="https://llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
 PYTHON_COMPAT=( python2_7 )
 
@@ -15,9 +15,9 @@ PYTHON_COMPAT=( python2_7 )
 inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
+HOMEPAGE="https://libcxx.llvm.org/"
 if [[ ${PV} != 9999 ]] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
 	SRC_URI=""

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
index 8872bb9a666..e847a9f5d31 100644
--- a/sys-libs/libcxx/libcxx-3.9.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 # Ninja provides better scalability and cleaner verbose output, and is used
 # throughout all LLVM projects.
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-EGIT_REPO_URI="http://llvm.org/git/libcxx.git
+EGIT_REPO_URI="https://llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
 PYTHON_COMPAT=( python2_7 )
 
@@ -15,9 +15,9 @@ PYTHON_COMPAT=( python2_7 )
 inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
+HOMEPAGE="https://libcxx.llvm.org/"
 if [[ ${PV} != 9999 ]] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
 	SRC_URI=""

diff --git a/sys-libs/libcxx/libcxx-4.0.0.ebuild b/sys-libs/libcxx/libcxx-4.0.0.ebuild
index ce256df08e8..43a14f9abb6 100644
--- a/sys-libs/libcxx/libcxx-4.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.0.ebuild
@@ -13,8 +13,8 @@ PYTHON_COMPAT=( python2_7 )
 inherit cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-SRC_URI="http://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"

diff --git a/sys-libs/libcxx/libcxx-4.0.1.ebuild b/sys-libs/libcxx/libcxx-4.0.1.ebuild
index ce256df08e8..43a14f9abb6 100644
--- a/sys-libs/libcxx/libcxx-4.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.1.ebuild
@@ -13,8 +13,8 @@ PYTHON_COMPAT=( python2_7 )
 inherit cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
-SRC_URI="http://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 5787fb5be57..3a1e5e5de31 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -17,9 +17,9 @@ PYTHON_COMPAT=( python2_7 )
 inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="http://libcxx.llvm.org/"
+HOMEPAGE="https://libcxx.llvm.org/"
 if [[ ${PV} != 9999 ]] ; then
-	SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
 	SRC_URI=""


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-07-24 19:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-07-24 19:04 UTC (permalink / raw
  To: gentoo-commits

commit:     d1cb94be51f9f1e5c844d984802d4a4e715c887c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 23 16:51:12 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul 24 19:03:49 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1cb94be

sys-libs/libcxx: Branch for 5.0.0 release

 sys-libs/libcxx/libcxx-5.0.9999.ebuild | 211 +++++++++++++++++++++++++++++++++
 1 file changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-5.0.9999.ebuild b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
new file mode 100644
index 00000000000..625b3568537
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_50"
+PYTHON_COMPAT=( python2_7 )
+
+[[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
+
+inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+if [[ ${PV} != 9999 ]] ; then
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [[ ${PV} != 9999 ]] ; then
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-07-24 19:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-07-24 19:13 UTC (permalink / raw
  To: gentoo-commits

commit:     8c3018050e4c58aca3483a23c69c0b4087b49427
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 24 19:13:37 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul 24 19:13:50 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c301805

sys-libs/libcxx: Fix live conditions in 5.0.9999

 sys-libs/libcxx/libcxx-5.0.9999.ebuild | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.9999.ebuild b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
index 625b3568537..fde85c23202 100644
--- a/sys-libs/libcxx/libcxx-5.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
@@ -13,13 +13,13 @@ EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
 EGIT_BRANCH="release_50"
 PYTHON_COMPAT=( python2_7 )
 
-[[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
+[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
 
 inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != 9999 ]] ; then
+if [[ ${PV} != *9999 ]] ; then
 	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
@@ -28,7 +28,7 @@ fi
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-if [[ ${PV} != 9999 ]] ; then
+if [[ ${PV} != *9999 ]] ; then
 	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
 	KEYWORDS=""


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-07-25  7:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-07-25  7:58 UTC (permalink / raw
  To: gentoo-commits

commit:     5c2aa4b1ec6916b9011e74a78b0ebdce1bfc52a9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 25 07:54:43 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 25 07:57:47 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c2aa4b1

sys-libs/libcxx: Clean old up

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-4.0.0.ebuild | 199 ------------------------------------
 2 files changed, 200 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7a4869aee1d..36f26730bf4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,5 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 SHA256 357fbd4288ce99733ba06ae2bec6f503413d2
 DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2 WHIRLPOOL a729c44060972edee79b0019fd4c6c23fa56dd625e564f4c5965682d9fc79be4094df0643f67c5d2ffa3ae3c743c892c3c9ba19719b2307aada35775f64ed104
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
-DIST libcxx-4.0.0.src.tar.xz 1450376 SHA256 4f4d33c4ad69bf9e360eebe6b29b7b19486948b1a41decf89d4adec12473cf96 SHA512 6dad794c00919955e14710def169cdcde8a1743431479e993c4a6a3c87c2fd9f5dbd6e17542e524981eed0783dce70384c356b74ef3c6d70598c6ff03454b1dd WHIRLPOOL 2c5074087e306d100c96ae5b7175e1e1792f0317c7be6231692c80423ec716732c08293fe14fe6da5cd52d8709d6ce0a240009df24e717ab0eb9093ac7679af7
 DIST libcxx-4.0.1.src.tar.xz 1446380 SHA256 520a1171f272c9ff82f324d5d89accadcec9bc9f3c78de11f5575cdb99accc4c SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a WHIRLPOOL fe7c71e8dc2d17d14e94896837229c5ed872e7c04aea79a207e8fa98aa4539a7445e402b848d0c0d009f154f00d970159ad009d16bfdb9ae012ce5c7c6d9ba51

diff --git a/sys-libs/libcxx/libcxx-4.0.0.ebuild b/sys-libs/libcxx/libcxx-4.0.0.ebuild
deleted file mode 100644
index 43a14f9abb6..00000000000
--- a/sys-libs/libcxx/libcxx-4.0.0.ebuild
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# LLVM 4 required for llvm-config --cmakedir
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-4"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
-		fi
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		mycmakeargs+=(
-			# this can be any directory, it just needs to exist...
-			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
-			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-09-08 17:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-09-08 17:30 UTC (permalink / raw
  To: gentoo-commits

commit:     6b27711ee5e7a544f51902811e9afb05908d0f20
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  8 09:20:27 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep  8 17:30:41 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b27711e

sys-libs/libcxx: Bump to 5.0.0

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-5.0.0.ebuild | 199 ++++++++++++++++++++++++++++++++++++
 2 files changed, 200 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 36f26730bf4..08a9273d67b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,3 +3,4 @@ DIST libcxx-3.8.1.src.tar.xz 1074164 SHA256 77d7f3784c88096d785bd705fa1bab7031ce
 DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e114430858de4c25a86b49f227f5b06 SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a WHIRLPOOL 3ee3519acfe95287a862a6c44e30ed52ced1204332913007797da4e4da40dfdc5991ae120f5686827cc208b559936da5bc5485dab75617bdd5cbbd9e95a6032a
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
 DIST libcxx-4.0.1.src.tar.xz 1446380 SHA256 520a1171f272c9ff82f324d5d89accadcec9bc9f3c78de11f5575cdb99accc4c SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a WHIRLPOOL fe7c71e8dc2d17d14e94896837229c5ed872e7c04aea79a207e8fa98aa4539a7445e402b848d0c0d009f154f00d970159ad009d16bfdb9ae012ce5c7c6d9ba51
+DIST libcxx-5.0.0.src.tar.xz 1518940 SHA256 eae5981e9a21ef0decfcac80a1af584ddb064a32805f95a57c7c83a5eb28c9b1 SHA512 210749f6585d8fd39fc63a32dd85d68de4aa480c91915cbf419b9e8a3b300fa4624f03200ed963cecc8ab233777c36e8c522fa0762a2aa068bc65e6f48118328 WHIRLPOOL c791f6718e1c2a97fae26741284d861fc869721fca11b4ab4d3e9b4052ce17fca1fd99f945f406fdcdbfde43622cb7afe351e0268d773f6b42d1da2f5dc0f1f5

diff --git a/sys-libs/libcxx/libcxx-5.0.0.ebuild b/sys-libs/libcxx/libcxx-5.0.0.ebuild
new file mode 100644
index 00000000000..43a14f9abb6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-5.0.0.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-10-01  9:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-10-01  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     0b4afe517c6b08bc89d7e0f94eb6033da395d655
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 30 21:42:27 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct  1 09:02:40 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b4afe51

sys-libs/libcxx: Make the tests more verbose

 sys-libs/libcxx/libcxx-9999.ebuild | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 6c9b1478da7..185ed102480 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -139,6 +139,7 @@ multilib_src_configure() {
 			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
 			-DLLVM_MAIN_SRC_DIR="${T}"
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv"
 		)
 	fi
 	cmake-utils_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-10-01  9:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-10-01  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     1d7bf5ebdc1078dafdf57b5e96eff2ec3af25c7d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 30 21:42:22 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct  1 09:02:40 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d7bf5eb

sys-libs/libcxx: Fix using external lit

 sys-libs/libcxx/libcxx-9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 3a1e5e5de31..6c9b1478da7 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -138,7 +138,7 @@ multilib_src_configure() {
 			# this can be any directory, it just needs to exist...
 			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
 			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
 		)
 	fi
 	cmake-utils_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-10-01  9:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-10-01  9:03 UTC (permalink / raw
  To: gentoo-commits

commit:     27cdd4e24e0428a4ecdb4c54433de2b50b71ad14
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 30 21:42:57 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct  1 09:02:41 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27cdd4e2

sys-libs/libcxx: Remove obsolete LLVM_MAIN_SRCDIR hack

 sys-libs/libcxx/libcxx-9999.ebuild | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 185ed102480..17104067dfd 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -135,9 +135,6 @@ multilib_src_configure() {
 
 	if use test; then
 		mycmakeargs+=(
-			# this can be any directory, it just needs to exist...
-			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
-			-DLLVM_MAIN_SRC_DIR="${T}"
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
 			-DLLVM_LIT_ARGS="-vv"
 		)


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-11-19 19:14 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2017-11-19 19:14 UTC (permalink / raw
  To: gentoo-commits

commit:     73ec664db1f44d010a1a5318fd55ea8e2df04099
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 19 19:05:03 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sun Nov 19 19:14:40 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73ec664d

sys-libs/libcxx: x86 stable (bug #637210)

Package-Manager: Portage-2.3.13, Repoman-2.3.4

 sys-libs/libcxx/libcxx-4.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-4.0.1.ebuild b/sys-libs/libcxx/libcxx-4.0.1.ebuild
index 43a14f9abb6..7cf64b9d1b2 100644
--- a/sys-libs/libcxx/libcxx-4.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.1.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-12-01 23:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-12-01 23:40 UTC (permalink / raw
  To: gentoo-commits

commit:     17ad9ccda5f146e259655cf28eafc5a5fa7b6484
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  1 10:53:28 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec  1 23:40:38 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=17ad9ccd

sys-libs/libcxx: Bump to 5.0.1_rc2

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild | 199 ++++++++++++++++++++++++++++++++
 2 files changed, 200 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 08a9273d67b..e1c0dd0e41f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,3 +4,4 @@ DIST libcxx-3.9.0.src.tar.xz 1198308 SHA256 d0b38d51365c6322f5666a2a8105785f2e11
 DIST libcxx-3.9.1.src.tar.xz 1209020 SHA256 25e615e428f60e651ed09ffd79e563864e3f4bc69a9e93ee41505c419d1a7461 SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070 WHIRLPOOL cad439979570192b195338d752a24fb0ad8704c0c8efed3b6d7724437763eab7bc3b8baaf2f0e6fff55c6d9be211dff6f7baf18dec55e3a29ad3b8a423cefb1e
 DIST libcxx-4.0.1.src.tar.xz 1446380 SHA256 520a1171f272c9ff82f324d5d89accadcec9bc9f3c78de11f5575cdb99accc4c SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a WHIRLPOOL fe7c71e8dc2d17d14e94896837229c5ed872e7c04aea79a207e8fa98aa4539a7445e402b848d0c0d009f154f00d970159ad009d16bfdb9ae012ce5c7c6d9ba51
 DIST libcxx-5.0.0.src.tar.xz 1518940 SHA256 eae5981e9a21ef0decfcac80a1af584ddb064a32805f95a57c7c83a5eb28c9b1 SHA512 210749f6585d8fd39fc63a32dd85d68de4aa480c91915cbf419b9e8a3b300fa4624f03200ed963cecc8ab233777c36e8c522fa0762a2aa068bc65e6f48118328 WHIRLPOOL c791f6718e1c2a97fae26741284d861fc869721fca11b4ab4d3e9b4052ce17fca1fd99f945f406fdcdbfde43622cb7afe351e0268d773f6b42d1da2f5dc0f1f5
+DIST libcxx-5.0.1rc2.src.tar.xz 1533332 BLAKE2B 7ac60315ca68054cafdfa3814daea3fe288c140e397b78474b657d7816dfb00c0b84715fac41a7257e85c61f27d7eaefaed7096356c39f02ff2c305440e00bd3 SHA512 aaf9aeded70f948440cb55f3c8a7633be6edb8abde496d5f1571d62fb5d34d8f3ec27935a774224e620b26845ab1081189511a5eb223b5611ec4adfbbc3a2641

diff --git a/sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild
new file mode 100644
index 00000000000..ab78b95992b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="http://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-12-14 22:31 Matt Turner
  0 siblings, 0 replies; 608+ messages in thread
From: Matt Turner @ 2017-12-14 22:31 UTC (permalink / raw
  To: gentoo-commits

commit:     27c23190ff1ab92d47149f083b5c2aad9e4bbd77
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 14 22:30:36 2017 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Thu Dec 14 22:30:36 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27c23190

sys-libs/libcxx-4.0.1: amd64 stable, bug 637210

 sys-libs/libcxx/libcxx-4.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-4.0.1.ebuild b/sys-libs/libcxx/libcxx-4.0.1.ebuild
index 7cf64b9d1b2..8b6e05f5ff3 100644
--- a/sys-libs/libcxx/libcxx-4.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.1.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 x86"
+KEYWORDS="amd64 ~arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-12-15 16:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-12-15 16:20 UTC (permalink / raw
  To: gentoo-commits

commit:     2adb63bfaa4990c13e6a558aec247716f4c8244c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 15 16:02:59 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec 15 16:20:20 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2adb63bf

sys-libs/libcxx: Restrict tests with USE=-test

 sys-libs/libcxx/libcxx-5.0.9999.ebuild | 1 +
 sys-libs/libcxx/libcxx-9999.ebuild     | 1 +
 2 files changed, 2 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-5.0.9999.ebuild b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
index fde85c23202..bd31b162301 100644
--- a/sys-libs/libcxx/libcxx-5.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
@@ -36,6 +36,7 @@ fi
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
 
 RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 17104067dfd..cbc6f0f2df6 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -35,6 +35,7 @@ fi
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
 
 RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-12-20 20:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-12-20 20:58 UTC (permalink / raw
  To: gentoo-commits

commit:     e5eafce0db3d3f48cef892ac1bc40b1296d087a9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 20 20:43:51 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Dec 20 20:58:44 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5eafce0

sys-libs/libcxx: Bump to 5.0.1 (final)

 sys-libs/libcxx/Manifest                                         | 2 +-
 sys-libs/libcxx/{libcxx-5.0.1_rc2.ebuild => libcxx-5.0.1.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9a0ca4e4fcd..2ef3b9b6888 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,4 +4,4 @@ DIST libcxx-3.9.0.src.tar.xz 1198308 BLAKE2B 689fed969562466bd230445a0edb886880d
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.0.src.tar.xz 1518940 BLAKE2B 5ffb6dd99bef7cdf800dd458b4f9ef6ade9270221a60165cbbe8480f550235f12d877818c8272a04b5077e1f1c56f8e4dfde42dccfe6c1d8875ceed6fb339d5d SHA512 210749f6585d8fd39fc63a32dd85d68de4aa480c91915cbf419b9e8a3b300fa4624f03200ed963cecc8ab233777c36e8c522fa0762a2aa068bc65e6f48118328
-DIST libcxx-5.0.1rc2.src.tar.xz 1533332 BLAKE2B 7ac60315ca68054cafdfa3814daea3fe288c140e397b78474b657d7816dfb00c0b84715fac41a7257e85c61f27d7eaefaed7096356c39f02ff2c305440e00bd3 SHA512 aaf9aeded70f948440cb55f3c8a7633be6edb8abde496d5f1571d62fb5d34d8f3ec27935a774224e620b26845ab1081189511a5eb223b5611ec4adfbbc3a2641
+DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c

diff --git a/sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-5.0.1.ebuild
similarity index 98%
rename from sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild
rename to sys-libs/libcxx/libcxx-5.0.1.ebuild
index ab78b95992b..43a14f9abb6 100644
--- a/sys-libs/libcxx/libcxx-5.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.1.ebuild
@@ -14,11 +14,11 @@ inherit cmake-multilib llvm python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="http://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2017-12-21 21:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2017-12-21 21:01 UTC (permalink / raw
  To: gentoo-commits

commit:     f74f6a61ee1ad59c3d52280b70416322a9acb31b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 21 18:00:47 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec 21 21:01:00 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f74f6a61

sys-libs/libcxx: Remove live ebuild for obsolete 5.0 branch

 sys-libs/libcxx/libcxx-5.0.9999.ebuild | 212 ---------------------------------
 1 file changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.9999.ebuild b/sys-libs/libcxx/libcxx-5.0.9999.ebuild
deleted file mode 100644
index bd31b162301..00000000000
--- a/sys-libs/libcxx/libcxx-5.0.9999.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_50"
-PYTHON_COMPAT=( python2_7 )
-
-[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != *9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [[ ${PV} != *9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# LLVM 4 required for llvm-config --cmakedir
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-4"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
-		fi
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		mycmakeargs+=(
-			# this can be any directory, it just needs to exist...
-			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
-			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-03 22:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-01-03 22:21 UTC (permalink / raw
  To: gentoo-commits

commit:     9a40afcacf984698fb0749752dc7a8cd90f0abc9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  3 21:47:22 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan  3 22:21:43 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a40afca

sys-libs/libcxx: Add a live ebuild for 6.0 branch

 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 210 +++++++++++++++++++++++++++++++++
 1 file changed, 210 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
new file mode 100644
index 00000000000..803726e9d93
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
@@ -0,0 +1,210 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_60"
+PYTHON_COMPAT=( python2_7 )
+
+[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
+
+inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+if [[ ${PV} != *9999 ]] ; then
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [[ ${PV} != *9999 ]] ; then
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-17 22:14 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2018-01-17 22:14 UTC (permalink / raw
  To: gentoo-commits

commit:     332b86c3e01ffa347bc7b32281ee61201a3a5c69
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 17 22:11:15 2018 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Wed Jan 17 22:14:05 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=332b86c3

sys-libs/libcxx: amd64 stable wrt bug #644814

Package-Manager: Portage-2.3.19, Repoman-2.3.6

 sys-libs/libcxx/libcxx-5.0.1.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.1.ebuild b/sys-libs/libcxx/libcxx-5.0.1.ebuild
index 43a14f9abb6..62e1063b3e7 100644
--- a/sys-libs/libcxx/libcxx-5.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -18,7 +18,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-18 21:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-01-18 21:25 UTC (permalink / raw
  To: gentoo-commits

commit:     0996b340defa8901f3c69e0e9106d17573280c44
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 18 21:10:17 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 18 21:25:07 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0996b340

sys-libs/libcxx: Drop old (5.0.0)

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-5.0.0.ebuild | 199 ------------------------------------
 2 files changed, 200 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2ef3b9b6888..304aece43e9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,5 +3,4 @@ DIST libcxx-3.8.1.src.tar.xz 1074164 BLAKE2B 8aa07974a0301684f852408a62c173084fb
 DIST libcxx-3.9.0.src.tar.xz 1198308 BLAKE2B 689fed969562466bd230445a0edb886880d1034c45d5387922d1dd307898547e5605035c5aa901f3e844be3c1b2d066cf27aa0b996d7ade176ee38a9f49ac98a SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
-DIST libcxx-5.0.0.src.tar.xz 1518940 BLAKE2B 5ffb6dd99bef7cdf800dd458b4f9ef6ade9270221a60165cbbe8480f550235f12d877818c8272a04b5077e1f1c56f8e4dfde42dccfe6c1d8875ceed6fb339d5d SHA512 210749f6585d8fd39fc63a32dd85d68de4aa480c91915cbf419b9e8a3b300fa4624f03200ed963cecc8ab233777c36e8c522fa0762a2aa068bc65e6f48118328
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c

diff --git a/sys-libs/libcxx/libcxx-5.0.0.ebuild b/sys-libs/libcxx/libcxx-5.0.0.ebuild
deleted file mode 100644
index 43a14f9abb6..00000000000
--- a/sys-libs/libcxx/libcxx-5.0.0.ebuild
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# LLVM 4 required for llvm-config --cmakedir
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-4"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
-		fi
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		mycmakeargs+=(
-			# this can be any directory, it just needs to exist...
-			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
-			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-18 21:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-01-18 21:43 UTC (permalink / raw
  To: gentoo-commits

commit:     7d4b0a252a73ee7ff4dc4d5acdcebbf158559669
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 18 21:35:37 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 18 21:43:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d4b0a25

sys-libs/libcxx: Remove ~mips from old versions

Remove the ~mips keyword that was present only on old versions.
The package has never any reverse dependency on ~mips, and LLVM/Clang
is currently not keyworded for ~mips.

 sys-libs/libcxx/libcxx-3.7.1.ebuild | 2 +-
 sys-libs/libcxx/libcxx-3.8.1.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.7.1.ebuild b/sys-libs/libcxx/libcxx-3.7.1.ebuild
index 3535d3d9404..c0caf08e81c 100644
--- a/sys-libs/libcxx/libcxx-3.7.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.7.1.ebuild
@@ -21,7 +21,7 @@ fi
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
 	KEYWORDS=""
 fi

diff --git a/sys-libs/libcxx/libcxx-3.8.1.ebuild b/sys-libs/libcxx/libcxx-3.8.1.ebuild
index 33c990ecd40..98135711b43 100644
--- a/sys-libs/libcxx/libcxx-3.8.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.8.1.ebuild
@@ -21,7 +21,7 @@ fi
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 if [ "${PV%9999}" = "${PV}" ] ; then
-	KEYWORDS="~amd64 ~mips ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
 	KEYWORDS=""
 fi


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-18 21:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-01-18 21:43 UTC (permalink / raw
  To: gentoo-commits

commit:     67cbdd4707680f2346393e0041a51f65b9c8d135
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 18 21:36:24 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 18 21:43:03 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67cbdd47

sys-libs/libcxx: Remove old 3.9.0 version

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-3.9.0.ebuild | 216 ------------------------------------
 2 files changed, 217 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 304aece43e9..d8e670586d7 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,5 @@
 DIST libcxx-3.7.1.src.tar.xz 995724 BLAKE2B aab68f1b99a2c817e7154b71c04c81bd809154d1ae1c077a2dfede37319070729d6d768223b6ba5e2a866d6c2f18972dd501ce517864378ebc26c49cacafb635 SHA512 08d2399a8b36aa15290733256c896c9fa43f1a1223bc5c73bbcd014fddf8880e514d2a6dcc456bcf18b537c01fb6911b092e6d9958bccd8e64e9f375ed7a1ab9
 DIST libcxx-3.8.1.src.tar.xz 1074164 BLAKE2B 8aa07974a0301684f852408a62c173084fb913179bec951df3bae33895f8b46434eddc95b838cb936a5ef31f5b8ead25b7d0e241adc039eaea38ef95045c8ccb SHA512 782ff3cdb85d02e92404e943474d0266ff601725c202f0667d60e7807f1ba3cfdebbdb062e27a52fec96be1c99339044be93a88ba7e396682f98d99c9ac175b2
-DIST libcxx-3.9.0.src.tar.xz 1198308 BLAKE2B 689fed969562466bd230445a0edb886880d1034c45d5387922d1dd307898547e5605035c5aa901f3e844be3c1b2d066cf27aa0b996d7ade176ee38a9f49ac98a SHA512 55d5c4adff378ee02b0b99d732bc9f326910f9e49ab8c320a588eccdd0362fe009bc9a6a4337d29faf6338420c91b10d0d7d67f66128268f01258d30502c4f4a
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c

diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild
deleted file mode 100644
index 185bbc3d7be..00000000000
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ /dev/null
@@ -1,216 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-EGIT_REPO_URI="https://llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-PYTHON_COMPAT=( python2_7 )
-
-[[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != 9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [[ ${PV} != 9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-3.9.0 needed because its cmake files installation path changed, which is
-# needed by libcxx
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-3.9.0"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	# Back-port of https://reviews.llvm.org/D23232, allowing building both
-	# shared and static libs in one run.
-	"${FILESDIR}/${PN}-3.9-cmake-static-lib.patch"
-)
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-src_configure() {
-	NATIVE_LIBDIR=$(get_libdir)
-	cmake-multilib_src_configure
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
-		fi
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		# LLVM_LIBDIR_SUFFIX is used to find CMake files
-		# and we are happy to use the native set
-		-DLLVM_LIBDIR_SUFFIX=${NATIVE_LIBDIR#lib}
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		mycmakeargs+=(
-			# this can be any directory, it just needs to exist...
-			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-20  8:54 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-01-20  8:54 UTC (permalink / raw
  To: gentoo-commits

commit:     ecbf5dd09569d8ec3e6eea1a94363d166bcdae7b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 20 08:46:03 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 20 08:54:40 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ecbf5dd0

sys-libs/libcxx: Bump LLVM macro dep to 6

Require macros provided by LLVM 6 due to new lit options.

 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 4 ++--
 sys-libs/libcxx/libcxx-9999.ebuild     | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
index 803726e9d93..55b19b88f38 100644
--- a/sys-libs/libcxx/libcxx-6.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
@@ -42,14 +42,14 @@ RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# LLVM 4 required for llvm-config --cmakedir
+# llvm-6 for new lit options
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
 	test? ( >=sys-devel/clang-3.9.0
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
 	app-arch/xz-utils
-	>=sys-devel/llvm-4"
+	>=sys-devel/llvm-6"
 
 DOCS=( CREDITS.TXT )
 

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index cbc6f0f2df6..9ad293ef786 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -41,14 +41,14 @@ RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
 	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# LLVM 4 required for llvm-config --cmakedir
+# llvm-6 for new lit options
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
 	test? ( >=sys-devel/clang-3.9.0
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
 	app-arch/xz-utils
-	>=sys-devel/llvm-4"
+	>=sys-devel/llvm-6"
 
 DOCS=( CREDITS.TXT )
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-01-29  1:06 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2018-01-29  1:06 UTC (permalink / raw
  To: gentoo-commits

commit:     b4926a5bfc67f90c02418d398837f9d94ddef57b
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 29 00:36:38 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Jan 29 00:36:38 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b4926a5b

sys-libs/libcxx: x86 stable (bug #644814)

Package-Manager: Portage-2.3.20, Repoman-2.3.6

 sys-libs/libcxx/libcxx-5.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.1.ebuild b/sys-libs/libcxx/libcxx-5.0.1.ebuild
index 62e1063b3e7..ff69acef179 100644
--- a/sys-libs/libcxx/libcxx-5.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.1.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-02-09 16:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-02-09 16:00 UTC (permalink / raw
  To: gentoo-commits

commit:     813f828361ceaae8944253e19c381a9683eb055a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  9 10:13:30 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb  9 16:00:06 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=813f8283

sys-libs/libcxx: Bump to 6.0.0rc2

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-6.0.0_rc2.ebuild | 198 ++++++++++++++++++++++++++++++++
 2 files changed, 199 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9e115253237..6d10cd08857 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,3 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 BLAKE2B aab68f1b99a2c817e7154b71c04c81bd8091
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c
+DIST libcxx-6.0.0rc2.src.tar.xz 1554124 BLAKE2B c1d270c4c102c7622138e00628bf863f4047018ecf859386358449da2b7afdf2fe7a9cf969fa96f678960fd4cc343c26e89d6e95e594eeacef3d0d18157f9cff SHA512 3f0a032c4670076ead80bb03b3b7a565dfaf6526c9309f4453a455463038d3e7960bf93f2393f6dd2bd8b7f1ea145555b9599edae54dba7ede97cf0d8240cc4f

diff --git a/sys-libs/libcxx/libcxx-6.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-6.0.0_rc2.ebuild
new file mode 100644
index 00000000000..8d32cbd678f
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-6.0.0_rc2.ebuild
@@ -0,0 +1,198 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="http://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-02-26 14:05 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-02-26 14:05 UTC (permalink / raw
  To: gentoo-commits

commit:     aae26daf4bc1b00f8b364fe44b34a742508542a6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 26 14:04:38 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Feb 26 14:05:48 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aae26daf

sys-libs/libcxx: Bump to 6.0.0rc3

 sys-libs/libcxx/Manifest                                             | 2 +-
 sys-libs/libcxx/{libcxx-6.0.0_rc2.ebuild => libcxx-6.0.0_rc3.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6d10cd08857..c0d0b9c85e0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 BLAKE2B aab68f1b99a2c817e7154b71c04c81bd8091
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c
-DIST libcxx-6.0.0rc2.src.tar.xz 1554124 BLAKE2B c1d270c4c102c7622138e00628bf863f4047018ecf859386358449da2b7afdf2fe7a9cf969fa96f678960fd4cc343c26e89d6e95e594eeacef3d0d18157f9cff SHA512 3f0a032c4670076ead80bb03b3b7a565dfaf6526c9309f4453a455463038d3e7960bf93f2393f6dd2bd8b7f1ea145555b9599edae54dba7ede97cf0d8240cc4f
+DIST libcxx-6.0.0rc3.src.tar.xz 1554184 BLAKE2B 87c55bf9a18aa6fff2cd6c323ac99454273686e2697b0efa3152114ff402a4015e9b6bb6236bc0760b97d9f8038b70b56da4b9fd3ac3e7b31bd4305f881f216f SHA512 0d42d0298d824c6adca3c85bb0c49534438278d27c2777609887f5c6bee5d9bcc9f5595f2835f5149a00335a0e3096a056969388d13088457a2853e70cbea966

diff --git a/sys-libs/libcxx/libcxx-6.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-6.0.0_rc3.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-6.0.0_rc2.ebuild
rename to sys-libs/libcxx/libcxx-6.0.0_rc3.ebuild


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-08 22:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-08 22:19 UTC (permalink / raw
  To: gentoo-commits

commit:     a52e0c5fb8201c23ce814fbf20bc4e7a7d35316f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  8 22:03:56 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Mar  8 22:18:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a52e0c5f

sys-libs/libcxx: Control lit job count

Closes: https://bugs.gentoo.org/649554

 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 5 +++--
 sys-libs/libcxx/libcxx-9999.ebuild     | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
index 55b19b88f38..cf76bba5fdf 100644
--- a/sys-libs/libcxx/libcxx-6.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
@@ -15,7 +15,8 @@ PYTHON_COMPAT=( python2_7 )
 
 [[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
 
-inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
+inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
@@ -138,7 +139,7 @@ multilib_src_configure() {
 	if use test; then
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv"
+			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
 		)
 	fi
 	cmake-utils_src_configure

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 9ad293ef786..214c61d31f6 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -14,7 +14,8 @@ PYTHON_COMPAT=( python2_7 )
 
 [[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
 
-inherit ${SCM} cmake-multilib llvm python-any-r1 toolchain-funcs
+inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
@@ -137,7 +138,7 @@ multilib_src_configure() {
 	if use test; then
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv"
+			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
 		)
 	fi
 	cmake-utils_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-09 14:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-09 14:58 UTC (permalink / raw
  To: gentoo-commits

commit:     aa86d6427c27bd9afd612536e2317b9fdd3755b1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  9 08:44:58 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar  9 14:58:31 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa86d642

sys-libs/libcxx: Bump to 6.0.0 final

 sys-libs/libcxx/Manifest                                         | 2 +-
 sys-libs/libcxx/{libcxx-6.0.0_rc3.ebuild => libcxx-6.0.0.ebuild} | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c0d0b9c85e0..4b23dd3bcea 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,4 @@ DIST libcxx-3.7.1.src.tar.xz 995724 BLAKE2B aab68f1b99a2c817e7154b71c04c81bd8091
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c
-DIST libcxx-6.0.0rc3.src.tar.xz 1554184 BLAKE2B 87c55bf9a18aa6fff2cd6c323ac99454273686e2697b0efa3152114ff402a4015e9b6bb6236bc0760b97d9f8038b70b56da4b9fd3ac3e7b31bd4305f881f216f SHA512 0d42d0298d824c6adca3c85bb0c49534438278d27c2777609887f5c6bee5d9bcc9f5595f2835f5149a00335a0e3096a056969388d13088457a2853e70cbea966
+DIST libcxx-6.0.0.src.tar.xz 1549328 BLAKE2B 93adb339b0e849fca1850d379c8e74b407b0db8220f3a05f888db70d83ad07c3200dbd2a7827f92c60a2ba91d3395e4d1b4434ba70479c29a95aceda6c213e02 SHA512 3d93910f85a778f36c5f7a4429639008acba5713a2c8ac79a9de09463af6f9a388af45d39af23423a7223660701697ba067f3391f25d5a970973691dd88635e3

diff --git a/sys-libs/libcxx/libcxx-6.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
similarity index 95%
rename from sys-libs/libcxx/libcxx-6.0.0_rc3.ebuild
rename to sys-libs/libcxx/libcxx-6.0.0.ebuild
index 8d32cbd678f..1ec80e8bca1 100644
--- a/sys-libs/libcxx/libcxx-6.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.0.ebuild
@@ -10,15 +10,16 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit cmake-multilib llvm python-any-r1 toolchain-funcs
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="http://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
@@ -126,7 +127,7 @@ multilib_src_configure() {
 	if use test; then
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv"
+			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
 		)
 	fi
 	cmake-utils_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-09 15:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-09 15:46 UTC (permalink / raw
  To: gentoo-commits

commit:     76f2d2efcfac5208dc8a91d0e4c54f8ca6b0f34d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  9 15:37:57 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar  9 15:46:30 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=76f2d2ef

sys-libs/libcxx: Dekeyword ~arm* due to deps

 sys-libs/libcxx/libcxx-6.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.0.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
index 1ec80e8bca1..9c9b75e3d7f 100644
--- a/sys-libs/libcxx/libcxx-6.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-09 23:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-09 23:11 UTC (permalink / raw
  To: gentoo-commits

commit:     54a35a5810b0475469b43d235f050cf8a8b7a54e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  9 23:05:14 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar  9 23:11:26 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=54a35a58

sys-libs/libcxx: Try building with -nodefaultlibs for bootstrap

Add a hack that appends -nodefaultlibs if the C++ compiler fails to link
software otherwise. This is based on what we do in sys-libs/compiler-rt
already and it should make it possible to bootstrap libc++ on systems
without C++ standard library.

 sys-libs/libcxx/libcxx-6.0.0.ebuild    | 14 ++++++++++++++
 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 14 ++++++++++++++
 sys-libs/libcxx/libcxx-9999.ebuild     | 14 ++++++++++++++
 3 files changed, 42 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-6.0.0.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
index 9c9b75e3d7f..0948ab0c682 100644
--- a/sys-libs/libcxx/libcxx-6.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.0.ebuild
@@ -73,6 +73,11 @@ pkg_setup() {
 	fi
 }
 
+test_compiler() {
+	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+		<<<'int main() { return 0; }' &>/dev/null
+}
+
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
@@ -109,6 +114,15 @@ multilib_src_configure() {
 		fi
 	fi
 
+	# 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=(
 		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
index cf76bba5fdf..4e687c722c6 100644
--- a/sys-libs/libcxx/libcxx-6.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
@@ -85,6 +85,11 @@ pkg_setup() {
 	fi
 }
 
+test_compiler() {
+	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+		<<<'int main() { return 0; }' &>/dev/null
+}
+
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
@@ -121,6 +126,15 @@ multilib_src_configure() {
 		fi
 	fi
 
+	# 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=(
 		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 214c61d31f6..f304a076c17 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -84,6 +84,11 @@ pkg_setup() {
 	fi
 }
 
+test_compiler() {
+	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+		<<<'int main() { return 0; }' &>/dev/null
+}
+
 multilib_src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
@@ -120,6 +125,15 @@ multilib_src_configure() {
 		fi
 	fi
 
+	# 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=(
 		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-11 18:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-11 18:19 UTC (permalink / raw
  To: gentoo-commits

commit:     a3a0f70141375d1840cc9c86e822418376df0975
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 11 18:15:31 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar 11 18:19:30 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3a0f701

sys-libs/libcxx: 6.0.0 tested on ~amd64-fbsd

 sys-libs/libcxx/libcxx-6.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.0.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
index 0948ab0c682..c890013f25c 100644
--- a/sys-libs/libcxx/libcxx-6.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-13 17:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-13 17:40 UTC (permalink / raw
  To: gentoo-commits

commit:     960537c32572db324a6dee32031d874913bfb614
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 13 17:36:55 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Mar 13 17:40:51 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=960537c3

sys-libs/libcxx: Restore ~arm64 keywords, bug #650024

 sys-libs/libcxx/libcxx-6.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.0.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
index c890013f25c..284a0aa9eb5 100644
--- a/sys-libs/libcxx/libcxx-6.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-fbsd"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-15 21:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-15 21:12 UTC (permalink / raw
  To: gentoo-commits

commit:     a00dd8003961520df1f52cf9fa5f069fc62d8607
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 15 20:58:49 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Mar 15 21:12:43 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a00dd800

sys-libs/libcxx: Fix calling lit with llvm-6+

 sys-libs/libcxx/libcxx-4.0.1.ebuild | 10 +++++++++-
 sys-libs/libcxx/libcxx-5.0.1.ebuild | 10 +++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-4.0.1.ebuild b/sys-libs/libcxx/libcxx-4.0.1.ebuild
index 8b6e05f5ff3..64f610ce5bb 100644
--- a/sys-libs/libcxx/libcxx-4.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.1.ebuild
@@ -127,8 +127,16 @@ multilib_src_configure() {
 			# this can be any directory, it just needs to exist...
 			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
 			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
 		)
+		if has_version '>=sys-devel/llvm-6'; then
+			mycmakeargs+=(
+				-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			)
+		else
+			mycmakeargs+=(
+				-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+			)
+		fi
 	fi
 	cmake-utils_src_configure
 }

diff --git a/sys-libs/libcxx/libcxx-5.0.1.ebuild b/sys-libs/libcxx/libcxx-5.0.1.ebuild
index ff69acef179..885f8b13182 100644
--- a/sys-libs/libcxx/libcxx-5.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.1.ebuild
@@ -127,8 +127,16 @@ multilib_src_configure() {
 			# this can be any directory, it just needs to exist...
 			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
 			-DLLVM_MAIN_SRC_DIR="${T}"
-			-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
 		)
+		if has_version '>=sys-devel/llvm-6'; then
+			mycmakeargs+=(
+				-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			)
+		else
+			mycmakeargs+=(
+				-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+			)
+		fi
 	fi
 	cmake-utils_src_configure
 }


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-03-16  9:32 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-03-16  9:32 UTC (permalink / raw
  To: gentoo-commits

commit:     3df40c194fe778ed17d0fa9d1eee1a4d626eef89
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 16 09:20:06 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar 16 09:32:45 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3df40c19

sys-libs/libcxx: Pass cxx_under_test via --param (in 6+)

 sys-libs/libcxx/libcxx-6.0.0.ebuild    | 12 ++++++------
 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 12 ++++++------
 sys-libs/libcxx/libcxx-9999.ebuild     | 12 ++++++------
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.0.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
index 284a0aa9eb5..5301d5f1fe6 100644
--- a/sys-libs/libcxx/libcxx-6.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.0.ebuild
@@ -139,20 +139,20 @@ multilib_src_configure() {
 	)
 
 	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
 		)
 	fi
 	cmake-utils_src_configure
 }
 
 multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
 	cmake-utils_src_make check-libcxx
 }
 

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
index 4e687c722c6..7454f776ff6 100644
--- a/sys-libs/libcxx/libcxx-6.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
@@ -151,20 +151,20 @@ multilib_src_configure() {
 	)
 
 	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
 		)
 	fi
 	cmake-utils_src_configure
 }
 
 multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
 	cmake-utils_src_make check-libcxx
 }
 

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index f304a076c17..a4fdb61c8c7 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -150,20 +150,20 @@ multilib_src_configure() {
 	)
 
 	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
 		)
 	fi
 	cmake-utils_src_configure
 }
 
 multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
 	cmake-utils_src_make check-libcxx
 }
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-05-05 15:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-05-05 15:27 UTC (permalink / raw
  To: gentoo-commits

commit:     f82bcddc2e22335bb6a2022fe3bd4475ba1006b5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu May  3 16:35:02 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  5 15:27:49 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f82bcddc

sys-libs/libcxx: Bump to 5.0.2

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-5.0.2.ebuild | 207 ++++++++++++++++++++++++++++++++++++
 2 files changed, 208 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4b23dd3bcea..04b47af3ad5 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST libcxx-3.7.1.src.tar.xz 995724 BLAKE2B aab68f1b99a2c817e7154b71c04c81bd8091
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c
+DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.0.src.tar.xz 1549328 BLAKE2B 93adb339b0e849fca1850d379c8e74b407b0db8220f3a05f888db70d83ad07c3200dbd2a7827f92c60a2ba91d3395e4d1b4434ba70479c29a95aceda6c213e02 SHA512 3d93910f85a778f36c5f7a4429639008acba5713a2c8ac79a9de09463af6f9a388af45d39af23423a7223660701697ba067f3391f25d5a970973691dd88635e3

diff --git a/sys-libs/libcxx/libcxx-5.0.2.ebuild b/sys-libs/libcxx/libcxx-5.0.2.ebuild
new file mode 100644
index 00000000000..40c9547f335
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-5.0.2.ebuild
@@ -0,0 +1,207 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# LLVM 4 required for llvm-config --cmakedir
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-4"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	local libdir=$(get_libdir)
+	local mycmakeargs=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		mycmakeargs+=(
+			# this can be any directory, it just needs to exist...
+			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
+			-DLLVM_MAIN_SRC_DIR="${T}"
+		)
+		if has_version '>=sys-devel/llvm-6'; then
+			mycmakeargs+=(
+				-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			)
+		else
+			mycmakeargs+=(
+				-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
+			)
+		fi
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+
+	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
+
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-06-07 13:03 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2018-06-07 13:03 UTC (permalink / raw
  To: gentoo-commits

commit:     b1dc8506aac0ead791efd5c837a6fa7d8e1910bc
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  7 12:55:02 2018 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Thu Jun  7 13:03:38 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1dc8506

sys-libs/libcxx: amd64 stable wrt bug #657516

Package-Manager: Portage-2.3.40, Repoman-2.3.9

 sys-libs/libcxx/libcxx-5.0.2.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.2.ebuild b/sys-libs/libcxx/libcxx-5.0.2.ebuild
index 40c9547f335..168ada4709e 100644
--- a/sys-libs/libcxx/libcxx-5.0.2.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.2.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-06-07 17:21 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2018-06-07 17:21 UTC (permalink / raw
  To: gentoo-commits

commit:     382e602766cb2a955b9d3fd1f62f44c733d2a97c
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  7 17:19:03 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Thu Jun  7 17:21:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=382e6027

sys-libs/libcxx: x86 stable (bug #657516)

Package-Manager: Portage-2.3.40, Repoman-2.3.9

 sys-libs/libcxx/libcxx-5.0.2.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.2.ebuild b/sys-libs/libcxx/libcxx-5.0.2.ebuild
index 168ada4709e..885f8b13182 100644
--- a/sys-libs/libcxx/libcxx-5.0.2.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.2.ebuild
@@ -18,7 +18,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-06-27  8:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-06-27  8:44 UTC (permalink / raw
  To: gentoo-commits

commit:     95d5548afacb9127a8a71186c14a4f83b5d3ea63
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 26 21:22:28 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jun 27 08:44:38 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95d5548a

sys-libs/libcxx: Bump to 6.0.1

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-6.0.1.ebuild | 213 ++++++++++++++++++++++++++++++++++++
 2 files changed, 214 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 04b47af3ad5..60e30742201 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,3 +4,4 @@ DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe53
 DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.0.src.tar.xz 1549328 BLAKE2B 93adb339b0e849fca1850d379c8e74b407b0db8220f3a05f888db70d83ad07c3200dbd2a7827f92c60a2ba91d3395e4d1b4434ba70479c29a95aceda6c213e02 SHA512 3d93910f85a778f36c5f7a4429639008acba5713a2c8ac79a9de09463af6f9a388af45d39af23423a7223660701697ba067f3391f25d5a970973691dd88635e3
+DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875

diff --git a/sys-libs/libcxx/libcxx-6.0.1.ebuild b/sys-libs/libcxx/libcxx-6.0.1.ebuild
new file mode 100644
index 00000000000..5301d5f1fe6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-6.0.1.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+test_compiler() {
+	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+		<<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-07-22  8:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-07-22  8:23 UTC (permalink / raw
  To: gentoo-commits

commit:     d99b98ea5ad1b3e2d31f0a5f9b326ee41ca866bb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 22 06:40:58 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 22 08:22:15 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d99b98ea

sys-libs/libcxx: Drop old (5.0.1 & 6.0.0)

 sys-libs/libcxx/Manifest            |   2 -
 sys-libs/libcxx/libcxx-5.0.1.ebuild | 207 -----------------------------------
 sys-libs/libcxx/libcxx-6.0.0.ebuild | 213 ------------------------------------
 3 files changed, 422 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 60e30742201..80b76519c36 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,5 @@
 DIST libcxx-3.7.1.src.tar.xz 995724 BLAKE2B aab68f1b99a2c817e7154b71c04c81bd809154d1ae1c077a2dfede37319070729d6d768223b6ba5e2a866d6c2f18972dd501ce517864378ebc26c49cacafb635 SHA512 08d2399a8b36aa15290733256c896c9fa43f1a1223bc5c73bbcd014fddf8880e514d2a6dcc456bcf18b537c01fb6911b092e6d9958bccd8e64e9f375ed7a1ab9
 DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b0d366b9f0cfa2cdde2401368c224e00efd66afc1403b0087c40549cda4ebbc4d0c4b2d0906178324fa6158502d5ad SHA512 a5976e4096624a7307b3e43f4a22ac2dc74572226e0f57af9f3ef537a14c3cff1601b7042aef9dc40a0ee53ca76b08d72eb9c253dcf34f115d3153c302db7070
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
-DIST libcxx-5.0.1.src.tar.xz 1527852 BLAKE2B 9454fbca8228ee456feb79b65a63ce5daa27bf2e47e457d79592f4974dceeace19fe6cdeee51cc51f94e9072d7ce3c03e5acb617507670153647b9c435feadbd SHA512 994681d3c79047fc2d618c5584b08e9b5c925dab48f8812fc0adc81a575b49a637e9481bb9a0f7ae6f7f352b2b33f40056c347c27123cd6c96c6c226febd002c
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
-DIST libcxx-6.0.0.src.tar.xz 1549328 BLAKE2B 93adb339b0e849fca1850d379c8e74b407b0db8220f3a05f888db70d83ad07c3200dbd2a7827f92c60a2ba91d3395e4d1b4434ba70479c29a95aceda6c213e02 SHA512 3d93910f85a778f36c5f7a4429639008acba5713a2c8ac79a9de09463af6f9a388af45d39af23423a7223660701697ba067f3391f25d5a970973691dd88635e3
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875

diff --git a/sys-libs/libcxx/libcxx-5.0.1.ebuild b/sys-libs/libcxx/libcxx-5.0.1.ebuild
deleted file mode 100644
index 885f8b13182..00000000000
--- a/sys-libs/libcxx/libcxx-5.0.1.ebuild
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# LLVM 4 required for llvm-config --cmakedir
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-4"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
-		fi
-	fi
-
-	local libdir=$(get_libdir)
-	local mycmakeargs=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		mycmakeargs+=(
-			# this can be any directory, it just needs to exist...
-			# FIXME: remove this once https://reviews.llvm.org/D25093 is merged
-			-DLLVM_MAIN_SRC_DIR="${T}"
-		)
-		if has_version '>=sys-devel/llvm-6'; then
-			mycmakeargs+=(
-				-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			)
-		else
-			mycmakeargs+=(
-				-DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
-			)
-		fi
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-
-	[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-	sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
-
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-6.0.0.ebuild b/sys-libs/libcxx/libcxx-6.0.0.ebuild
deleted file mode 100644
index 5301d5f1fe6..00000000000
--- a/sys-libs/libcxx/libcxx-6.0.0.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-test_compiler() {
-	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
-		<<<'int main() { return 0; }' &>/dev/null
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-07-22 18:19 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2018-07-22 18:19 UTC (permalink / raw
  To: gentoo-commits

commit:     0f8b0e481e04bd1991a1fcd5e7e8eb7116df1cda
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 22 18:15:16 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sun Jul 22 18:16:43 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f8b0e48

sys-libs/libcxx: x86 stable (bug #661776)

Package-Manager: Portage-2.3.43, Repoman-2.3.10

 sys-libs/libcxx/libcxx-6.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.1.ebuild b/sys-libs/libcxx/libcxx-6.0.1.ebuild
index 5301d5f1fe6..98403efc216 100644
--- a/sys-libs/libcxx/libcxx-6.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.1.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="~amd64 ~arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-07-22 18:50 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2018-07-22 18:50 UTC (permalink / raw
  To: gentoo-commits

commit:     74934f53a8713a70ed009da9485ef8586890c332
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 22 18:47:37 2018 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Sun Jul 22 18:49:52 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74934f53

sys-libs/libcxx: amd64 stable wrt bug #661776

Package-Manager: Portage-2.3.40, Repoman-2.3.9

 sys-libs/libcxx/libcxx-6.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.1.ebuild b/sys-libs/libcxx/libcxx-6.0.1.ebuild
index 98403efc216..b7dda42427a 100644
--- a/sys-libs/libcxx/libcxx-6.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.1.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 x86 ~amd64-fbsd"
+KEYWORDS="amd64 ~arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-08-01 20:53 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-08-01 20:53 UTC (permalink / raw
  To: gentoo-commits

commit:     9d598b0bfe83031f928d37d4618c4d137ed5d2cd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  1 16:45:05 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug  1 20:53:23 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d598b0b

sys-libs/libcxx: Branch out LLVM 7.0

 sys-libs/libcxx/libcxx-7.0.9999.ebuild | 225 +++++++++++++++++++++++++++++++++
 1 file changed, 225 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-7.0.9999.ebuild b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
new file mode 100644
index 00000000000..64bc9accf26
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
@@ -0,0 +1,225 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_70"
+PYTHON_COMPAT=( python2_7 )
+
+[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
+
+inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+if [[ ${PV} != *9999 ]] ; then
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [[ ${PV} != *9999 ]] ; then
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+test_compiler() {
+	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+		<<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			# get the full library list out of 'pretend mode'
+			# and grep it for libclang_rt references
+			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
+			local i
+			for i in "${args[@]}"; do
+				if [[ ${i} == *libclang_rt* ]]; then
+					want_gcc_s=OFF
+					extra_libs+=( "${i}" )
+				fi
+			done
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-08-09 10:32 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-08-09 10:32 UTC (permalink / raw
  To: gentoo-commits

commit:     b375c11c5cf0467364ff8f217f6de6cc49551d92
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  9 10:31:54 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug  9 10:31:54 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b375c11c

sys-libs/libcxx: Use -print-libgcc-file-name to get clang_rt path

Suggested-by: David Carlos Manuelda
Bug: https://bugs.gentoo.org/592326

 sys-libs/libcxx/libcxx-5.0.2.ebuild    | 16 ++++++----------
 sys-libs/libcxx/libcxx-6.0.1.ebuild    | 16 ++++++----------
 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 16 ++++++----------
 sys-libs/libcxx/libcxx-7.0.9999.ebuild | 16 ++++++----------
 sys-libs/libcxx/libcxx-9999.ebuild     | 16 ++++++----------
 5 files changed, 30 insertions(+), 50 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-5.0.2.ebuild b/sys-libs/libcxx/libcxx-5.0.2.ebuild
index 885f8b13182..bd65e51b774 100644
--- a/sys-libs/libcxx/libcxx-5.0.2.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.2.ebuild
@@ -94,16 +94,12 @@ multilib_src_configure() {
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
 		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	fi
 

diff --git a/sys-libs/libcxx/libcxx-6.0.1.ebuild b/sys-libs/libcxx/libcxx-6.0.1.ebuild
index b7dda42427a..6c5c866f9c6 100644
--- a/sys-libs/libcxx/libcxx-6.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.1.ebuild
@@ -101,16 +101,12 @@ multilib_src_configure() {
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
 		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	fi
 

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
index 7454f776ff6..8b1b4efcd6e 100644
--- a/sys-libs/libcxx/libcxx-6.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
@@ -113,16 +113,12 @@ multilib_src_configure() {
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
 		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	fi
 

diff --git a/sys-libs/libcxx/libcxx-7.0.9999.ebuild b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
index 64bc9accf26..e5777074eed 100644
--- a/sys-libs/libcxx/libcxx-7.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
@@ -113,16 +113,12 @@ multilib_src_configure() {
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
 		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	fi
 

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index a4fdb61c8c7..4272b211794 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -112,16 +112,12 @@ multilib_src_configure() {
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
 		if tc-is-clang; then
-			# get the full library list out of 'pretend mode'
-			# and grep it for libclang_rt references
-			local args=( $($(tc-getCC) -### -x c - 2>&1 | tail -n 1) )
-			local i
-			for i in "${args[@]}"; do
-				if [[ ${i} == *libclang_rt* ]]; then
-					want_gcc_s=OFF
-					extra_libs+=( "${i}" )
-				fi
-			done
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	fi
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-08-15 20:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-08-15 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     82777a1b728eb2c0396946f4fc9b09b5726f5f2b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 15 20:32:17 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug 15 20:32:17 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=82777a1b

sys-libs/libcxx: Drop 6.0.9999

 sys-libs/libcxx/libcxx-6.0.9999.ebuild | 221 ---------------------------------
 1 file changed, 221 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-6.0.9999.ebuild b/sys-libs/libcxx/libcxx-6.0.9999.ebuild
deleted file mode 100644
index 8b1b4efcd6e..00000000000
--- a/sys-libs/libcxx/libcxx-6.0.9999.ebuild
+++ /dev/null
@@ -1,221 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_60"
-PYTHON_COMPAT=( python2_7 )
-
-[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != *9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [[ ${PV} != *9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-test_compiler() {
-	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
-		<<<'int main() { return 0; }' &>/dev/null
-}
-
-multilib_src_configure() {
-	local cxxabi cxxabi_incs
-	if use libcxxabi; then
-		cxxabi=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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
-
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-08-28 16:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-08-28 16:00 UTC (permalink / raw
  To: gentoo-commits

commit:     0ab57f3ebab72bfff3391a20f6262573cc1ff18d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 28 15:40:58 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 28 16:00:37 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0ab57f3e

sys-libs/libcxx: Bump to 7.0.0rc2

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-7.0.0_rc2.ebuild | 209 ++++++++++++++++++++++++++++++++
 2 files changed, 210 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 80b76519c36..2f9be098f51 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,3 +3,4 @@ DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
+DIST libcxx-7.0.0rc2.src.tar.xz 1654748 BLAKE2B 95664de42bfa6b77c5db32c092469c36e92b5eb9554bf381f761e04a29da1f413c1ead2ac93674a30ad9d743aa3cc9f22e5edebd043d16f903ed83901a743ae6 SHA512 c0b84400cb7694f7088b965cb0cac26853ecc485c775afbb0ad2cfdc53497eb95b76f917b16090372b77297e7f80372aef29023da564387be49e2f412efb5746

diff --git a/sys-libs/libcxx/libcxx-7.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-7.0.0_rc2.ebuild
new file mode 100644
index 00000000000..cc26d7d1ce0
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-7.0.0_rc2.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+test_compiler() {
+	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+		<<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+	local cxxabi cxxabi_incs
+	if use libcxxabi; then
+		cxxabi=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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
+
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-09-11  6:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-09-11  6:22 UTC (permalink / raw
  To: gentoo-commits

commit:     78ace8eccf009c502a30ce065de790b8579f2434
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 11 06:09:57 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 11 06:09:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78ace8ec

sys-libs/libcxx: Bump to 7.0.0rc3

 sys-libs/libcxx/Manifest                                             | 2 +-
 sys-libs/libcxx/{libcxx-7.0.0_rc2.ebuild => libcxx-7.0.0_rc3.ebuild} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2f9be098f51..12ade871b81 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,4 @@ DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
-DIST libcxx-7.0.0rc2.src.tar.xz 1654748 BLAKE2B 95664de42bfa6b77c5db32c092469c36e92b5eb9554bf381f761e04a29da1f413c1ead2ac93674a30ad9d743aa3cc9f22e5edebd043d16f903ed83901a743ae6 SHA512 c0b84400cb7694f7088b965cb0cac26853ecc485c775afbb0ad2cfdc53497eb95b76f917b16090372b77297e7f80372aef29023da564387be49e2f412efb5746
+DIST libcxx-7.0.0rc3.src.tar.xz 1654708 BLAKE2B 190b7e1112a205e29873ede8dbdfd37e553d31629f6f9524fb7887222427b525eb42e6eda90d542587222e2a5a192b62f9fb8ae128fa9b4d1ddd1871af867f11 SHA512 aa8187fb1090ef8718ad3dfa512d246248a8bc94afddc155f4aff14fd1b8857ce30a4abccf12a57102ef6cd38b5e251b43dd312e9f85136c4546fd558eddb179

diff --git a/sys-libs/libcxx/libcxx-7.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-7.0.0_rc3.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-7.0.0_rc2.ebuild
rename to sys-libs/libcxx/libcxx-7.0.0_rc3.ebuild


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-09-19 20:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-09-19 20:22 UTC (permalink / raw
  To: gentoo-commits

commit:     27bd6e2ba2686acd5af2074ee3f976e3ade0374b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 19 17:16:26 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 19 20:16:34 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27bd6e2b

sys-libs/libcxx: Bump to 7.0.0 final

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                                         | 2 +-
 sys-libs/libcxx/{libcxx-7.0.0_rc3.ebuild => libcxx-7.0.0.ebuild} | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 12ade871b81..2e708ef604a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,4 @@ DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
-DIST libcxx-7.0.0rc3.src.tar.xz 1654708 BLAKE2B 190b7e1112a205e29873ede8dbdfd37e553d31629f6f9524fb7887222427b525eb42e6eda90d542587222e2a5a192b62f9fb8ae128fa9b4d1ddd1871af867f11 SHA512 aa8187fb1090ef8718ad3dfa512d246248a8bc94afddc155f4aff14fd1b8857ce30a4abccf12a57102ef6cd38b5e251b43dd312e9f85136c4546fd558eddb179
+DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5

diff --git a/sys-libs/libcxx/libcxx-7.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-7.0.0.ebuild
similarity index 98%
rename from sys-libs/libcxx/libcxx-7.0.0_rc3.ebuild
rename to sys-libs/libcxx/libcxx-7.0.0.ebuild
index cc26d7d1ce0..3a997e98c08 100644
--- a/sys-libs/libcxx/libcxx-7.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-7.0.0.ebuild
@@ -15,11 +15,11 @@ inherit cmake-multilib llvm multiprocessing python-any-r1 \
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-10-04 21:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-10-04 21:10 UTC (permalink / raw
  To: gentoo-commits

commit:     b235a2470ee34d41f4aa93bd7960a1d6297c7c68
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  4 21:02:56 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct  4 21:10:12 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b235a247

sys-libs/libcxx: Fix finding libsupc++ ABI headers for multilib

Fix the logic determining path to libsupc++ ABI headers to avoid being
affected by CHOST alterations done as part of multilib logic.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-3.9.1.ebuild    | 8 +++++++-
 sys-libs/libcxx/libcxx-4.0.1.ebuild    | 8 +++++++-
 sys-libs/libcxx/libcxx-5.0.2.ebuild    | 8 +++++++-
 sys-libs/libcxx/libcxx-6.0.1.ebuild    | 8 +++++++-
 sys-libs/libcxx/libcxx-7.0.0.ebuild    | 8 +++++++-
 sys-libs/libcxx/libcxx-7.0.9999.ebuild | 8 +++++++-
 sys-libs/libcxx/libcxx-9999.ebuild     | 8 +++++++-
 7 files changed, 49 insertions(+), 7 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-3.9.1.ebuild b/sys-libs/libcxx/libcxx-3.9.1.ebuild
index e847a9f5d31..d5282680825 100644
--- a/sys-libs/libcxx/libcxx-3.9.1.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.1.ebuild
@@ -86,7 +86,9 @@ src_configure() {
 	cmake-multilib_src_configure
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -100,6 +102,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON

diff --git a/sys-libs/libcxx/libcxx-4.0.1.ebuild b/sys-libs/libcxx/libcxx-4.0.1.ebuild
index 64f610ce5bb..4273ce8d76e 100644
--- a/sys-libs/libcxx/libcxx-4.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-4.0.1.ebuild
@@ -71,7 +71,9 @@ pkg_setup() {
 	fi
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -85,6 +87,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON

diff --git a/sys-libs/libcxx/libcxx-5.0.2.ebuild b/sys-libs/libcxx/libcxx-5.0.2.ebuild
index bd65e51b774..eda78625c06 100644
--- a/sys-libs/libcxx/libcxx-5.0.2.ebuild
+++ b/sys-libs/libcxx/libcxx-5.0.2.ebuild
@@ -71,7 +71,9 @@ pkg_setup() {
 	fi
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -85,6 +87,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON

diff --git a/sys-libs/libcxx/libcxx-6.0.1.ebuild b/sys-libs/libcxx/libcxx-6.0.1.ebuild
index 6c5c866f9c6..5d8314c5988 100644
--- a/sys-libs/libcxx/libcxx-6.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-6.0.1.ebuild
@@ -78,7 +78,9 @@ test_compiler() {
 		<<<'int main() { return 0; }' &>/dev/null
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -92,6 +94,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON

diff --git a/sys-libs/libcxx/libcxx-7.0.0.ebuild b/sys-libs/libcxx/libcxx-7.0.0.ebuild
index 3a997e98c08..d94f0c1c617 100644
--- a/sys-libs/libcxx/libcxx-7.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-7.0.0.ebuild
@@ -78,7 +78,9 @@ test_compiler() {
 		<<<'int main() { return 0; }' &>/dev/null
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -92,6 +94,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON

diff --git a/sys-libs/libcxx/libcxx-7.0.9999.ebuild b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
index e5777074eed..536457a1380 100644
--- a/sys-libs/libcxx/libcxx-7.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
@@ -90,7 +90,9 @@ test_compiler() {
 		<<<'int main() { return 0; }' &>/dev/null
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -104,6 +106,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 4272b211794..2547da3dfa7 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -89,7 +89,9 @@ test_compiler() {
 		<<<'int main() { return 0; }' &>/dev/null
 }
 
-multilib_src_configure() {
+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=libcxxabi
@@ -103,6 +105,10 @@ multilib_src_configure() {
 		cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
 	fi
 
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-11-06 11:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-11-06 11:06 UTC (permalink / raw
  To: gentoo-commits

commit:     a129e5c29b0b8de45ef282f867c277055b6f2dd0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov  6 11:04:34 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov  6 11:06:16 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a129e5c2

sys-libs/libcxx: Bump to 7.0.1_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild | 215 ++++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2e708ef604a..6c1a6c65874 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,3 +4,4 @@ DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe53
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5
+DIST libcxx-7.0.1rc2.src.tar.xz 1641280 BLAKE2B fec5ab41c7cdcc70582c812bd10bdcf6b400f865756bc60afbe4b84029c8ced4b519f1b3919baa381f086a0ef93b99f9f7bc47ec480ac2c49ef9c0e9d77e55b7 SHA512 04f1a26e21e082a685050c2f7696078d56e5a3b48e3b3916d6eb425b9b0b75354714faa5a78a2c003b9842215de07424b2d2361a0bdb3e4d6761d7cd28d53ded

diff --git a/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild
new file mode 100644
index 00000000000..c6d4692fb7b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-12-02 12:53 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2018-12-02 12:53 UTC (permalink / raw
  To: gentoo-commits

commit:     45ff82de01ee5da91ff0d121f130f57224ebf5c4
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Sun Dec  2 12:50:45 2018 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Sun Dec  2 12:53:24 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45ff82de

sys-libs/libcxx: Add ~arm keyword wrt bug #595834

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11

 sys-libs/libcxx/libcxx-7.0.0.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-7.0.0.ebuild b/sys-libs/libcxx/libcxx-7.0.0.ebuild
index 790f5dc1221..17b0722d40d 100644
--- a/sys-libs/libcxx/libcxx-7.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-7.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-12-20 12:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-12-20 12:41 UTC (permalink / raw
  To: gentoo-commits

commit:     23b31646143b204de8ef29eab63dbb00fe9c1145
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 20 09:22:32 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec 20 12:40:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=23b31646

sys-libs/libcxx: Bump to 7.0.1-final

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                                         | 2 +-
 sys-libs/libcxx/{libcxx-7.0.1_rc2.ebuild => libcxx-7.0.1.ebuild} | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6c1a6c65874..4e94af73c75 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,4 +4,4 @@ DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe53
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5
-DIST libcxx-7.0.1rc2.src.tar.xz 1641280 BLAKE2B fec5ab41c7cdcc70582c812bd10bdcf6b400f865756bc60afbe4b84029c8ced4b519f1b3919baa381f086a0ef93b99f9f7bc47ec480ac2c49ef9c0e9d77e55b7 SHA512 04f1a26e21e082a685050c2f7696078d56e5a3b48e3b3916d6eb425b9b0b75354714faa5a78a2c003b9842215de07424b2d2361a0bdb3e4d6761d7cd28d53ded
+DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8

diff --git a/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-7.0.1.ebuild
similarity index 97%
rename from sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild
rename to sys-libs/libcxx/libcxx-7.0.1.ebuild
index c6d4692fb7b..9dfc42c1c3d 100644
--- a/sys-libs/libcxx/libcxx-7.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-7.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -15,11 +15,11 @@ inherit cmake-multilib llvm multiprocessing python-any-r1 \
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2018-12-30 11:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2018-12-30 11:39 UTC (permalink / raw
  To: gentoo-commits

commit:     4ffab3a9d0d9f367888eb284061896aee1a46fe9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 30 11:32:06 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Dec 30 11:39:40 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4ffab3a9

sys-libs/libcxx: Remove 7.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-7.0.0.ebuild | 219 ------------------------------------
 2 files changed, 220 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4e94af73c75..4a37419557d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,5 +3,4 @@ DIST libcxx-3.9.1.src.tar.xz 1209020 BLAKE2B 510e77c2c1163babbba904933f441e8720b
 DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe536a0b5863ea7dd3c8895f6b743b6f039e4df71f9ba5124c98761a8099666f68e1dfd073b5ec7b9fe0007ef09a9117d SHA512 91f3f397be606989be99865d0b279557f9afb93f7a74ed10c3a74f4440e38b5694ddf452bbf2f487cacd4391606dd5c7edfe5130f2de19e2acfd6cce619d028a
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
-DIST libcxx-7.0.0.src.tar.xz 1652496 BLAKE2B 7c8e4b7743a775a5f41ef1a2e511b44ca67af32be03f4fec9a4f70b49b540a442724afd69a312d68719ace3eee9e3d600c7596bda68496212827e140da5a258e SHA512 5ebf8418bc9d311c1744c257ab7a26cf2436a64a47451905df70ec64b12d25ec33acf99e1b9d552fd54ed850bed8f53dffde2ea20292ecd9976eaa31f144caf5
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8

diff --git a/sys-libs/libcxx/libcxx-7.0.0.ebuild b/sys-libs/libcxx/libcxx-7.0.0.ebuild
deleted file mode 100644
index 17b0722d40d..00000000000
--- a/sys-libs/libcxx/libcxx-7.0.0.ebuild
+++ /dev/null
@@ -1,219 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	# Fix installing when using libsupc++ backend.
-	# https://bugs.gentoo.org/667174
-	"${FILESDIR}/${PN}-7.0.0-libsupcxx-install.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-01-16 14:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-01-16 14:52 UTC (permalink / raw
  To: gentoo-commits

commit:     ebf0b09c0152f3f5b069a252c503dd46a8d66c48
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 16 13:50:18 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 16 14:52:36 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ebf0b09c

sys-libs/libcxx: Add a live ebuild for 8.* branch

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-8.0.9999.ebuild | 227 +++++++++++++++++++++++++++++++++
 1 file changed, 227 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-8.0.9999.ebuild b/sys-libs/libcxx/libcxx-8.0.9999.ebuild
new file mode 100644
index 00000000000..523cba0073e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-8.0.9999.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_80"
+PYTHON_COMPAT=( python2_7 )
+
+[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
+
+inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+if [[ ${PV} != *9999 ]] ; then
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [[ ${PV} != *9999 ]] ; then
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-02-13 12:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-02-13 12:46 UTC (permalink / raw
  To: gentoo-commits

commit:     fb6a4aabf73d1209c2a57d2836dde7bc2c895e26
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 13 10:22:48 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 13 12:46:45 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb6a4aab

sys-libs/libcxx: Bump to 8.0.0rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild | 215 ++++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4a37419557d..ad3318fba2b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,3 +4,4 @@ DIST libcxx-4.0.1.src.tar.xz 1446380 BLAKE2B cd871eff4c4ca25a1fe4d27f778e913fe53
 DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3bec3732a08c365107b286f6dfef883edb81f9f4d22a0f312228865528bf1f15450c41803f8d3a8c8081fe12b62c25 SHA512 c77e0ea6bb3dc03270312de4a24fdd0d027448b2e182af31489031fd52f0997377c9049769930b80b2ba0062fe21317d8ae823c5e80e12128f8ae8e6f171be22
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
+DIST libcxx-8.0.0rc2.src.tar.xz 1755516 BLAKE2B b6c15d0d50d01e69afb376140052a1d27e2acef45796781497b35dbd8c26db88883e17105fb4e83c50097ab7a4ebf077350754bc1b1d43ef8426b82a7e92b72d SHA512 79ac5a389f5a6bcb145e8e387ae2cbdf0679996a9f66fe38a8e62cd893b6ed68943824d5538e7408b57ecfa4182aec20b837158c9a6f50188c1e9aae176a4f5f

diff --git a/sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild
new file mode 100644
index 00000000000..4e0e73c96b4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-02-28 17:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-02-28 17:41 UTC (permalink / raw
  To: gentoo-commits

commit:     eae70377325862487a6c3c44d1b8fab8623ed8a7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 28 17:11:52 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb 28 17:41:36 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eae70377

sys-libs/libcxx: Bump to 8.0.0rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild | 215 ++++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ad3318fba2b..a5405d54d24 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,3 +5,4 @@ DIST libcxx-5.0.2.src.tar.xz 1530908 BLAKE2B e0c47d6803668267a71c75df873a136a2c3
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
 DIST libcxx-8.0.0rc2.src.tar.xz 1755516 BLAKE2B b6c15d0d50d01e69afb376140052a1d27e2acef45796781497b35dbd8c26db88883e17105fb4e83c50097ab7a4ebf077350754bc1b1d43ef8426b82a7e92b72d SHA512 79ac5a389f5a6bcb145e8e387ae2cbdf0679996a9f66fe38a8e62cd893b6ed68943824d5538e7408b57ecfa4182aec20b837158c9a6f50188c1e9aae176a4f5f
+DIST libcxx-8.0.0rc3.src.tar.xz 1755192 BLAKE2B 32d0602a13a273f396f139dd25f67ed0a12881c618eef35e0bb9b6d8d8cb786f130ce3ce7e8027f8f2a2516de5d1f9753bc12e81497a0bc919731866da04dba2 SHA512 f59e6fdd20d18cfb39c426eadcda5a611dc79735fc1fc8c4cebd4106afa35736ceb3500bba7f162bccced1964785fc18c129e9bb68dd6549b205cae14cd46f8b

diff --git a/sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild
new file mode 100644
index 00000000000..4e0e73c96b4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-03-12 13:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-03-12 13:14 UTC (permalink / raw
  To: gentoo-commits

commit:     724ede9c2d5acdb7cf92f8a027ca66b51d51e95c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 12 13:00:07 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Mar 12 13:14:06 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=724ede9c

sys-libs/libcxx: Bump to 8.0.0rc5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild | 215 ++++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 29b7d711fc2..3d804d7399e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,3 +2,4 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9f
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
 DIST libcxx-8.0.0rc2.src.tar.xz 1755516 BLAKE2B b6c15d0d50d01e69afb376140052a1d27e2acef45796781497b35dbd8c26db88883e17105fb4e83c50097ab7a4ebf077350754bc1b1d43ef8426b82a7e92b72d SHA512 79ac5a389f5a6bcb145e8e387ae2cbdf0679996a9f66fe38a8e62cd893b6ed68943824d5538e7408b57ecfa4182aec20b837158c9a6f50188c1e9aae176a4f5f
 DIST libcxx-8.0.0rc3.src.tar.xz 1755192 BLAKE2B 32d0602a13a273f396f139dd25f67ed0a12881c618eef35e0bb9b6d8d8cb786f130ce3ce7e8027f8f2a2516de5d1f9753bc12e81497a0bc919731866da04dba2 SHA512 f59e6fdd20d18cfb39c426eadcda5a611dc79735fc1fc8c4cebd4106afa35736ceb3500bba7f162bccced1964785fc18c129e9bb68dd6549b205cae14cd46f8b
+DIST libcxx-8.0.0rc5.src.tar.xz 1755168 BLAKE2B ec3e77fc15d92d4a2e04b706b52379e2f5fefbdd00e6f1bd63061c42781330b279507e690f2f14185e18893bb7b985251e68b5282b26b4c20afbed671d35073b SHA512 aaf6495ea7ddf68441aa4422ca7d0d02f17875553f34010d1e5061a5180774990b227edc6fe133dd4081de7e4f835228ac286b974800fd396b3650c4f7899b7a

diff --git a/sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild b/sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild
new file mode 100644
index 00000000000..4e0e73c96b4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-03-13  8:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-03-13  8:22 UTC (permalink / raw
  To: gentoo-commits

commit:     823ff2a88a52777e09cf6bd2562e4bfe0933eac0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 13 07:49:53 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 13 07:49:53 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=823ff2a8

sys-libs/libcxx: Remove 8.0.0rc[23]

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   2 -
 sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild | 215 --------------------------------
 sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild | 215 --------------------------------
 3 files changed, 432 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3d804d7399e..249dc4cadbe 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,3 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
-DIST libcxx-8.0.0rc2.src.tar.xz 1755516 BLAKE2B b6c15d0d50d01e69afb376140052a1d27e2acef45796781497b35dbd8c26db88883e17105fb4e83c50097ab7a4ebf077350754bc1b1d43ef8426b82a7e92b72d SHA512 79ac5a389f5a6bcb145e8e387ae2cbdf0679996a9f66fe38a8e62cd893b6ed68943824d5538e7408b57ecfa4182aec20b837158c9a6f50188c1e9aae176a4f5f
-DIST libcxx-8.0.0rc3.src.tar.xz 1755192 BLAKE2B 32d0602a13a273f396f139dd25f67ed0a12881c618eef35e0bb9b6d8d8cb786f130ce3ce7e8027f8f2a2516de5d1f9753bc12e81497a0bc919731866da04dba2 SHA512 f59e6fdd20d18cfb39c426eadcda5a611dc79735fc1fc8c4cebd4106afa35736ceb3500bba7f162bccced1964785fc18c129e9bb68dd6549b205cae14cd46f8b
 DIST libcxx-8.0.0rc5.src.tar.xz 1755168 BLAKE2B ec3e77fc15d92d4a2e04b706b52379e2f5fefbdd00e6f1bd63061c42781330b279507e690f2f14185e18893bb7b985251e68b5282b26b4c20afbed671d35073b SHA512 aaf6495ea7ddf68441aa4422ca7d0d02f17875553f34010d1e5061a5180774990b227edc6fe133dd4081de7e4f835228ac286b974800fd396b3650c4f7899b7a

diff --git a/sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild
deleted file mode 100644
index 4e0e73c96b4..00000000000
--- a/sys-libs/libcxx/libcxx-8.0.0_rc2.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild
deleted file mode 100644
index 4e0e73c96b4..00000000000
--- a/sys-libs/libcxx/libcxx-8.0.0_rc3.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-03-20 15:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-03-20 15:02 UTC (permalink / raw
  To: gentoo-commits

commit:     6f1a0b24736ead6e7de5d9594cc0681d52c669d2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 20 14:14:57 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 20 15:01:49 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f1a0b24

sys-libs/libcxx: Bump to 8.0.0 final

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-8.0.0.ebuild | 215 ++++++++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 249dc4cadbe..72717228eb2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
+DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03
 DIST libcxx-8.0.0rc5.src.tar.xz 1755168 BLAKE2B ec3e77fc15d92d4a2e04b706b52379e2f5fefbdd00e6f1bd63061c42781330b279507e690f2f14185e18893bb7b985251e68b5282b26b4c20afbed671d35073b SHA512 aaf6495ea7ddf68441aa4422ca7d0d02f17875553f34010d1e5061a5180774990b227edc6fe133dd4081de7e4f835228ac286b974800fd396b3650c4f7899b7a

diff --git a/sys-libs/libcxx/libcxx-8.0.0.ebuild b/sys-libs/libcxx/libcxx-8.0.0.ebuild
new file mode 100644
index 00000000000..29aa632a979
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-8.0.0.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-03-20 15:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-03-20 15:02 UTC (permalink / raw
  To: gentoo-commits

commit:     05add8e01e2781aaf121b2ca17604a8ebe19eb77
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 20 14:17:04 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 20 15:01:54 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05add8e0

sys-libs/libcxx: Remove 8.0.0rc5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 -
 sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild | 215 --------------------------------
 2 files changed, 216 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 72717228eb2..ea4e572a5b7 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03
-DIST libcxx-8.0.0rc5.src.tar.xz 1755168 BLAKE2B ec3e77fc15d92d4a2e04b706b52379e2f5fefbdd00e6f1bd63061c42781330b279507e690f2f14185e18893bb7b985251e68b5282b26b4c20afbed671d35073b SHA512 aaf6495ea7ddf68441aa4422ca7d0d02f17875553f34010d1e5061a5180774990b227edc6fe133dd4081de7e4f835228ac286b974800fd396b3650c4f7899b7a

diff --git a/sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild b/sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild
deleted file mode 100644
index 4e0e73c96b4..00000000000
--- a/sys-libs/libcxx/libcxx-8.0.0_rc5.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://prereleases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-04-17 20:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-04-17 20:09 UTC (permalink / raw
  To: gentoo-commits

commit:     5516e831962b807658a934f1747def57a1999c14
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 17 19:12:17 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 17 20:09:46 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5516e831

sys-libs/libcxx: Bump to 7.1.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-7.1.0.ebuild | 215 ++++++++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ea4e572a5b7..6349d71ca1e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
+DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03

diff --git a/sys-libs/libcxx/libcxx-7.1.0.ebuild b/sys-libs/libcxx/libcxx-7.1.0.ebuild
new file mode 100644
index 00000000000..29aa632a979
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-7.1.0.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${P/_/}.src
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-04-19 20:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-04-19 20:11 UTC (permalink / raw
  To: gentoo-commits

commit:     16da16daadda372eea5ae2548b9be67c6556317d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 19 19:48:48 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Apr 19 20:10:54 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16da16da

sys-libs/libcxx: Remove 7.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-7.0.9999.ebuild | 227 ---------------------------------
 1 file changed, 227 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-7.0.9999.ebuild b/sys-libs/libcxx/libcxx-7.0.9999.ebuild
deleted file mode 100644
index 536457a1380..00000000000
--- a/sys-libs/libcxx/libcxx-7.0.9999.ebuild
+++ /dev/null
@@ -1,227 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_70"
-PYTHON_COMPAT=( python2_7 )
-
-[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != *9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [[ ${PV} != *9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-05-11 11:25 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2019-05-11 11:25 UTC (permalink / raw
  To: gentoo-commits

commit:     82dc2933060a02fe46b339a2638a47e1a06db227
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Sat May 11 11:23:20 2019 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Sat May 11 11:23:20 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=82dc2933

sys-libs/libcxx: amd64 stable wrt bug #674068

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.11
RepoMan-Options: --include-arches="amd64"

 sys-libs/libcxx/libcxx-7.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-7.1.0.ebuild b/sys-libs/libcxx/libcxx-7.1.0.ebuild
index 29aa632a979..b6b339f57f9 100644
--- a/sys-libs/libcxx/libcxx-7.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-7.1.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-05-11 11:25 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2019-05-11 11:25 UTC (permalink / raw
  To: gentoo-commits

commit:     c56afce29050e7daf60bbb84759adb4994192b0b
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Sat May 11 11:24:27 2019 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Sat May 11 11:24:27 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c56afce2

sys-libs/libcxx: x86 stable wrt bug #674068

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>
Package-Manager: Portage-2.3.62, Repoman-2.3.11
RepoMan-Options: --include-arches="x86"

 sys-libs/libcxx/libcxx-7.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-7.1.0.ebuild b/sys-libs/libcxx/libcxx-7.1.0.ebuild
index b6b339f57f9..9350c33608b 100644
--- a/sys-libs/libcxx/libcxx-7.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-7.1.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-05-13 17:36 Aaron Bauman
  0 siblings, 0 replies; 608+ messages in thread
From: Aaron Bauman @ 2019-05-13 17:36 UTC (permalink / raw
  To: gentoo-commits

commit:     7233951c3ecc654de8933d1140c62dc40126c6c9
Author:     Aaron Bauman <bman <AT> gentoo <DOT> org>
AuthorDate: Mon May 13 17:33:44 2019 +0000
Commit:     Aaron Bauman <bman <AT> gentoo <DOT> org>
CommitDate: Mon May 13 17:33:44 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7233951c

sys-libs/libcxx: arm64 stable

Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>
Package-Manager: Portage-2.3.66, Repoman-2.3.12
RepoMan-Options: --include-arches="arm64"

 sys-libs/libcxx/libcxx-7.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-7.1.0.ebuild b/sys-libs/libcxx/libcxx-7.1.0.ebuild
index 9350c33608b..f1c848b8df7 100644
--- a/sys-libs/libcxx/libcxx-7.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-7.1.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-fbsd"
+KEYWORDS="amd64 ~arm arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-05-15  9:53 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-05-15  9:53 UTC (permalink / raw
  To: gentoo-commits

commit:     e6dfcb8213628e83fa3438b20829414bb31c3499
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 15 09:50:20 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 15 09:53:28 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6dfcb82

sys-libs/libcxx: Remove 7.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-7.0.1.ebuild | 215 ------------------------------------
 2 files changed, 216 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6349d71ca1e..cb80088d4f4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
-DIST libcxx-7.0.1.src.tar.xz 1638188 BLAKE2B 541d27c3801895d59ad06b15de5fe9ff0d9b5b3ef393a5fad05a12a52dd6453ecc530b0ce3129624a27e959d3c9c5f7066ebb57fd85caca538ebf4f990aa6967 SHA512 b3ad7ad95bdcf2d902b29de8a0b757d4dbc220bc1a22a813d6bcec15a34b3aa42e85c59f4cecbb318c799ca611550b44c328b37278f4349b984016ad4556c1d8
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03

diff --git a/sys-libs/libcxx/libcxx-7.0.1.ebuild b/sys-libs/libcxx/libcxx-7.0.1.ebuild
deleted file mode 100644
index 9dfc42c1c3d..00000000000
--- a/sys-libs/libcxx/libcxx-7.0.1.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-06-17  6:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-06-17  6:25 UTC (permalink / raw
  To: gentoo-commits

commit:     5e31758a28be03af114f45feb4fdb99e9d10e81a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 17 05:54:16 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 17 06:25:06 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5e31758a

sys-libs/libcxx: Enable Python 3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9999.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 2547da3dfa7..06a570bb8c0 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -10,7 +10,7 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
-PYTHON_COMPAT=( python2_7 )
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 
 [[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-07-20 12:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-07-20 12:50 UTC (permalink / raw
  To: gentoo-commits

commit:     5bcf8996986b70c1e314a9f92dc24cbfe1d8b3c6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 20 08:52:51 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 12:50:02 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bcf8996

sys-libs/libcxx: Bump to 8.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-8.0.1.ebuild | 216 ++++++++++++++++++++++++++++++++++++
 2 files changed, 217 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index cb80088d4f4..7e8a64bd013 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03
+DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
new file mode 100644
index 00000000000..cf4bd1b3b35
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild
@@ -0,0 +1,216 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python2_7 )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+MY_P=${P}.src
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz"
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+S=${WORKDIR}/${MY_P}
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-07-20 22:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-07-20 22:34 UTC (permalink / raw
  To: gentoo-commits

commit:     5619e646ba30e34e761f152cc3f90ce095cd0071
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 20 20:55:28 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 22:34:46 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5619e646

sys-libs/libcxx: Bump -9999 to EAPI 7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9999.ebuild | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index 06a570bb8c0..71e8ea26429 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -1,7 +1,7 @@
 # Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
 # Ninja provides better scalability and cleaner verbose output, and is used
 # throughout all LLVM projects.
@@ -166,6 +166,7 @@ multilib_src_configure() {
 }
 
 multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
 	cmake-utils_src_make check-libcxx
 }
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-07-21  7:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-07-21  7:34 UTC (permalink / raw
  To: gentoo-commits

commit:     93e032968ea34d577db8648cea3a03fc94780999
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 21 07:13:33 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 21 07:33:51 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=93e03296

sys-libs/libcxx: Add 9.0 branch live ebuild

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.9999.ebuild | 228 +++++++++++++++++++++++++++++++++
 1 file changed, 228 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-9.0.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.9999.ebuild
new file mode 100644
index 00000000000..7e08263cf4b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-9.0.9999.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_90"
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+
+[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
+
+inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+if [[ ${PV} != *9999 ]] ; then
+	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
+	S="${WORKDIR}/${P}.src"
+else
+	SRC_URI=""
+fi
+
+LICENSE="|| ( UoI-NCSA MIT )"
+SLOT="0"
+if [[ ${PV} != *9999 ]] ; then
+	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+else
+	KEYWORDS=""
+fi
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
+	app-arch/xz-utils
+	>=sys-devel/llvm-6"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-07-21  7:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-07-21  7:34 UTC (permalink / raw
  To: gentoo-commits

commit:     ac22158e8df6d1087902831ec56e918c22852836
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 21 07:14:31 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 21 07:34:07 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac22158e

sys-libs/libcxx: Remove 8.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-8.0.9999.ebuild | 227 ---------------------------------
 1 file changed, 227 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-8.0.9999.ebuild b/sys-libs/libcxx/libcxx-8.0.9999.ebuild
deleted file mode 100644
index 523cba0073e..00000000000
--- a/sys-libs/libcxx/libcxx-8.0.9999.ebuild
+++ /dev/null
@@ -1,227 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_80"
-PYTHON_COMPAT=( python2_7 )
-
-[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != *9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-if [[ ${PV} != *9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-07-21 19:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-07-21 19:40 UTC (permalink / raw
  To: gentoo-commits

commit:     ccce80e9ee3bb9ae9d0cc4520a239ec94817df4f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 21 10:35:17 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 21 19:40:09 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ccce80e9

sys-libs/libcxx: -9999 → -10.0.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-9999.ebuild => libcxx-10.0.0.9999.ebuild} | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
similarity index 98%
rename from sys-libs/libcxx/libcxx-9999.ebuild
rename to sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 71e8ea26429..7f4a5523bd2 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -12,14 +12,14 @@ EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
 	https://github.com/llvm-mirror/libcxx.git"
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 
-[[ ${PV} == 9999 ]] && SCM="git-r3" || SCM=""
+[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
 
 inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
 	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != 9999 ]] ; then
+if [[ ${PV} != *9999 ]] ; then
 	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
 	S="${WORKDIR}/${P}.src"
 else
@@ -28,7 +28,7 @@ fi
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-if [[ ${PV} != 9999 ]] ; then
+if [[ ${PV} != *9999 ]] ; then
 	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
 else
 	KEYWORDS=""


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-07-21 19:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-07-21 19:40 UTC (permalink / raw
  To: gentoo-commits

commit:     c4972973324ead9c47cc5ea9b09facde59724446
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 21 10:41:03 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 21 19:40:31 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c4972973

sys-libs/libcxx: -9.0.9999 → -9.0.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-9.0.9999.ebuild => libcxx-9.0.0.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-9.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-9.0.0.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-08-18 10:07 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-08-18 10:07 UTC (permalink / raw
  To: gentoo-commits

commit:     c214cfae61197b65686e7bdda0a06483115f8c6f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 18 08:56:33 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Aug 18 10:07:33 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c214cfae

sys-libs/libcxx: Update LICENSE for 9+

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-9.0.0.9999.ebuild  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 7f4a5523bd2..e1be8141143 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -26,7 +26,7 @@ else
 	SRC_URI=""
 fi
 
-LICENSE="|| ( UoI-NCSA MIT )"
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 if [[ ${PV} != *9999 ]] ; then
 	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"

diff --git a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
index 7e08263cf4b..4240c6da335 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
@@ -27,7 +27,7 @@ else
 	SRC_URI=""
 fi
 
-LICENSE="|| ( UoI-NCSA MIT )"
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 if [[ ${PV} != *9999 ]] ; then
 	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-10  7:06 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2019-09-10  7:06 UTC (permalink / raw
  To: gentoo-commits

commit:     a09938c97dec8d711720af853b9ec0220ba4891b
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 10 07:05:58 2019 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 07:05:58 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a09938c9

sys-libs/libcxx: amd64 stable wrt bug #693856

Package-Manager: Portage-2.3.69, Repoman-2.3.16
RepoMan-Options: --include-arches="amd64"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-8.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
index cf4bd1b3b35..c424f2d7579 100644
--- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-10  7:10 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2019-09-10  7:10 UTC (permalink / raw
  To: gentoo-commits

commit:     493de6b98e402307b2e5d062f01e477e8b6ba9ae
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 10 07:10:06 2019 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 07:10:06 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=493de6b9

sys-libs/libcxx: x86 stable wrt bug #693856

Package-Manager: Portage-2.3.69, Repoman-2.3.16
RepoMan-Options: --include-arches="x86"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-8.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
index c424f2d7579..fc365cc3332 100644
--- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-13 15:47 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2019-09-13 15:47 UTC (permalink / raw
  To: gentoo-commits

commit:     c9154f2c2016ed5732531f4fd056a1d50bf1180f
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 13 15:46:28 2019 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Fri Sep 13 15:46:28 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9154f2c

sys-libs/libcxx: arm stable wrt bug #693856

Package-Manager: Portage-2.3.69, Repoman-2.3.16
RepoMan-Options: --include-arches="arm"
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-8.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
index fc365cc3332..d3a06927aff 100644
--- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86 ~amd64-fbsd"
+KEYWORDS="amd64 arm ~arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-13 18:03 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2019-09-13 18:03 UTC (permalink / raw
  To: gentoo-commits

commit:     3a315e846e37f5c2b3e6e503fbe4a7880b5b185f
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 13 18:03:25 2019 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Fri Sep 13 18:03:49 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a315e84

sys-libs/libcxx: arm stable wrt bug #692104

Package-Manager: Portage-2.3.69, Repoman-2.3.16
RepoMan-Options: --include-arches="arm"
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-7.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-7.1.0.ebuild b/sys-libs/libcxx/libcxx-7.1.0.ebuild
index f1c848b8df7..6ef14eac495 100644
--- a/sys-libs/libcxx/libcxx-7.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-7.1.0.ebuild
@@ -19,7 +19,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86 ~amd64-fbsd"
+KEYWORDS="amd64 arm arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-16 22:13 Aaron Bauman
  0 siblings, 0 replies; 608+ messages in thread
From: Aaron Bauman @ 2019-09-16 22:13 UTC (permalink / raw
  To: gentoo-commits

commit:     70c1071f0fd7f27650ea85d05035031427317efd
Author:     Aaron Bauman <bman <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 16 22:00:41 2019 +0000
Commit:     Aaron Bauman <bman <AT> gentoo <DOT> org>
CommitDate: Mon Sep 16 22:13:50 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70c1071f

sys-libs/libcxx: arm64 stable (bug #693856)

Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>
Package-Manager: Portage-2.3.76, Repoman-2.3.17

 sys-libs/libcxx/libcxx-8.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
index d3a06927aff..c772def7a37 100644
--- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${
 
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 x86 ~amd64-fbsd"
+KEYWORDS="amd64 arm arm64 x86 ~amd64-fbsd"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-17 21:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-09-17 21:01 UTC (permalink / raw
  To: gentoo-commits

commit:     65a07b2a08a6d2635e6ba5cd141aad586455fb86
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 17 21:00:22 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 17 21:00:54 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=65a07b2a

sys-libs/libcxx: Use BDEPEND semi-properly

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 6 +++---
 sys-libs/libcxx/libcxx-9.0.0.9999.ebuild  | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index e1be8141143..04b405e517e 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -46,10 +46,10 @@ RDEPEND="
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
 	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
 
 DOCS=( CREDITS.TXT )
 

diff --git a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
index 4240c6da335..2b9a0e1433d 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
@@ -47,10 +47,10 @@ RDEPEND="
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
 DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
 	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
 
 DOCS=( CREDITS.TXT )
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-20 22:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-09-20 22:12 UTC (permalink / raw
  To: gentoo-commits

commit:     c3c68acebfd1ebe4b216bc89e86c8ebd80f8a22f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 20 09:33:37 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep 20 22:12:02 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3c68ace

sys-libs/libcxx: Bump to 9.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-9.0.0.ebuild | 217 ++++++++++++++++++++++++++++++++++++
 2 files changed, 218 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7e8a64bd013..32934db63b0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,3 +2,4 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9f
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
+DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e

diff --git a/sys-libs/libcxx/libcxx-9.0.0.ebuild b/sys-libs/libcxx/libcxx-9.0.0.ebuild
new file mode 100644
index 00000000000..c259d0f32e0
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-9.0.0.ebuild
@@ -0,0 +1,217 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Ninja provides better scalability and cleaner verbose output, and is used
+# throughout all LLVM projects.
+: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
+# (needed due to CMAKE_BUILD_TYPE != Gentoo)
+CMAKE_MIN_VERSION=3.7.0-r1
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+
+inherit cmake-multilib llvm multiprocessing python-any-r1 \
+	toolchain-funcs
+
+MY_P=${P}.src
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+SRC_URI="https://releases.llvm.org/${PV}/${MY_P}.tar.xz"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-fbsd"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+S=${WORKDIR}/${MY_P}
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-21  9:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-09-21  9:15 UTC (permalink / raw
  To: gentoo-commits

commit:     0cc5129eff9fbb30b12c53ee50aca84f2a1749a3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 21 08:33:05 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Sep 21 09:15:38 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cc5129e

sys-libs/libcxx: Reorder ebuild vars in 9+

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.0.ebuild | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.0.ebuild b/sys-libs/libcxx/libcxx-9.0.0.ebuild
index c259d0f32e0..d3f71fd8212 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.ebuild
@@ -17,6 +17,7 @@ MY_P=${P}.src
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
 SRC_URI="https://releases.llvm.org/${PV}/${MY_P}.tar.xz"
+S=${WORKDIR}/${MY_P}
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -39,8 +40,6 @@ BDEPEND="
 	test? ( >=sys-devel/clang-3.9.0
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
 
-S=${WORKDIR}/${MY_P}
-
 DOCS=( CREDITS.TXT )
 
 PATCHES=(


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-09-21  9:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-09-21  9:15 UTC (permalink / raw
  To: gentoo-commits

commit:     7be1d385b317055e3f5367c7a952e6760dcc5e12
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 21 09:06:36 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Sep 21 09:15:42 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7be1d385

sys-libs/libcxx: Remove weird, unmaintainable PV-ifs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 21 +++++----------------
 sys-libs/libcxx/libcxx-9.0.0.9999.ebuild  | 23 ++++++-----------------
 2 files changed, 11 insertions(+), 33 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 04b405e517e..83d8eeaa8c4 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -8,31 +8,20 @@ EAPI=7
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 # (needed due to CMAKE_BUILD_TYPE != Gentoo)
 CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 
-[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
 	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != *9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
+SRC_URI=""
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-if [[ ${PV} != *9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
+KEYWORDS=""
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"

diff --git a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
index 2b9a0e1433d..5a84e2f5f99 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
@@ -8,32 +8,21 @@ EAPI=7
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 # (needed due to CMAKE_BUILD_TYPE != Gentoo)
 CMAKE_MIN_VERSION=3.7.0-r1
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_90"
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
 
-[[ ${PV} == *9999 ]] && SCM="git-r3" || SCM=""
-
-inherit ${SCM} cmake-multilib llvm multiprocessing python-any-r1 \
+inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
 	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-if [[ ${PV} != *9999 ]] ; then
-	SRC_URI="https://llvm.org/releases/${PV}/${P}.src.tar.xz"
-	S="${WORKDIR}/${P}.src"
-else
-	SRC_URI=""
-fi
+SRC_URI=""
+EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
+	https://github.com/llvm-mirror/libcxx.git"
+EGIT_BRANCH="release_90"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-if [[ ${PV} != *9999 ]] ; then
-	KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
-else
-	KEYWORDS=""
-fi
+KEYWORDS=""
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-10-11 18:57 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-10-11 18:57 UTC (permalink / raw
  To: gentoo-commits

commit:     f1a4a81a7a3c2e532dd7e6e4d9e83a8ba6349189
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 11 18:28:03 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct 11 18:57:18 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1a4a81a

sys-libs/libcxx: Drop redundant 8.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-8.0.0.ebuild | 215 ------------------------------------
 2 files changed, 216 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 32934db63b0..0c0d35f81d8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,4 @@
 DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
-DIST libcxx-8.0.0.src.tar.xz 1752308 BLAKE2B 1e8cd8c7100f5f8b943ba8f38b0b59a0fd5e5bea834953483a67502f67de3eb51eba4ed4be17cdb54406da4ad7ebc6fef33934c59db982afa55856ce9f1f46ff SHA512 2e0fcd3e78f7e15ea894e52c51351daef8e3a2aaf53b3df7497b11403d28f5269ff49a4674bacea1d565a5faa2b24502caaaeff9cd48518f0d141563d8f9cc03
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e

diff --git a/sys-libs/libcxx/libcxx-8.0.0.ebuild b/sys-libs/libcxx/libcxx-8.0.0.ebuild
deleted file mode 100644
index 5f76d1a34cc..00000000000
--- a/sys-libs/libcxx/libcxx-8.0.0.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-10-12 11:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-10-12 11:27 UTC (permalink / raw
  To: gentoo-commits

commit:     784669c573014589ec3bc7e61153463ac2db90bd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 12 11:24:39 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Oct 12 11:26:54 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=784669c5

sys-libs/libcxx: Upstream is now at 9.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-9.0.0.9999.ebuild => libcxx-9.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-9.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-9.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-11-01 13:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-11-01 13:16 UTC (permalink / raw
  To: gentoo-commits

commit:     6af202dc37ef6ec98c3f93b59a2cbd80040931eb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  1 08:34:52 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov  1 13:15:54 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6af202dc

sys-libs/libcxx: Switch live to monorepo

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild |  9 +++++++--
 sys-libs/libcxx/libcxx-9.0.1.9999.ebuild  | 11 ++++++++---
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 83d8eeaa8c4..9c722cc3362 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -16,8 +16,8 @@ inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
 SRC_URI=""
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
+EGIT_REPO_URI="https://github.com/llvm/llvm-project.git"
+S=${WORKDIR}/${P}/libcxx
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -73,6 +73,11 @@ pkg_setup() {
 	fi
 }
 
+src_unpack() {
+	git-r3_fetch
+	git-r3_checkout '' '' '' libcxx
+}
+
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null

diff --git a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
index 5a84e2f5f99..f70527cd308 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
@@ -16,9 +16,9 @@ inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
 SRC_URI=""
-EGIT_REPO_URI="https://git.llvm.org/git/libcxx.git
-	https://github.com/llvm-mirror/libcxx.git"
-EGIT_BRANCH="release_90"
+EGIT_REPO_URI="https://github.com/llvm/llvm-project.git"
+EGIT_BRANCH="release/9.x"
+S=${WORKDIR}/${P}/libcxx
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -74,6 +74,11 @@ pkg_setup() {
 	fi
 }
 
+src_unpack() {
+	git-r3_fetch
+	git-r3_checkout '' '' '' libcxx
+}
+
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-11-03 10:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-11-03 10:00 UTC (permalink / raw
  To: gentoo-commits

commit:     e0c7d4dd86154133d0a6c260f664a1f6c39198ff
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  3 09:44:12 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov  3 10:00:21 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0c7d4dd

sys-libs/libcxx: Remove redundant CMAKE* in EAPI 7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 6 ------
 sys-libs/libcxx/libcxx-9.0.0.ebuild       | 6 ------
 sys-libs/libcxx/libcxx-9.0.1.9999.ebuild  | 6 ------
 3 files changed, 18 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 9c722cc3362..cf08961e9c8 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -3,13 +3,7 @@
 
 EAPI=7
 
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-
 inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-9.0.0.ebuild b/sys-libs/libcxx/libcxx-9.0.0.ebuild
index a4e2b51d8ab..a4208b8cb49 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.ebuild
@@ -3,13 +3,7 @@
 
 EAPI=7
 
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-
 inherit cmake-multilib llvm multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
index f70527cd308..4124a2fbf98 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
@@ -3,13 +3,7 @@
 
 EAPI=7
 
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-
 inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-11-03 11:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-11-03 11:46 UTC (permalink / raw
  To: gentoo-commits

commit:     462a7e914eaf7d039b91b8e9fb55396fcdc68cea
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  1 18:02:58 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov  3 11:46:23 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=462a7e91

sys-libs/libcxx: Port to llvm.org eclass

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 12 +++---------
 sys-libs/libcxx/libcxx-9.0.0.ebuild       |  7 +++----
 sys-libs/libcxx/libcxx-9.0.1.9999.ebuild  | 13 +++----------
 3 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index cf08961e9c8..f5f67053d77 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -4,14 +4,13 @@
 EAPI=7
 
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI=""
-EGIT_REPO_URI="https://github.com/llvm/llvm-project.git"
-S=${WORKDIR}/${P}/libcxx
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -67,11 +66,6 @@ pkg_setup() {
 	fi
 }
 
-src_unpack() {
-	git-r3_fetch
-	git-r3_checkout '' '' '' libcxx
-}
-
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null

diff --git a/sys-libs/libcxx/libcxx-9.0.0.ebuild b/sys-libs/libcxx/libcxx-9.0.0.ebuild
index a4208b8cb49..76ae63ba35a 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.ebuild
@@ -4,14 +4,13 @@
 EAPI=7
 
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 
-MY_P=${P}.src
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV}/${MY_P}.tar.xz"
-S=${WORKDIR}/${MY_P}
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"

diff --git a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
index 4124a2fbf98..f5f67053d77 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
@@ -4,15 +4,13 @@
 EAPI=7
 
 PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib git-r3 llvm multiprocessing python-any-r1 \
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI=""
-EGIT_REPO_URI="https://github.com/llvm/llvm-project.git"
-EGIT_BRANCH="release/9.x"
-S=${WORKDIR}/${P}/libcxx
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -68,11 +66,6 @@ pkg_setup() {
 	fi
 }
 
-src_unpack() {
-	git-r3_fetch
-	git-r3_checkout '' '' '' libcxx
-}
-
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-11-23  7:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-11-23  7:58 UTC (permalink / raw
  To: gentoo-commits

commit:     272d04251d7706298434226ae34ac98d6cf9e32e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 23 07:49:02 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 23 07:55:25 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=272d0425

sys-libs/libcxx: Bump to 9.0.1_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild | 209 ++++++++++++++++++++++++++++++++
 2 files changed, 210 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0c0d35f81d8..74c4dbd9e09 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,3 +2,4 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9f
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
+DIST llvmorg-9.0.1-rc1.tar.gz 113193716 BLAKE2B 1ab52c778a139d33674589c27bf5a4d619dd4df49344b508c16de3ca6fad09c19480ceb615e0d9cf6d1981c7f28e106f087c0cd7bc2ccb844bec7099f5d227c2 SHA512 ed4b11cadbd57aa5f531d598e320a6bd54c67a8c713671af12ce62bc02283515ecbbc65ccbe3b0db3bad517cc4e6386cc3565be9eb9b9d06ca2a598428abf557

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
new file mode 100644
index 00000000000..f5f67053d77
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-11-27  8:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-11-27  8:58 UTC (permalink / raw
  To: gentoo-commits

commit:     708fe7d2e647a6cf6257e04ed6c99639a1444e18
Author:     Yang Yang <geraint0923 <AT> gmail <DOT> com>
AuthorDate: Sun Nov 24 05:07:44 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 27 08:58:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=708fe7d2

sys-libs/libcxx-9.0.0: add USE to explicitly link compiler-rt

According to
https://clang.llvm.org/docs/Toolchain.html#compiler-rt-llvm,
`-DLIBCXX_USE_COMPILER_RT=YES` is needed to linked to compiler-rt.

Otherwise building libcxx using clang+compiler-rt will fail.

Signed-off-by: Yang Yang <geraint0923 <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/13748
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 4 +++-
 sys-libs/libcxx/libcxx-9.0.0.ebuild       | 4 +++-
 sys-libs/libcxx/libcxx-9.0.1.9999.ebuild  | 4 +++-
 sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild   | 4 +++-
 4 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index f5f67053d77..db9250d5440 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -93,7 +93,7 @@ src_configure() {
 multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
 	if use libunwind; then
 		# work-around missing -lunwind upstream
 		extra_libs+=( -lunwind )
@@ -104,6 +104,7 @@ multilib_src_configure() {
 			   ${LDFLAGS} -print-libgcc-file-name)
 			if [[ ${compiler_rt} == *libclang_rt* ]]; then
 				want_gcc_s=OFF
+				want_compiler_rt=ON
 				extra_libs+=( "${compiler_rt}" )
 			fi
 		fi
@@ -130,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 

diff --git a/sys-libs/libcxx/libcxx-9.0.0.ebuild b/sys-libs/libcxx/libcxx-9.0.0.ebuild
index 76ae63ba35a..41c96a83d61 100644
--- a/sys-libs/libcxx/libcxx-9.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.0.ebuild
@@ -93,7 +93,7 @@ src_configure() {
 multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
 	if use libunwind; then
 		# work-around missing -lunwind upstream
 		extra_libs+=( -lunwind )
@@ -104,6 +104,7 @@ multilib_src_configure() {
 			   ${LDFLAGS} -print-libgcc-file-name)
 			if [[ ${compiler_rt} == *libclang_rt* ]]; then
 				want_gcc_s=OFF
+				want_compiler_rt=ON
 				extra_libs+=( "${compiler_rt}" )
 			fi
 		fi
@@ -130,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 

diff --git a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
index f5f67053d77..db9250d5440 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
@@ -93,7 +93,7 @@ src_configure() {
 multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
 	if use libunwind; then
 		# work-around missing -lunwind upstream
 		extra_libs+=( -lunwind )
@@ -104,6 +104,7 @@ multilib_src_configure() {
 			   ${LDFLAGS} -print-libgcc-file-name)
 			if [[ ${compiler_rt} == *libclang_rt* ]]; then
 				want_gcc_s=OFF
+				want_compiler_rt=ON
 				extra_libs+=( "${compiler_rt}" )
 			fi
 		fi
@@ -130,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
index f5f67053d77..db9250d5440 100644
--- a/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
@@ -93,7 +93,7 @@ src_configure() {
 multilib_src_configure() {
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
 	if use libunwind; then
 		# work-around missing -lunwind upstream
 		extra_libs+=( -lunwind )
@@ -104,6 +104,7 @@ multilib_src_configure() {
 			   ${LDFLAGS} -print-libgcc-file-name)
 			if [[ ${compiler_rt} == *libclang_rt* ]]; then
 				want_gcc_s=OFF
+				want_compiler_rt=ON
 				extra_libs+=( "${compiler_rt}" )
 			fi
 		fi
@@ -130,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-07  9:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-07  9:15 UTC (permalink / raw
  To: gentoo-commits

commit:     5b5896e51eb31b3671b742516feac1c987f4c950
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  7 07:30:04 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec  7 09:15:23 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b5896e5

sys-libs/libcxx: Bump to 9.0.1rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild | 211 ++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 74c4dbd9e09..9206ca8550a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,3 +3,4 @@ DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf9
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
 DIST llvmorg-9.0.1-rc1.tar.gz 113193716 BLAKE2B 1ab52c778a139d33674589c27bf5a4d619dd4df49344b508c16de3ca6fad09c19480ceb615e0d9cf6d1981c7f28e106f087c0cd7bc2ccb844bec7099f5d227c2 SHA512 ed4b11cadbd57aa5f531d598e320a6bd54c67a8c713671af12ce62bc02283515ecbbc65ccbe3b0db3bad517cc4e6386cc3565be9eb9b9d06ca2a598428abf557
+DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
new file mode 100644
index 00000000000..db9250d5440
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-07  9:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-07  9:15 UTC (permalink / raw
  To: gentoo-commits

commit:     c69107482acc52e465d4fdc1a97262c19600959b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  7 07:49:27 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec  7 09:15:39 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c6910748

sys-libs/libcxx: Remove 9.0.1rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 -
 sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild | 211 --------------------------------
 2 files changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9206ca8550a..0f23074bc87 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,5 +2,4 @@ DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9f
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
-DIST llvmorg-9.0.1-rc1.tar.gz 113193716 BLAKE2B 1ab52c778a139d33674589c27bf5a4d619dd4df49344b508c16de3ca6fad09c19480ceb615e0d9cf6d1981c7f28e106f087c0cd7bc2ccb844bec7099f5d227c2 SHA512 ed4b11cadbd57aa5f531d598e320a6bd54c67a8c713671af12ce62bc02283515ecbbc65ccbe3b0db3bad517cc4e6386cc3565be9eb9b9d06ca2a598428abf557
 DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
deleted file mode 100644
index db9250d5440..00000000000
--- a/sys-libs/libcxx/libcxx-9.0.1_rc1.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-08 21:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-08 21:20 UTC (permalink / raw
  To: gentoo-commits

commit:     0833826fb938eb0b4053996146ce4609cd8abae7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec  8 21:01:45 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Dec  8 21:20:17 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0833826f

sys-libs/libcxx: Add KEYWORDS to 9.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
index db9250d5440..41c96a83d61 100644
--- a/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-09 19:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-09 19:20 UTC (permalink / raw
  To: gentoo-commits

commit:     8f69fa96c423b4f476ba57fbe245d89c692d20b1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec  8 09:29:08 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Dec  9 19:20:29 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f69fa96

sys-libs/libcxx: Remove 6*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-6.0.1.ebuild | 215 ------------------------------------
 2 files changed, 216 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0f23074bc87..b9d29433c50 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
-DIST libcxx-6.0.1.src.tar.xz 1552328 BLAKE2B 65a6addd04e530c2a72e8cba207282b9e9fafc01a594d7b11f63d10b6f88eca67a3cdf90b8055e410ede358d9be1f63fbe427f308e1337833447c0260d96e1c8 SHA512 c04f628b0924d76f035f615b59d19ce42dfc19c9a8eea4fe2b22a95cfe5a037ebdb30943fd741443939df5b4cf692bc1e51c840fefefbd134e3afbe2a75fe875
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e

diff --git a/sys-libs/libcxx/libcxx-6.0.1.ebuild b/sys-libs/libcxx/libcxx-6.0.1.ebuild
deleted file mode 100644
index 23be36cbff6..00000000000
--- a/sys-libs/libcxx/libcxx-6.0.1.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-14  9:55 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-14  9:55 UTC (permalink / raw
  To: gentoo-commits

commit:     69822ca0b2ba6b17c93e2224de95208e79b5acad
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 14 08:57:05 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 14 09:55:08 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69822ca0

sys-libs/libcxx: Bump to 9.0.1_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild | 211 ++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index b9d29433c50..881541a3b7c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,3 +2,4 @@ DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf9
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
 DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c
+DIST llvmorg-9.0.1-rc3.tar.gz 113205740 BLAKE2B 3ca81e812833ecc2ac1bacfdeb86f54609ee125ba7390ce6af0113e949496149102360f35a9a0194dff93fb5cb6ade40a68382a03a7e55771a13198abb7ca9de SHA512 ea56a4ee57aacdd00a1d6551cdc768ecce3124a0eb6a9d09fe060bb147019a5119b2a9eaca576474be42e0296293daa923edd86dadb6759df0c2d7fc7a74f9f1

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild
new file mode 100644
index 00000000000..41c96a83d61
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-21  8:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-21  8:30 UTC (permalink / raw
  To: gentoo-commits

commit:     69d278aca2f5041f96a1b3a9456dcc7d6abe81c3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 21 07:29:24 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 21 08:29:59 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69d278ac

sys-libs/libcxx: Bump to 9.0.1 final

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 +
 sys-libs/libcxx/libcxx-9.0.1.ebuild | 211 ++++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 881541a3b7c..933947f5d2e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,3 +3,4 @@ DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389a
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
 DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c
 DIST llvmorg-9.0.1-rc3.tar.gz 113205740 BLAKE2B 3ca81e812833ecc2ac1bacfdeb86f54609ee125ba7390ce6af0113e949496149102360f35a9a0194dff93fb5cb6ade40a68382a03a7e55771a13198abb7ca9de SHA512 ea56a4ee57aacdd00a1d6551cdc768ecce3124a0eb6a9d09fe060bb147019a5119b2a9eaca576474be42e0296293daa923edd86dadb6759df0c2d7fc7a74f9f1
+DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
new file mode 100644
index 00000000000..41c96a83d61
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2019-12-21  8:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2019-12-21  8:30 UTC (permalink / raw
  To: gentoo-commits

commit:     e8ce83842cfb3e1ed3fdace351f8ea5d6e3be927
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 21 08:26:40 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 21 08:30:06 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e8ce8384

sys-libs/libcxx: Remove 9.0.1 RCs and live

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-9.0.1.9999.ebuild | 211 -------------------------------
 sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild  | 211 -------------------------------
 sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild  | 211 -------------------------------
 4 files changed, 635 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 933947f5d2e..f581d19370d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,4 @@
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
-DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c
-DIST llvmorg-9.0.1-rc3.tar.gz 113205740 BLAKE2B 3ca81e812833ecc2ac1bacfdeb86f54609ee125ba7390ce6af0113e949496149102360f35a9a0194dff93fb5cb6ade40a68382a03a7e55771a13198abb7ca9de SHA512 ea56a4ee57aacdd00a1d6551cdc768ecce3124a0eb6a9d09fe060bb147019a5119b2a9eaca576474be42e0296293daa923edd86dadb6759df0c2d7fc7a74f9f1
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
deleted file mode 100644
index db9250d5440..00000000000
--- a/sys-libs/libcxx/libcxx-9.0.1.9999.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
deleted file mode 100644
index 41c96a83d61..00000000000
--- a/sys-libs/libcxx/libcxx-9.0.1_rc2.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild b/sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild
deleted file mode 100644
index 41c96a83d61..00000000000
--- a/sys-libs/libcxx/libcxx-9.0.1_rc3.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-01-06 14:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-01-06 14:04 UTC (permalink / raw
  To: gentoo-commits

commit:     d8995d2a338ca6c1603f69c6bdf82d32538a2b93
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  6 13:47:02 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan  6 14:04:07 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8995d2a

sys-libs/libcxx: Remove 9.0.0*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-9.0.0.ebuild | 211 ------------------------------------
 2 files changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f581d19370d..a045639c84b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
-DIST libcxx-9.0.0.src.tar.xz 1814388 BLAKE2B 59b8967706d1f85b1c0d2b9932bd637aae7118ae461e2b31e1d17c9a2ee2e02ea0ea8b344074a9fc4b430b5c742b8ad30c10a0c44e5290528fdecd7571352879 SHA512 cbaca724c4f3e3a270dfd53aac50cbb920190fe55486b164d52e73845819dd22afb10c23f5875da59d433fd5b96a0f153208746117309ac1267a38fa56f4818e
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-9.0.0.ebuild b/sys-libs/libcxx/libcxx-9.0.0.ebuild
deleted file mode 100644
index 091dfe7c349..00000000000
--- a/sys-libs/libcxx/libcxx-9.0.0.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{6,7}} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-01-18 17:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-01-18 17:18 UTC (permalink / raw
  To: gentoo-commits

commit:     7559bd70094363830ede2317d88e6a5a3ce8ed1a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 18 16:41:07 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 18 17:18:42 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7559bd70

sys-libs/libcxx: Include 11.* ebuilds for master

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 211 ++++++++++++++++++++++++++++++
 1 file changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
new file mode 100644
index 00000000000..45df844722b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-01-23 10:20 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-01-23 10:20 UTC (permalink / raw
  To: gentoo-commits

commit:     026efe52147d36fc42ff0c53823bb611775a8cba
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 23 10:19:03 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Thu Jan 23 10:19:54 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=026efe52

sys-libs/libcxx: amd64 stable wrt bug #705530

Package-Manager: Portage-2.3.79, Repoman-2.3.16
RepoMan-Options: --include-arches="amd64"
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index 091dfe7c349..707b3ad943d 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-01-23 10:24 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-01-23 10:24 UTC (permalink / raw
  To: gentoo-commits

commit:     393119068270a0884193181a211a72d68be3b94a
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 23 10:23:33 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Thu Jan 23 10:23:33 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39311906

sys-libs/libcxx: x86 stable wrt bug #705530

Package-Manager: Portage-2.3.79, Repoman-2.3.16
RepoMan-Options: --include-arches="x86"
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index 707b3ad943d..4cc122fe961 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-01-27 12:20 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-01-27 12:20 UTC (permalink / raw
  To: gentoo-commits

commit:     d2b70ae50dc2122f57de2b0311eeb0ef8974632f
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 27 12:19:57 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Mon Jan 27 12:20:20 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2b70ae5

sys-libs/libcxx: arm stable wrt bug #705530

Package-Manager: Portage-2.3.84, Repoman-2.3.20
RepoMan-Options: --include-arches="arm"
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index 4cc122fe961..ba447fd5af3 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 x86"
+KEYWORDS="amd64 arm ~arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-01-30 20:51 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-01-30 20:51 UTC (permalink / raw
  To: gentoo-commits

commit:     6d5878a6797c3d48cef1aae611a5617a3f90a1fc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 30 20:42:48 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 30 20:51:26 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d5878a6

sys-libs/libcxx: Bump to 10.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild | 211 +++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a045639c84b..c0251cc1465 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
+DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
new file mode 100644
index 00000000000..45df844722b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+	?? ( libcxxabi libcxxrt )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && python-any-r1_pkg_setup
+
+	if ! use libcxxabi && ! use libcxxrt && ! 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	elif use libcxxrt; then
+		cxxabi=libcxxrt
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-02-10 13:26 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-02-10 13:26 UTC (permalink / raw
  To: gentoo-commits

commit:     e870a0a4bfd04a4870edcfa71ec7b5672a7c2a8f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 10 13:06:16 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Feb 10 13:26:43 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e870a0a4

sys-libs/libcxx: Remove py2 where possible

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-9.0.1.ebuild       | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 45df844722b..53296785de7 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
index 45df844722b..53296785de7 100644
--- a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 45df844722b..53296785de7 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index ba447fd5af3..5e333d68379 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python{2_7,3_{6,7}} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-02-13 18:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-02-13 18:47 UTC (permalink / raw
  To: gentoo-commits

commit:     4ad51cd9b1a74d9328a1573e37d9fef1bdeecc94
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 13 18:46:49 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb 13 18:47:06 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4ad51cd9

sys-libs/libcxx: Remove stale <pkg/> ref

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/metadata.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index 4fcb5c088f9..a4c89899152 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -11,7 +11,7 @@
 	</maintainer>
 	<use>
 		<flag name="libcxxabi">Build on top of <pkg>sys-libs/libcxxabi</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
-		<flag name="libcxxrt">Build on top of <pkg>sys-libs/libcxxrt</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
+		<flag name="libcxxrt">Build on top of libcxxrt instead of gcc's libsupc++ (avoids depending on gcc).</flag>
 		<flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>
 	</use>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-02-14  7:51 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-02-14  7:51 UTC (permalink / raw
  To: gentoo-commits

commit:     d6c99f29da8bd7655c5799037eb697e3707d23b8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 14 06:27:21 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb 14 07:51:15 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6c99f29

sys-libs/libcxx: Remove libcxxrt from 10+

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 17 ++++++-----------
 sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild  | 17 ++++++-----------
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 17 ++++++-----------
 3 files changed, 18 insertions(+), 33 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 03685f56f82..7b75715e77a 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -15,15 +15,13 @@ llvm.org_set_globals
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
 # llvm-6 for new lit options
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
@@ -52,7 +50,7 @@ pkg_setup() {
 	llvm_pkg_setup
 	use test && python-any-r1_pkg_setup
 
-	if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then
+	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."
@@ -78,9 +76,6 @@ src_configure() {
 	if use libcxxabi; then
 		cxxabi=libcxxabi
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
 	else
 		local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
 		cxxabi=libsupc++
@@ -171,7 +166,7 @@ END_LDSCRIPT
 
 gen_static_ldscript() {
 	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
 
 	# Move it first.
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
@@ -188,7 +183,7 @@ gen_static_ldscript() {
 gen_shared_ldscript() {
 	local libdir=$(get_libdir)
 	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
 	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
index 03685f56f82..7b75715e77a 100644
--- a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
@@ -15,15 +15,13 @@ llvm.org_set_globals
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
 # llvm-6 for new lit options
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
@@ -52,7 +50,7 @@ pkg_setup() {
 	llvm_pkg_setup
 	use test && python-any-r1_pkg_setup
 
-	if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then
+	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."
@@ -78,9 +76,6 @@ src_configure() {
 	if use libcxxabi; then
 		cxxabi=libcxxabi
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
 	else
 		local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
 		cxxabi=libsupc++
@@ -171,7 +166,7 @@ END_LDSCRIPT
 
 gen_static_ldscript() {
 	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
 
 	# Move it first.
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
@@ -188,7 +183,7 @@ gen_static_ldscript() {
 gen_shared_ldscript() {
 	local libdir=$(get_libdir)
 	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
 	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 03685f56f82..7b75715e77a 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -15,15 +15,13 @@ llvm.org_set_globals
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
 	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
 # llvm-6 for new lit options
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
@@ -52,7 +50,7 @@ pkg_setup() {
 	llvm_pkg_setup
 	use test && python-any-r1_pkg_setup
 
-	if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then
+	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."
@@ -78,9 +76,6 @@ src_configure() {
 	if use libcxxabi; then
 		cxxabi=libcxxabi
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
 	else
 		local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
 		cxxabi=libsupc++
@@ -171,7 +166,7 @@ END_LDSCRIPT
 
 gen_static_ldscript() {
 	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
 
 	# Move it first.
 	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
@@ -188,7 +183,7 @@ gen_static_ldscript() {
 gen_shared_ldscript() {
 	local libdir=$(get_libdir)
 	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
 
 	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
 	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-02-14  7:51 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-02-14  7:51 UTC (permalink / raw
  To: gentoo-commits

commit:     71ecb00220e3e7c12dee373a1e3b42c4edf15a52
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 14 05:50:40 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb 14 07:51:09 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71ecb002

sys-libs/libcxx: Enable py3.8

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 53296785de7..03685f56f82 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6,7,8} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
index 53296785de7..03685f56f82 100644
--- a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6,7,8} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 53296785de7..03685f56f82 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6,7,8} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-02-14 10:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-02-14 10:24 UTC (permalink / raw
  To: gentoo-commits

commit:     e0b77735d489c77bcb090d57e61635050c117d36
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 14 09:56:55 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb 14 10:24:30 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0b77735

sys-libs/libcxx: Revert "Enable py3.8"

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 7b75715e77a..5a3729e82ad 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
index 7b75715e77a..5a3729e82ad 100644
--- a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 7b75715e77a..5a3729e82ad 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-04 16:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-04 16:24 UTC (permalink / raw
  To: gentoo-commits

commit:     7dd6f16cfcd42d8b59cd621646e57c5ea3b4fa64
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  4 13:56:43 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  4 16:24:45 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dd6f16c

sys-libs/libcxx: Bump to 10.0.0rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild | 206 +++++++++++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 732b68c7fa4..19031a3bc4e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf9
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02
 DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae
+DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
new file mode 100644
index 00000000000..5a3729e82ad
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-04 18:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-04 18:39 UTC (permalink / raw
  To: gentoo-commits

commit:     32c05ba04579f6075a0e77debb34a531472fa729
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  4 18:07:41 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  4 18:38:44 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=32c05ba0

sys-libs/libcxx: Keyword 10.0.0rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
index 5a3729e82ad..24c015cc1bc 100644
--- a/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-04 18:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-04 18:39 UTC (permalink / raw
  To: gentoo-commits

commit:     31bfa9f626e59003a204a27adb1e82e9496f7023
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  4 18:12:51 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  4 18:39:00 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=31bfa9f6

sys-libs/libcxx: Remove 10.0.0rc[12]

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild | 211 -------------------------------
 sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild | 206 ------------------------------
 3 files changed, 419 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 19031a3bc4e..581f9cb8a99 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,4 @@
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
-DIST llvmorg-10.0.0-rc1.tar.gz 120755822 BLAKE2B a729d37d96ba498cb865c6f708734dccb796b2caabb69167b9aa3b0e12c788f2a5980a048b99d5603da3d26af909fb31f406b4f4743cabae56c45f829a7bf695 SHA512 27137fc700971147c00ded6787eaae9f0bcf98c938fe227a5a559b38d983736f3d086f4ff6772d802c5f48a7d97a97c293261e4af88fcb5a720693b9cb5a4f02
-DIST llvmorg-10.0.0-rc2.tar.gz 120795019 BLAKE2B 6e701eddbd2313e777c7b37dff8455a08d3c599d01055b60afc0319373d4709deb429aac6bf9e80c4d2e2ab8ade03bf5b398b6ccd8882e4bde608d10cdbf2284 SHA512 ee571c9258a2d9fc411964f56b0b92b2e7134349ed21dbe7963eb61ef65da506e0c4f7c69259a3b6cecec23f55d24636608287ee4457ee667031e141f8f09aae
 DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
deleted file mode 100644
index 53296785de7..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.0_rc1.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
deleted file mode 100644
index 5a3729e82ad..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.0_rc2.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-09 18:30 Mart Raudsepp
  0 siblings, 0 replies; 608+ messages in thread
From: Mart Raudsepp @ 2020-03-09 18:30 UTC (permalink / raw
  To: gentoo-commits

commit:     2eab10ef2f6c059010b5eb28b3c497f9c79e08d8
Author:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Mon Mar  9 18:28:54 2020 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Mon Mar  9 18:30:05 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2eab10ef

sys-libs/libcxx: arm64 stable (bug #705530)

Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 sys-libs/libcxx/libcxx-9.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index 5e333d68379..e5a479380d9 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 x86"
+KEYWORDS="amd64 arm arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-16  7:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-16  7:06 UTC (permalink / raw
  To: gentoo-commits

commit:     ab1c5c59a2a5d21e7013516cc105e6348a4ef6c3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 16 06:41:22 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 16 07:06:37 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab1c5c59

sys-libs/libcxx: Bump to 10.0.0rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild | 206 +++++++++++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 581f9cb8a99..4c96e63c2a6 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,5 @@
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
+DIST llvmorg-10.0.0-rc4.tar.gz 120816191 BLAKE2B 66c497fa682b9bcbdef3776f540e6b2781286df3405b00ab335aa405a19418d9c4571b301a6814b526e363bb9c0b7c0be0dfc85444fb9d636ecf11ee788b2cdd SHA512 b3df32cafbbe9147c7b5cfbfe96c7231dc2e66d32560c6d0bcda90d6863b37bf8c9cb3f080fb459acd1d56c013149b275d0ce58f1678205f8ca737f1c8d034cd
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild
new file mode 100644
index 00000000000..24c015cc1bc
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-23 20:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-23 20:35 UTC (permalink / raw
  To: gentoo-commits

commit:     fc8485f6b67b58cc55c16c03456917a6147a3998
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 23 20:31:31 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 23 20:34:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc8485f6

sys-libs/libcxx: Bump to 10.0.0rc6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild | 206 +++++++++++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4c96e63c2a6..21ed495fca0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf9
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
 DIST llvmorg-10.0.0-rc4.tar.gz 120816191 BLAKE2B 66c497fa682b9bcbdef3776f540e6b2781286df3405b00ab335aa405a19418d9c4571b301a6814b526e363bb9c0b7c0be0dfc85444fb9d636ecf11ee788b2cdd SHA512 b3df32cafbbe9147c7b5cfbfe96c7231dc2e66d32560c6d0bcda90d6863b37bf8c9cb3f080fb459acd1d56c013149b275d0ce58f1678205f8ca737f1c8d034cd
+DIST llvmorg-10.0.0-rc6.tar.gz 120815075 BLAKE2B 3c5eb3594d30f1d6c4e2fec916a209030c7e3d8ebcf0f7ceb376adc78cd8a5bdf94a7c85d821bd5ea65631cf0a2438c538019fe1d58d1f835f3b9a899207d0c4 SHA512 04d8df9cd14f78fc5f80885f5d2e8fe4a1f66a218079c2574f6f3f8f3a86c2a886763da08a9454465615d89da300022e9e0754ecd4b40e25fedc600c2e66f39b
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild
new file mode 100644
index 00000000000..5a3729e82ad
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-24 21:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-24 21:46 UTC (permalink / raw
  To: gentoo-commits

commit:     e1704cf3abf2dc8e85e0b1286fcf8d5fa1c3397f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 24 20:42:30 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Mar 24 21:46:28 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1704cf3

sys-libs/libcxx: Bump to 10.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-10.0.0.ebuild | 206 +++++++++++++++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 21ed495fca0..c164192bfdc 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,5 @@ DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389a
 DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
 DIST llvmorg-10.0.0-rc4.tar.gz 120816191 BLAKE2B 66c497fa682b9bcbdef3776f540e6b2781286df3405b00ab335aa405a19418d9c4571b301a6814b526e363bb9c0b7c0be0dfc85444fb9d636ecf11ee788b2cdd SHA512 b3df32cafbbe9147c7b5cfbfe96c7231dc2e66d32560c6d0bcda90d6863b37bf8c9cb3f080fb459acd1d56c013149b275d0ce58f1678205f8ca737f1c8d034cd
 DIST llvmorg-10.0.0-rc6.tar.gz 120815075 BLAKE2B 3c5eb3594d30f1d6c4e2fec916a209030c7e3d8ebcf0f7ceb376adc78cd8a5bdf94a7c85d821bd5ea65631cf0a2438c538019fe1d58d1f835f3b9a899207d0c4 SHA512 04d8df9cd14f78fc5f80885f5d2e8fe4a1f66a218079c2574f6f3f8f3a86c2a886763da08a9454465615d89da300022e9e0754ecd4b40e25fedc600c2e66f39b
+DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
new file mode 100644
index 00000000000..24c015cc1bc
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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
+	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
+		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
+		eerror "conformant compilers). Please use gcc-config to switch to"
+		eerror "gcc-4.7 or later version."
+		die
+	fi
+}
+
+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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-03-25 17:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-03-25 17:59 UTC (permalink / raw
  To: gentoo-commits

commit:     194d12efcdb77f735fb7420dd5d3cebbb837d88d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 25 17:47:35 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 25 17:58:56 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=194d12ef

sys-libs/libcxx: Remove 10.0.0 RCs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   3 -
 sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild | 206 -------------------------------
 sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild | 206 -------------------------------
 sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild | 206 -------------------------------
 4 files changed, 621 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c164192bfdc..29811dbb1af 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,4 @@
 DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
-DIST llvmorg-10.0.0-rc3.tar.gz 120814170 BLAKE2B 432fe0c1e74d3020a269a256e6e456cbfa0b7166dd3f86df6caf3a55e1931c022285fe8afdc4d8998c729c5471acf5308abb336782ddec2ef9b0f58d1ccb5a3c SHA512 aad1df86063612d20c48ea7046940330fe2ac572a146be22ff71d9e65fa3438184cb39a2533fc6afd1e74df26909a9f0d24ebcd7d62e74728cfd81e447f2ffbf
-DIST llvmorg-10.0.0-rc4.tar.gz 120816191 BLAKE2B 66c497fa682b9bcbdef3776f540e6b2781286df3405b00ab335aa405a19418d9c4571b301a6814b526e363bb9c0b7c0be0dfc85444fb9d636ecf11ee788b2cdd SHA512 b3df32cafbbe9147c7b5cfbfe96c7231dc2e66d32560c6d0bcda90d6863b37bf8c9cb3f080fb459acd1d56c013149b275d0ce58f1678205f8ca737f1c8d034cd
-DIST llvmorg-10.0.0-rc6.tar.gz 120815075 BLAKE2B 3c5eb3594d30f1d6c4e2fec916a209030c7e3d8ebcf0f7ceb376adc78cd8a5bdf94a7c85d821bd5ea65631cf0a2438c538019fe1d58d1f835f3b9a899207d0c4 SHA512 04d8df9cd14f78fc5f80885f5d2e8fe4a1f66a218079c2574f6f3f8f3a86c2a886763da08a9454465615d89da300022e9e0754ecd4b40e25fedc600c2e66f39b
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
deleted file mode 100644
index 24c015cc1bc..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.0_rc3.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild
deleted file mode 100644
index 24c015cc1bc..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.0_rc4.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild b/sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild
deleted file mode 100644
index 5a3729e82ad..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.0_rc6.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-04-29  6:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-04-29  6:24 UTC (permalink / raw
  To: gentoo-commits

commit:     fd4c9f3ae4566718d25f1c61dff1735b5cb6dafd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 29 05:59:12 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 29 06:24:34 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd4c9f3a

sys-libs/libcxx: Require libcxxabi sources

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 5a3729e82ad..422bdb60d02 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -9,7 +9,8 @@ inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
+# libcxxabi is required unconditionally now
+LLVM_COMPONENTS=( libcxx{,abi} )
 llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-05-01  8:54 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-05-01  8:54 UTC (permalink / raw
  To: gentoo-commits

commit:     7019ef1dfafb6ff622875a43cab534c84fb72eee
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri May  1 08:46:42 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri May  1 08:53:39 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7019ef1d

sys-libs/libcxx: Remove 7*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-7.1.0.ebuild | 215 ------------------------------------
 2 files changed, 216 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 29811dbb1af..f322c621eec 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
-DIST libcxx-7.1.0.src.tar.xz 1638448 BLAKE2B eca192e03f839f4323e3c37beba2e6daaf935d4e784e0bc835a4d2c3ce0790f5539bdca0466feafd668d7c6675b11b7fe14d9adb680c46fd7b28b42a3b423219 SHA512 925ce5093445f84dc17d5b1610e4297ef3606b254b7350c50f88ba042fcca62125ffd97d21cb612707d5e9511267634ca1779619199f95ce819e5f5c0c2b55d5
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-7.1.0.ebuild b/sys-libs/libcxx/libcxx-7.1.0.ebuild
deleted file mode 100644
index 1da0523e159..00000000000
--- a/sys-libs/libcxx/libcxx-7.1.0.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${P/_/}.src
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
-}
-
-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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-05-04  9:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-05-04  9:04 UTC (permalink / raw
  To: gentoo-commits

commit:     4c03cf4c8bae2bf53b1912b1b0b66414e255233c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon May  4 09:03:58 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon May  4 09:03:58 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c03cf4c

sys-libs/libcxx: Update test target

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 422bdb60d02..a3b4296e757 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -147,7 +147,7 @@ multilib_src_configure() {
 
 multilib_src_test() {
 	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
+	cmake-utils_src_make check-cxx
 }
 
 # Usage: deps


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-05-04 10:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-05-04 10:13 UTC (permalink / raw
  To: gentoo-commits

commit:     452f9556e08808d750b16ce56c7dc07bd143c8a4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon May  4 10:09:19 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon May  4 10:09:19 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=452f9556

sys-libs/libcxx: Enable py3.8

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index a3b4296e757..7e8f34b8c13 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6,7,8} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-05-05 21:40 Sergei Trofimovich
  0 siblings, 0 replies; 608+ messages in thread
From: Sergei Trofimovich @ 2020-05-05 21:40 UTC (permalink / raw
  To: gentoo-commits

commit:     d564decfa7cff7c90d90b4944417c91fd7c1b048
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Tue May  5 21:40:03 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Tue May  5 21:40:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d564decf

sys-libs/libcxx: drop invalid gcc-version check, bug #705282

gcc-4.7 is very old version. The version check uses lexicographical
compare. It should use version compare to be valid. Let's just drop
the check.

Closes: https://bugs.gentoo.org/705282
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.9999.ebuild | 6 ------
 sys-libs/libcxx/libcxx-10.0.0.ebuild      | 6 ------
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 6 ------
 sys-libs/libcxx/libcxx-8.0.1.ebuild       | 8 +-------
 sys-libs/libcxx/libcxx-9.0.1.ebuild       | 6 ------
 5 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
index 5a3729e82ad..6e1bba971a9 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
@@ -56,12 +56,6 @@ pkg_setup() {
 		eerror "and try again."
 		die
 	fi
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
index 24c015cc1bc..20a1d2faae6 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild
@@ -56,12 +56,6 @@ pkg_setup() {
 		eerror "and try again."
 		die
 	fi
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 7e8f34b8c13..c8f3b48d30c 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -57,12 +57,6 @@ pkg_setup() {
 		eerror "and try again."
 		die
 	fi
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
index d126d9a2b01..f1ddc2f89dd 100644
--- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-8.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -66,12 +66,6 @@ pkg_setup() {
 		eerror "and try again."
 		die
 	fi
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index e5a479380d9..c144def9c79 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -58,12 +58,6 @@ pkg_setup() {
 		eerror "and try again."
 		die
 	fi
-	if tc-is-gcc && [[ $(gcc-version) < 4.7 ]] ; then
-		eerror "${PN} needs to be built with gcc-4.7 or later (or other"
-		eerror "conformant compilers). Please use gcc-config to switch to"
-		eerror "gcc-4.7 or later version."
-		die
-	fi
 }
 
 test_compiler() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-05-20 11:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-05-20 11:22 UTC (permalink / raw
  To: gentoo-commits

commit:     e6742cad8408d45c1f3165ffcbd35d5539457e6d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 20 09:36:20 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 20 11:22:17 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6742cad

sys-libs/libcxx: 10.x branch is now 10.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-10.0.0.9999.ebuild => libcxx-10.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-10.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-10.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-05-20 11:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-05-20 11:22 UTC (permalink / raw
  To: gentoo-commits

commit:     31d75f82e681a3040e0a987b9e3e2dbd3facd36f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 20 09:40:43 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 20 11:22:32 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=31d75f82

sys-libs/libcxx: Bump to 10.0.1_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild | 200 +++++++++++++++++++++++++++++++
 2 files changed, 201 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f322c621eec..f757a14093f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
+DIST llvmorg-10.0.1-rc1.tar.gz 120834583 BLAKE2B 64244ebcb6f2c171c9f606e5eb0adff2794f06c9312a0ca627fb79c107c0c898ac242cf4e92523c3265fa717322601d7e3f4d178515fac95d03ee92312082b06 SHA512 f877f66046969a4055b166ad50ef876a9c8ecaf03e2cdd7c8e1a3348eb5f5180f222fa457b1f090a6660282a0d9f7a1d39cf09a04abe0dde0a6e1e10ccf15597
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
new file mode 100644
index 00000000000..6e1bba971a9
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
@@ -0,0 +1,200 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7} )
+inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
+	toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+PATCHES=(
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+)
+
+# least intrusive of all
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	if use test; then
+		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
+		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
+
+		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
+
+		mycmakeargs+=(
+			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+		)
+	fi
+	cmake-utils_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake-utils_src_make check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-06-20 16:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-06-20 16:34 UTC (permalink / raw
  To: gentoo-commits

commit:     b18dd9cc1373f55bfcfcb0d323c4ca56a02b1db9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 20 16:24:09 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 20 16:32:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b18dd9cc

sys-libs/libcxx: Apply patches in WORKDIR in 10.0.1+

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.9999.ebuild | 17 +++++++++++------
 sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild  | 17 +++++++++++------
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 17 +++++++++++------
 3 files changed, 33 insertions(+), 18 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
index 6e1bba971a9..8e1fa4f0419 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
@@ -33,12 +33,6 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
@@ -58,6 +52,17 @@ pkg_setup() {
 	fi
 }
 
+src_prepare() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# cmake eclasses suck by forcing ${S} here
+	CMAKE_USE_DIR=${S} \
+	S=${WORKDIR} \
+	cmake-utils_src_prepare
+}
+
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
index 6e1bba971a9..8e1fa4f0419 100644
--- a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
@@ -33,12 +33,6 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
@@ -58,6 +52,17 @@ pkg_setup() {
 	fi
 }
 
+src_prepare() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# cmake eclasses suck by forcing ${S} here
+	CMAKE_USE_DIR=${S} \
+	S=${WORKDIR} \
+	cmake-utils_src_prepare
+}
+
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index c8f3b48d30c..a06bb57dd7b 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -34,12 +34,6 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
@@ -59,6 +53,17 @@ pkg_setup() {
 	fi
 }
 
+src_prepare() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# cmake eclasses suck by forcing ${S} here
+	CMAKE_USE_DIR=${S} \
+	S=${WORKDIR} \
+	cmake-utils_src_prepare
+}
+
 test_compiler() {
 	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
 		<<<'int main() { return 0; }' &>/dev/null


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-06-20 16:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-06-20 16:34 UTC (permalink / raw
  To: gentoo-commits

commit:     f4d14fc278395d85b549bb9fdbc3eceba7da2940
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 20 16:25:20 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 20 16:32:56 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4d14fc2

sys-libs/libcxx: Port to cmake.eclass

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.9999.ebuild | 9 +++++----
 sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild  | 9 +++++----
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 9 +++++----
 3 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
index 8e1fa4f0419..a45a04b2ccc 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=7
 
+CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
@@ -60,7 +61,7 @@ src_prepare() {
 	# cmake eclasses suck by forcing ${S} here
 	CMAKE_USE_DIR=${S} \
 	S=${WORKDIR} \
-	cmake-utils_src_prepare
+	cmake_src_prepare
 }
 
 test_compiler() {
@@ -140,12 +141,12 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
 		)
 	fi
-	cmake-utils_src_configure
+	cmake_src_configure
 }
 
 multilib_src_test() {
 	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
+	cmake_build check-libcxx
 }
 
 # Usage: deps
@@ -191,7 +192,7 @@ gen_shared_ldscript() {
 }
 
 multilib_src_install() {
-	cmake-utils_src_install
+	cmake_src_install
 	gen_shared_ldscript
 	use static-libs && gen_static_ldscript
 }

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
index 8e1fa4f0419..a45a04b2ccc 100644
--- a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=7
 
+CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{6,7} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
@@ -60,7 +61,7 @@ src_prepare() {
 	# cmake eclasses suck by forcing ${S} here
 	CMAKE_USE_DIR=${S} \
 	S=${WORKDIR} \
-	cmake-utils_src_prepare
+	cmake_src_prepare
 }
 
 test_compiler() {
@@ -140,12 +141,12 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
 		)
 	fi
-	cmake-utils_src_configure
+	cmake_src_configure
 }
 
 multilib_src_test() {
 	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
+	cmake_build check-libcxx
 }
 
 # Usage: deps
@@ -191,7 +192,7 @@ gen_shared_ldscript() {
 }
 
 multilib_src_install() {
-	cmake-utils_src_install
+	cmake_src_install
 	gen_shared_ldscript
 	use static-libs && gen_static_ldscript
 }

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index a06bb57dd7b..9dd5e854c92 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -3,6 +3,7 @@
 
 EAPI=7
 
+CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{6,7,8} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
@@ -61,7 +62,7 @@ src_prepare() {
 	# cmake eclasses suck by forcing ${S} here
 	CMAKE_USE_DIR=${S} \
 	S=${WORKDIR} \
-	cmake-utils_src_prepare
+	cmake_src_prepare
 }
 
 test_compiler() {
@@ -141,12 +142,12 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
 		)
 	fi
-	cmake-utils_src_configure
+	cmake_src_configure
 }
 
 multilib_src_test() {
 	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-cxx
+	cmake_build check-cxx
 }
 
 # Usage: deps
@@ -192,7 +193,7 @@ gen_shared_ldscript() {
 }
 
 multilib_src_install() {
-	cmake-utils_src_install
+	cmake_src_install
 	gen_shared_ldscript
 	use static-libs && gen_static_ldscript
 }


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-06-20 16:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-06-20 16:34 UTC (permalink / raw
  To: gentoo-commits

commit:     d234bee2d8844f54fd83ac21aeb65cf078725a18
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 20 16:25:50 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 20 16:32:57 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d234bee2

sys-libs/libcxx: Port to py3.9

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
index a45a04b2ccc..055385df1c6 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6..9} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
index a45a04b2ccc..055385df1c6 100644
--- a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6..9} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 9dd5e854c92..bb151379aed 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{6..9} )
 inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-06-23 18:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-06-23 18:30 UTC (permalink / raw
  To: gentoo-commits

commit:     43533d106cbea73706fa3b6e533cf373c1db534d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 20 21:08:41 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 23 18:30:54 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=43533d10

sys-libs/libcxx: Dedupe with new eclass code

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.9999.ebuild | 15 +++------------
 sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild  | 15 +++------------
 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 15 +++------------
 3 files changed, 9 insertions(+), 36 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
index 055385df1c6..f96a537e354 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.9999.ebuild
@@ -5,8 +5,7 @@ EAPI=7
 
 CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
@@ -34,9 +33,6 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
@@ -58,10 +54,7 @@ src_prepare() {
 	# out-of-tree build.
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
-	# cmake eclasses suck by forcing ${S} here
-	CMAKE_USE_DIR=${S} \
-	S=${WORKDIR} \
-	cmake_src_prepare
+	llvm.org_src_prepare
 }
 
 test_compiler() {
@@ -132,13 +125,11 @@ multilib_src_configure() {
 
 	if use test; then
 		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
 		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
 
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
index 055385df1c6..f96a537e354 100644
--- a/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc1.ebuild
@@ -5,8 +5,7 @@ EAPI=7
 
 CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
@@ -34,9 +33,6 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
@@ -58,10 +54,7 @@ src_prepare() {
 	# out-of-tree build.
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
-	# cmake eclasses suck by forcing ${S} here
-	CMAKE_USE_DIR=${S} \
-	S=${WORKDIR} \
-	cmake_src_prepare
+	llvm.org_src_prepare
 }
 
 test_compiler() {
@@ -132,13 +125,11 @@ multilib_src_configure() {
 
 	if use test; then
 		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
 		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
 
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index bb151379aed..01acafa1f81 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -5,8 +5,7 @@ EAPI=7
 
 CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
@@ -35,9 +34,6 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
@@ -59,10 +55,7 @@ src_prepare() {
 	# out-of-tree build.
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
-	# cmake eclasses suck by forcing ${S} here
-	CMAKE_USE_DIR=${S} \
-	S=${WORKDIR} \
-	cmake_src_prepare
+	llvm.org_src_prepare
 }
 
 test_compiler() {
@@ -133,13 +126,11 @@ multilib_src_configure() {
 
 	if use test; then
 		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
 		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
 
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
+			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 		)
 	fi
 	cmake_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-06-29 15:56 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-06-29 15:56 UTC (permalink / raw
  To: gentoo-commits

commit:     9b4c04c34285f17887c6ed2d232c88df2a7151fa
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 29 15:55:59 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Mon Jun 29 15:56:54 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b4c04c3

sys-libs/libcxx: amd64 stable wrt bug #727762

Package-Manager: Portage-2.3.99, Repoman-2.3.22
RepoMan-Options: --include-arches="amd64"
Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
index 20a1d2faae6..28d80ab3f63 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-06-29 18:37 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-06-29 18:37 UTC (permalink / raw
  To: gentoo-commits

commit:     fe5dd4099c33fe07ae845fd1eef6bd9db4ada6e2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 29 15:20:57 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 29 18:37:35 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe5dd409

sys-libs/libcxx: Bump to 10.0.1-rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.1_rc2.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f757a14093f..ad88880fa22 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,5 @@
 DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1-rc1.tar.gz 120834583 BLAKE2B 64244ebcb6f2c171c9f606e5eb0adff2794f06c9312a0ca627fb79c107c0c898ac242cf4e92523c3265fa717322601d7e3f4d178515fac95d03ee92312082b06 SHA512 f877f66046969a4055b166ad50ef876a9c8ecaf03e2cdd7c8e1a3348eb5f5180f222fa457b1f090a6660282a0d9f7a1d39cf09a04abe0dde0a6e1e10ccf15597
+DIST llvmorg-10.0.1-rc2.tar.gz 120883192 BLAKE2B d48f4ccb33691cd4997576a6d20b298455687515164f7d8dfa11ec32e197b58132c6bd549c1214c3b36982ef85e1018d4101e7afecee8d2ab67ad15d68c681bf SHA512 8e363d379a73e38ef570fb03d8243a21f37a48ef579a0f08118af4dac48060c0dc24e2bd8175f04241fa424e49b6c85723d2d3552bbe30dd165fe5fb43493325
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc2.ebuild
new file mode 100644
index 00000000000..f96a537e354
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc2.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-04 12:36 Mart Raudsepp
  0 siblings, 0 replies; 608+ messages in thread
From: Mart Raudsepp @ 2020-07-04 12:36 UTC (permalink / raw
  To: gentoo-commits

commit:     3d62c6cdd44c470256a8303be8bafae9f21824b0
Author:     Sam James (sam_c) <sam <AT> cmpct <DOT> info>
AuthorDate: Mon Jun 29 16:00:54 2020 +0000
Commit:     Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sat Jul  4 12:27:58 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d62c6cd

sys-libs/libcxx: arm64 stable (bug #727762)

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Sam James (sam_c) <sam <AT> cmpct.info>
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
index 28d80ab3f63..a94c6b7cb8b 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-07 20:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-07-07 20:01 UTC (permalink / raw
  To: gentoo-commits

commit:     11eec3d07caca88b7e81f31c1f76486aff8e56b1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  7 16:12:18 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul  7 20:01:16 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11eec3d0

sys-libs/libcxx: Bump to 10.0.1-rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.1_rc3.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ad88880fa22..b28e6a02bff 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389a
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1-rc1.tar.gz 120834583 BLAKE2B 64244ebcb6f2c171c9f606e5eb0adff2794f06c9312a0ca627fb79c107c0c898ac242cf4e92523c3265fa717322601d7e3f4d178515fac95d03ee92312082b06 SHA512 f877f66046969a4055b166ad50ef876a9c8ecaf03e2cdd7c8e1a3348eb5f5180f222fa457b1f090a6660282a0d9f7a1d39cf09a04abe0dde0a6e1e10ccf15597
 DIST llvmorg-10.0.1-rc2.tar.gz 120883192 BLAKE2B d48f4ccb33691cd4997576a6d20b298455687515164f7d8dfa11ec32e197b58132c6bd549c1214c3b36982ef85e1018d4101e7afecee8d2ab67ad15d68c681bf SHA512 8e363d379a73e38ef570fb03d8243a21f37a48ef579a0f08118af4dac48060c0dc24e2bd8175f04241fa424e49b6c85723d2d3552bbe30dd165fe5fb43493325
+DIST llvmorg-10.0.1-rc3.tar.gz 120876192 BLAKE2B c48c7e00b37adaab411a34196b87eb630a997ce56bcc33350a698d6d8e24877844b037735ec44abf80ac4c0a4d5a8682745afce4c44cb806bbe9e2a74d875da1 SHA512 ccb6a5bff336924381def11cdfa9c676351461e293b6250b15c1c6cd7694b99beb3e2f3834e8321a28586da091492cbde689213eb4108c9dbe86724e1ee66949
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc3.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc3.ebuild
new file mode 100644
index 00000000000..f96a537e354
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc3.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-08  8:26 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-07-08  8:26 UTC (permalink / raw
  To: gentoo-commits

commit:     909501c5ddafa3dc52e64f57420090bc63ac1a02
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  8 06:28:58 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jul  8 08:25:56 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=909501c5

sys-libs/libcxx: Bump to 10.0.1-rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-10.0.1_rc4.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index b28e6a02bff..03f8e8c7136 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,5 @@ DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff21988870
 DIST llvmorg-10.0.1-rc1.tar.gz 120834583 BLAKE2B 64244ebcb6f2c171c9f606e5eb0adff2794f06c9312a0ca627fb79c107c0c898ac242cf4e92523c3265fa717322601d7e3f4d178515fac95d03ee92312082b06 SHA512 f877f66046969a4055b166ad50ef876a9c8ecaf03e2cdd7c8e1a3348eb5f5180f222fa457b1f090a6660282a0d9f7a1d39cf09a04abe0dde0a6e1e10ccf15597
 DIST llvmorg-10.0.1-rc2.tar.gz 120883192 BLAKE2B d48f4ccb33691cd4997576a6d20b298455687515164f7d8dfa11ec32e197b58132c6bd549c1214c3b36982ef85e1018d4101e7afecee8d2ab67ad15d68c681bf SHA512 8e363d379a73e38ef570fb03d8243a21f37a48ef579a0f08118af4dac48060c0dc24e2bd8175f04241fa424e49b6c85723d2d3552bbe30dd165fe5fb43493325
 DIST llvmorg-10.0.1-rc3.tar.gz 120876192 BLAKE2B c48c7e00b37adaab411a34196b87eb630a997ce56bcc33350a698d6d8e24877844b037735ec44abf80ac4c0a4d5a8682745afce4c44cb806bbe9e2a74d875da1 SHA512 ccb6a5bff336924381def11cdfa9c676351461e293b6250b15c1c6cd7694b99beb3e2f3834e8321a28586da091492cbde689213eb4108c9dbe86724e1ee66949
+DIST llvmorg-10.0.1-rc4.tar.gz 120873659 BLAKE2B 2413fb8af98384e608fab83b91fa826ffe2a7cdeb052eb6a50f253f9fe46ee71c040f210bb2f395d73b0a2772854ccafe2ac2cf1cc7c8405bc988183fa732aea SHA512 8b3f0b794c98956238e5d3d195e3a9cb9c9a40f78e2ed72c767fbeac3e1dbae58cb8132db7d2c8caa891a4d0bf631e2a9afc67f3c37707e9e6b94e2f9aeb77b8
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.1_rc4.ebuild b/sys-libs/libcxx/libcxx-10.0.1_rc4.ebuild
new file mode 100644
index 00000000000..f96a537e354
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.1_rc4.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-15 18:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-07-15 18:41 UTC (permalink / raw
  To: gentoo-commits

commit:     ed2e56c8732a19f3ae14fe2ef1bc7f1c7984a527
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 15 18:36:27 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jul 15 18:41:43 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed2e56c8

sys-libs/libcxx: Add 12.0.0.9999 for master branch

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 198 ++++++++++++++++++++++++++++++
 1 file changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
new file mode 100644
index 00000000000..01acafa1f81
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -0,0 +1,198 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+# libcxxabi is required unconditionally now
+LLVM_COMPONENTS=( libcxx{,abi} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-18 14:44 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2020-07-18 14:44 UTC (permalink / raw
  To: gentoo-commits

commit:     7dfbd15f548247af988575a6572bb87bf5b25b18
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 18 14:42:05 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jul 18 14:42:05 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dfbd15f

sys-libs/libcxx: arm stable (bug #727762)

Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
index a94c6b7cb8b..e707e720c07 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~x86"
+KEYWORDS="amd64 arm arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-21 19:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-07-21 19:31 UTC (permalink / raw
  To: gentoo-commits

commit:     9c484e504b3d9a76e30418e7acff56e582e91a25
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 21 15:46:03 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 21 19:31:24 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c484e50

sys-libs/libcxx: Bump to 10.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-10.0.1.ebuild | 197 +++++++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 03f8e8c7136..3235decee1d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,4 +4,5 @@ DIST llvmorg-10.0.1-rc1.tar.gz 120834583 BLAKE2B 64244ebcb6f2c171c9f606e5eb0adff
 DIST llvmorg-10.0.1-rc2.tar.gz 120883192 BLAKE2B d48f4ccb33691cd4997576a6d20b298455687515164f7d8dfa11ec32e197b58132c6bd549c1214c3b36982ef85e1018d4101e7afecee8d2ab67ad15d68c681bf SHA512 8e363d379a73e38ef570fb03d8243a21f37a48ef579a0f08118af4dac48060c0dc24e2bd8175f04241fa424e49b6c85723d2d3552bbe30dd165fe5fb43493325
 DIST llvmorg-10.0.1-rc3.tar.gz 120876192 BLAKE2B c48c7e00b37adaab411a34196b87eb630a997ce56bcc33350a698d6d8e24877844b037735ec44abf80ac4c0a4d5a8682745afce4c44cb806bbe9e2a74d875da1 SHA512 ccb6a5bff336924381def11cdfa9c676351461e293b6250b15c1c6cd7694b99beb3e2f3834e8321a28586da091492cbde689213eb4108c9dbe86724e1ee66949
 DIST llvmorg-10.0.1-rc4.tar.gz 120873659 BLAKE2B 2413fb8af98384e608fab83b91fa826ffe2a7cdeb052eb6a50f253f9fe46ee71c040f210bb2f395d73b0a2772854ccafe2ac2cf1cc7c8405bc988183fa732aea SHA512 8b3f0b794c98956238e5d3d195e3a9cb9c9a40f78e2ed72c767fbeac3e1dbae58cb8132db7d2c8caa891a4d0bf631e2a9afc67f3c37707e9e6b94e2f9aeb77b8
+DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
new file mode 100644
index 00000000000..f933ab2e515
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-libcxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-29 11:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-07-29 11:27 UTC (permalink / raw
  To: gentoo-commits

commit:     4406b410954202c7e90c07dcc31288d3bf12b0f3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 29 10:57:09 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jul 29 11:27:12 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4406b410

sys-libs/libcxx: check newly-needed LLVM files out

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 3 +--
 sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild  | 3 +--
 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 01acafa1f81..22c6462abd9 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -9,8 +9,7 @@ inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-# libcxxabi is required unconditionally now
-LLVM_COMPONENTS=( libcxx{,abi} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
 llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild
index 01acafa1f81..22c6462abd9 100644
--- a/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild
@@ -9,8 +9,7 @@ inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-# libcxxabi is required unconditionally now
-LLVM_COMPONENTS=( libcxx{,abi} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
 llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index 01acafa1f81..22c6462abd9 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -9,8 +9,7 @@ inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-# libcxxabi is required unconditionally now
-LLVM_COMPONENTS=( libcxx{,abi} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
 llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-30 22:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-07-30 22:11 UTC (permalink / raw
  To: gentoo-commits

commit:     5f8e31860febcdd65e3f7dba05bc3f2680d4e820
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 29 11:48:28 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jul 30 22:09:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5f8e3186

sys-libs/libcxx: Remove 8*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest            |   1 -
 sys-libs/libcxx/libcxx-8.0.1.ebuild | 210 ------------------------------------
 2 files changed, 211 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 42dd0e50a44..082dafda8ad 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
-DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0-rc1.tar.gz 122688246 BLAKE2B 10ff3f08ff3780abb1d86ac67942e6aac52ff5daf820a2e3d23d8b79dbade1c5b1d398d0a577028d2d7c8759ab9a8b552a0305b5750310a015585c06cdadf844 SHA512 09564ed903902a5795fffaa4679badc30bf49739889a48074b5ae2c93bd29000cfb36a650208d5cae5d74899bade066f84b4aa023fc852eec246ff67bf64a267

diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
deleted file mode 100644
index f1ddc2f89dd..00000000000
--- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-# Ninja provides better scalability and cleaner verbose output, and is used
-# throughout all LLVM projects.
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-# (needed due to CMAKE_BUILD_TYPE != Gentoo)
-CMAKE_MIN_VERSION=3.7.0-r1
-PYTHON_COMPAT=( python2_7 )
-
-inherit cmake-multilib llvm multiprocessing python-any-r1 \
-	toolchain-funcs
-
-MY_P=${P}.src
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz"
-
-LICENSE="|| ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
-	?? ( libcxxabi libcxxrt )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
-	app-arch/xz-utils
-	>=sys-devel/llvm-6"
-
-S=${WORKDIR}/${MY_P}
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && python-any-r1_pkg_setup
-
-	if ! use libcxxabi && ! use libcxxrt && ! 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	elif use libcxxrt; then
-		cxxabi=libcxxrt
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-07-31 22:15 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2020-07-31 22:15 UTC (permalink / raw
  To: gentoo-commits

commit:     4dbb3bc773862c01e5895994878677239463b2a6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 31 22:14:06 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jul 31 22:15:06 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4dbb3bc7

sys-libs/libcxx: x86 stable (bug #727762)

Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
index e707e720c07..2fdacef8668 100644
--- a/sys-libs/libcxx/libcxx-10.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~x86"
+KEYWORDS="amd64 arm arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-08-21 19:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-08-21 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     1a081814d7630e5f506c0db9597e432fad76d376
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 21 13:47:05 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 21 19:39:48 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a081814

sys-libs/libcxx: Bump to 11.0.0rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 082dafda8ad..8ceb9382992 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,5 @@
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0-rc1.tar.gz 122688246 BLAKE2B 10ff3f08ff3780abb1d86ac67942e6aac52ff5daf820a2e3d23d8b79dbade1c5b1d398d0a577028d2d7c8759ab9a8b552a0305b5750310a015585c06cdadf844 SHA512 09564ed903902a5795fffaa4679badc30bf49739889a48074b5ae2c93bd29000cfb36a650208d5cae5d74899bade066f84b4aa023fc852eec246ff67bf64a267
+DIST llvmorg-11.0.0-rc2.tar.gz 122728230 BLAKE2B 7944adf41ec7cd82489666a0a38a857de628879d59a2e3bb566b67c18500092430db66ff214d45cb324128c874a74a72c367b452df3b88ec95b33c284dd35512 SHA512 25eb2879eb22e79a1e840ef24cf3f5eec602e947101db299393e06e3d09f2d1531eef214264636e1b511eafff7f51b1834d5a03976ccd088eb680745b147e9f3
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild
new file mode 100644
index 00000000000..22c6462abd9
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-09-19 20:17 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-09-19 20:17 UTC (permalink / raw
  To: gentoo-commits

commit:     834c072ceb33940de35f0e1166fd72aa1390ddd4
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 19 20:16:49 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Sat Sep 19 20:16:49 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=834c072c

sys-libs/libcxx: Stabilize 10.0.1 amd64, #742974

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
index f933ab2e515..8abe7110e4f 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-09-20 15:16 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2020-09-20 15:16 UTC (permalink / raw
  To: gentoo-commits

commit:     64814dcedd29947cb34eb627a8b42d4c53ed7eb9
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 20 15:09:26 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Sep 20 15:16:54 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64814dce

sys-libs/libcxx: Stabilize 10.0.1 arm64, #742974

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
index 8abe7110e4f..63597ebc510 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-09-20 21:14 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2020-09-20 21:14 UTC (permalink / raw
  To: gentoo-commits

commit:     0513f1996c77cd86e8976a73891ddb64928656ec
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 20 21:10:01 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sun Sep 20 21:13:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0513f199

sys-libs/libcxx: x86 stable (bug #742974)

Package-Manager: Portage-3.0.7, Repoman-3.0.1
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
index 63597ebc510..a841c4854f3 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-09-22 20:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-09-22 20:40 UTC (permalink / raw
  To: gentoo-commits

commit:     6774394914a149182995b5b988b6ac32c5f0ddf4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 22 17:09:54 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 22 20:40:05 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67743949

sys-libs/libcxx: Bump to 11.0.0-rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8ceb9382992..990dc5965a2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff21988870
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0-rc1.tar.gz 122688246 BLAKE2B 10ff3f08ff3780abb1d86ac67942e6aac52ff5daf820a2e3d23d8b79dbade1c5b1d398d0a577028d2d7c8759ab9a8b552a0305b5750310a015585c06cdadf844 SHA512 09564ed903902a5795fffaa4679badc30bf49739889a48074b5ae2c93bd29000cfb36a650208d5cae5d74899bade066f84b4aa023fc852eec246ff67bf64a267
 DIST llvmorg-11.0.0-rc2.tar.gz 122728230 BLAKE2B 7944adf41ec7cd82489666a0a38a857de628879d59a2e3bb566b67c18500092430db66ff214d45cb324128c874a74a72c367b452df3b88ec95b33c284dd35512 SHA512 25eb2879eb22e79a1e840ef24cf3f5eec602e947101db299393e06e3d09f2d1531eef214264636e1b511eafff7f51b1834d5a03976ccd088eb680745b147e9f3
+DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild
new file mode 100644
index 00000000000..22c6462abd9
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-09-23 10:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-09-23 10:35 UTC (permalink / raw
  To: gentoo-commits

commit:     dbe0cf7452b23a2991254be1f8f05c883e36a533
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 23 10:34:27 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 23 10:35:37 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbe0cf74

sys-libs/libcxx: Remove old 11.0.0 RCs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild | 197 -------------------------------
 sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild | 197 -------------------------------
 3 files changed, 396 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 990dc5965a2..dff4b05ec63 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,4 @@
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
-DIST llvmorg-11.0.0-rc1.tar.gz 122688246 BLAKE2B 10ff3f08ff3780abb1d86ac67942e6aac52ff5daf820a2e3d23d8b79dbade1c5b1d398d0a577028d2d7c8759ab9a8b552a0305b5750310a015585c06cdadf844 SHA512 09564ed903902a5795fffaa4679badc30bf49739889a48074b5ae2c93bd29000cfb36a650208d5cae5d74899bade066f84b4aa023fc852eec246ff67bf64a267
-DIST llvmorg-11.0.0-rc2.tar.gz 122728230 BLAKE2B 7944adf41ec7cd82489666a0a38a857de628879d59a2e3bb566b67c18500092430db66ff214d45cb324128c874a74a72c367b452df3b88ec95b33c284dd35512 SHA512 25eb2879eb22e79a1e840ef24cf3f5eec602e947101db299393e06e3d09f2d1531eef214264636e1b511eafff7f51b1834d5a03976ccd088eb680745b147e9f3
 DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild
deleted file mode 100644
index 22c6462abd9..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.0_rc1.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild
deleted file mode 100644
index 22c6462abd9..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.0_rc2.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-09-28 21:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-09-28 21:41 UTC (permalink / raw
  To: gentoo-commits

commit:     e0a391a04ae26ad6faa6bcd0780a2f4f6e321d7c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 28 19:52:47 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Sep 28 21:41:16 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0a391a0

sys-libs/libcxx: Bump to 11.0.0-rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index dff4b05ec63..f07ccef2578 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,5 @@
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f
+DIST llvmorg-11.0.0-rc4.tar.gz 122768150 BLAKE2B e92417b6e1775a10c196534518036de6393e3cb9e0e656d4f864e7870be8fb0dad3f4cf170345e653ba60f36172df117977d5dfebe3d9ee7ec2c160d3dc9c5cd SHA512 ed2aee9f6d0bb887f27840158e9f95d94c9ad3981a0388a33fcd3e405f5072134a02999075238b6a2b8803149aa08ac790214605b186c2cc2d4827ba53c00de1
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild
new file mode 100644
index 00000000000..22c6462abd9
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-10-06 13:41 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2020-10-06 13:41 UTC (permalink / raw
  To: gentoo-commits

commit:     dffb937f023282c023d1f73412b15aad6a055cb5
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  6 13:31:07 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Oct  6 13:31:07 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dffb937f

sys-libs/libcxx: Stabilize 10.0.1 arm, #742974

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
index a841c4854f3..0a9dc0c7e60 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
+KEYWORDS="amd64 arm arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-10-07 18:37 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-10-07 18:37 UTC (permalink / raw
  To: gentoo-commits

commit:     13566e581635b6e8b00ad390212018f927a06051
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  7 15:52:53 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  7 18:37:40 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13566e58

sys-libs/libcxx: Bump to 11.0.0-rc6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild | 197 +++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f07ccef2578..c9465e59a27 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff21988870
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f
 DIST llvmorg-11.0.0-rc4.tar.gz 122768150 BLAKE2B e92417b6e1775a10c196534518036de6393e3cb9e0e656d4f864e7870be8fb0dad3f4cf170345e653ba60f36172df117977d5dfebe3d9ee7ec2c160d3dc9c5cd SHA512 ed2aee9f6d0bb887f27840158e9f95d94c9ad3981a0388a33fcd3e405f5072134a02999075238b6a2b8803149aa08ac790214605b186c2cc2d4827ba53c00de1
+DIST llvmorg-11.0.0-rc6.tar.gz 122769521 BLAKE2B 0d03f385447902846dcb8150bda85ac0ab42153f63bb653befc18ed1cba357493065777750447b0ac71c077f61ea8c8f7a4c313ea5f3079926ffd012ace0debd SHA512 249b8e685cfc45a651f4dbd777b10298251c77476b57f9657860644ded612f810224d16879225d17b7a6ac9d584d63d53a33ac114c38e1cf86dd9e8d0faed9a9
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild
new file mode 100644
index 00000000000..22c6462abd9
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-10-12 12:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-10-12 12:38 UTC (permalink / raw
  To: gentoo-commits

commit:     d1fb881ba686b9ecaea273acb20d61177e1e9186
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 12 09:16:17 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 12 12:38:15 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1fb881b

sys-libs/libcxx: Remove 11.0.0 RCs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   3 -
 sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild | 197 -------------------------------
 sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild | 197 -------------------------------
 sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild | 197 -------------------------------
 4 files changed, 594 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index dc8a7ae8e29..52eb105e0cf 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,4 @@
 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
-DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f
-DIST llvmorg-11.0.0-rc4.tar.gz 122768150 BLAKE2B e92417b6e1775a10c196534518036de6393e3cb9e0e656d4f864e7870be8fb0dad3f4cf170345e653ba60f36172df117977d5dfebe3d9ee7ec2c160d3dc9c5cd SHA512 ed2aee9f6d0bb887f27840158e9f95d94c9ad3981a0388a33fcd3e405f5072134a02999075238b6a2b8803149aa08ac790214605b186c2cc2d4827ba53c00de1
-DIST llvmorg-11.0.0-rc6.tar.gz 122769521 BLAKE2B 0d03f385447902846dcb8150bda85ac0ab42153f63bb653befc18ed1cba357493065777750447b0ac71c077f61ea8c8f7a4c313ea5f3079926ffd012ace0debd SHA512 249b8e685cfc45a651f4dbd777b10298251c77476b57f9657860644ded612f810224d16879225d17b7a6ac9d584d63d53a33ac114c38e1cf86dd9e8d0faed9a9
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild
deleted file mode 100644
index 22c6462abd9..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.0_rc3.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild
deleted file mode 100644
index 22c6462abd9..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.0_rc4.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild b/sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild
deleted file mode 100644
index 22c6462abd9..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.0_rc6.ebuild
+++ /dev/null
@@ -1,197 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-10-12 12:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-10-12 12:38 UTC (permalink / raw
  To: gentoo-commits

commit:     8ec3ee2995dfb3a0051f784a0ab56926f4b30c35
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 12 09:13:47 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 12 12:38:10 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ec3ee29

sys-libs/libcxx: Bump to 11.0.0 final

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-11.0.0.ebuild | 197 +++++++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c9465e59a27..dc8a7ae8e29 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,5 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.0.0-rc3.tar.gz 122766783 BLAKE2B 052fdc864fed52692141284ebdc41d52d21fbeaf24ac5ed3e67701537baa683bae61b1c06de68322e0578a27a1f5a8856088cdc001d2b8d34d2ec88ae65ff739 SHA512 a28ce74775373c63fe23b3116cd25db0efb95c6fdb60e56f2522659a404a59576f3d9429a109cb0f90534927259289aa1c712673f36f92272d642bf8dce5699f
 DIST llvmorg-11.0.0-rc4.tar.gz 122768150 BLAKE2B e92417b6e1775a10c196534518036de6393e3cb9e0e656d4f864e7870be8fb0dad3f4cf170345e653ba60f36172df117977d5dfebe3d9ee7ec2c160d3dc9c5cd SHA512 ed2aee9f6d0bb887f27840158e9f95d94c9ad3981a0388a33fcd3e405f5072134a02999075238b6a2b8803149aa08ac790214605b186c2cc2d4827ba53c00de1
 DIST llvmorg-11.0.0-rc6.tar.gz 122769521 BLAKE2B 0d03f385447902846dcb8150bda85ac0ab42153f63bb653befc18ed1cba357493065777750447b0ac71c077f61ea8c8f7a4c313ea5f3079926ffd012ace0debd SHA512 249b8e685cfc45a651f4dbd777b10298251c77476b57f9657860644ded612f810224d16879225d17b7a6ac9d584d63d53a33ac114c38e1cf86dd9e8d0faed9a9
+DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
new file mode 100644
index 00000000000..5c82b4362ac
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? ( >=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+
+DOCS=( CREDITS.TXT )
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-10-14 21:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-10-14 21:14 UTC (permalink / raw
  To: gentoo-commits

commit:     f858b7e8b7f708f6ccf7a821ea99eb512a848214
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
AuthorDate: Wed Oct 14 00:00:00 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 14 21:14:24 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f858b7e8

sys-libs/libcxx: Set used Python interpreter.

Required since:
https://github.com/llvm/llvm-project/commit/c4c3883b00d3a6aa657a5e3e515c90c9ea1f81c6

Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache.Org>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 8 ++++++--
 sys-libs/libcxx/libcxx-11.0.0.ebuild      | 8 ++++++--
 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 8 ++++++--
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 22c6462abd9..8257e75c34d 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -28,8 +28,11 @@ RDEPEND="
 DEPEND="${RDEPEND}
 	>=sys-devel/llvm-6"
 BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
 
 DOCS=( CREDITS.TXT )
 
@@ -130,6 +133,7 @@ multilib_src_configure() {
 		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

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index 5c82b4362ac..3871e1d039b 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -28,8 +28,11 @@ RDEPEND="
 DEPEND="${RDEPEND}
 	>=sys-devel/llvm-6"
 BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
 
 DOCS=( CREDITS.TXT )
 
@@ -130,6 +133,7 @@ multilib_src_configure() {
 		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

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index 22c6462abd9..8257e75c34d 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -28,8 +28,11 @@ RDEPEND="
 DEPEND="${RDEPEND}
 	>=sys-devel/llvm-6"
 BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
 
 DOCS=( CREDITS.TXT )
 
@@ -130,6 +133,7 @@ multilib_src_configure() {
 		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


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-16  6:40 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-11-16  6:40 UTC (permalink / raw
  To: gentoo-commits

commit:     71b1d50a38434a2041b28b3166add3855650abe1
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 16 06:40:01 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Mon Nov 16 06:40:01 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=71b1d50a

sys-libs/libcxx: Stabilize 11.0.0 amd64, #754744

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index 3871e1d039b..96a01fd61f7 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-16  6:41 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2020-11-16  6:41 UTC (permalink / raw
  To: gentoo-commits

commit:     0852fae046482572fca0d0141c22c6b37391eec6
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 16 06:40:55 2020 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Mon Nov 16 06:40:55 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0852fae0

sys-libs/libcxx: Stabilize 11.0.0 arm, #754744

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index 96a01fd61f7..29aa2e213ae 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 arm ~arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-16 21:03 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2020-11-16 21:03 UTC (permalink / raw
  To: gentoo-commits

commit:     1add6783a29ddcb040040b55ad50ad802cc84737
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 16 21:03:04 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Nov 16 21:03:04 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1add6783

sys-libs/libcxx: Stabilize 11.0.0 arm64, #754744

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index 29aa2e213ae..05b2d0bec18 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~x86"
+KEYWORDS="amd64 arm arm64 ~x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-17 20:24 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2020-11-17 20:24 UTC (permalink / raw
  To: gentoo-commits

commit:     aff246c50a738cd5452a509d281efcede27df8f2
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 17 20:22:20 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Nov 17 20:24:37 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aff246c5

sys-libs/libcxx: x86 stable (bug #754744)

Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index 05b2d0bec18..d8795bf5d04 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~x86"
+KEYWORDS="amd64 arm arm64 x86"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-29  8:26 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-11-29  8:26 UTC (permalink / raw
  To: gentoo-commits

commit:     003318c64f7fbe402f72e2bb32341a93e49d0f53
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 08:23:20 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 08:25:54 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=003318c6

sys-libs/libcxx: Remove 10.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 -
 sys-libs/libcxx/libcxx-10.0.0.ebuild | 200 -----------------------------------
 2 files changed, 201 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 52eb105e0cf..11ed9f91a47 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
-DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-10.0.0.ebuild b/sys-libs/libcxx/libcxx-10.0.0.ebuild
deleted file mode 100644
index 2fdacef8668..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.0.ebuild
+++ /dev/null
@@ -1,200 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-inherit cmake-multilib llvm llvm.org multiprocessing python-any-r1 \
-	toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-PATCHES=(
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	"${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-)
-
-# least intrusive of all
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	if use test; then
-		local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
-		local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
-
-		[[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
-
-		mycmakeargs+=(
-			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
-		)
-	fi
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake-utils_src_make check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-29  8:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-11-29  8:59 UTC (permalink / raw
  To: gentoo-commits

commit:     eb44131c604f2cf17d28cd9999e2641c58708656
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 08:56:59 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 08:58:58 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb44131c

sys-libs/libcxx: Delay llvm.org_set_globals after vars

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.9999.ebuild | 5 +++--
 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
index 8257e75c34d..dd1a1a1f3a2 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
@@ -9,8 +9,6 @@ inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -36,6 +34,9 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index 8257e75c34d..dd1a1a1f3a2 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -9,8 +9,6 @@ inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
 HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
@@ -36,6 +34,9 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-29 10:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-11-29 10:40 UTC (permalink / raw
  To: gentoo-commits

commit:     5cfbb468e829f07fb173e68d5e85ecd6df1fba47
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 10:40:05 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 10:40:05 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5cfbb468

sys-libs/libcxx: 11.0.0.9999 → 11.0.1.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-11.0.0.9999.ebuild => libcxx-11.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-11.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-11.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-11-29 10:57 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-11-29 10:57 UTC (permalink / raw
  To: gentoo-commits

commit:     66668cf573b508194a4a6437afd37f78816b1016
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 10:55:31 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 10:56:52 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66668cf5

sys-libs/libcxx: Bump to 11.0.1-rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild | 202 +++++++++++++++++++++++++++++++
 2 files changed, 203 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 11ed9f91a47..d36c99982c3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,3 +1,4 @@
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
+DIST llvmorg-11.0.1-rc1.tar.gz 122777435 BLAKE2B 23b520d33cf4b641027ee52bb10c6171d60356c9167d5b94012929e6e547c526cda1a6177c295ed19592dfb83b020f63b2cef4cabc70ce9a2a8e098fe654a3cd SHA512 605c7bbff1610f335be8ea4f1204df797fed21185a54c77565f6ff2d00794d1967e9c5fab7c87633e242f2f999bdffb76da83f756d261c1ca476114599409ae1
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
new file mode 100644
index 00000000000..dd1a1a1f3a2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-12-19  9:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2020-12-19  9:14 UTC (permalink / raw
  To: gentoo-commits

commit:     b98b5151378175738c157166ea1e85074176def9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 19 09:11:50 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 19 09:11:50 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b98b5151

sys-libs/libcxx: Bump to 11.0.1-rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild | 202 +++++++++++++++++++++++++++++++
 2 files changed, 203 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d36c99982c3..49b4c28bfca 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,5 @@
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1-rc1.tar.gz 122777435 BLAKE2B 23b520d33cf4b641027ee52bb10c6171d60356c9167d5b94012929e6e547c526cda1a6177c295ed19592dfb83b020f63b2cef4cabc70ce9a2a8e098fe654a3cd SHA512 605c7bbff1610f335be8ea4f1204df797fed21185a54c77565f6ff2d00794d1967e9c5fab7c87633e242f2f999bdffb76da83f756d261c1ca476114599409ae1
+DIST llvmorg-11.0.1-rc2.tar.gz 122793330 BLAKE2B 5d42f7bd7ba253ac3ca08cf9901c79db5b51b86f0f66c8e63f4f9808ca5fb72cacccfad098b4f6701a34b0d77bdd66fe3839a3962a251eae53776240a2e13b06 SHA512 acda5a5be38cc8aae730c34cd1bb8f29a82e2ed3dd9734ca293ff092d5b30c8c255ab3054245b8f6ed541d5dbf8bc674b744bb2f81788db8826f69a204dda0c3
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
new file mode 100644
index 00000000000..dd1a1a1f3a2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+	llvm_pkg_setup
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	gen_shared_ldscript
+	use static-libs && gen_static_ldscript
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2020-12-27 19:12 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2020-12-27 19:12 UTC (permalink / raw
  To: gentoo-commits

commit:     2c5538f6bd07db276eaa707e95b46e4f91fe15c5
Author:     Jacob Floyd <cognifloyd <AT> gmail <DOT> com>
AuthorDate: Sun Dec 27 19:07:11 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec 27 19:12:51 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c5538f6

sys-libs/libcxx: fix "lib/CMakeLists.txt not found"

This partially reverts 74c82761ee2b2145fc03019edb187869f6856a38

I missed that this file no longer exists, and the hard-coded reference
is not in any of the current libcxx sources. Why it didn't fail when
building this in my darwin prefix, I don't know.

Closes: https://bugs.gentoo.org/761921
Signed-off-by: Jacob Floyd <cognifloyd <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/18840
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.ebuild      | 4 ----
 sys-libs/libcxx/libcxx-11.0.1.9999.ebuild | 4 ----
 sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild  | 4 ----
 sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild  | 4 ----
 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 4 ----
 5 files changed, 20 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index cb077d76d64..b2203171221 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -62,10 +62,6 @@ src_prepare() {
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
 	llvm.org_src_prepare
-
-	# eprefixify static path references to libc++abi for symbol re-export to
-	# avoid linking against it twice in both /usr/lib and ${EPREFIX}/usr/lib
-	sed -i -e "s^/usr/lib/libc++abi.dylib^${EPREFIX}&^g" lib/CMakeLists.txt || die
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
index 8d2f6ea8621..c088e18cceb 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
@@ -63,10 +63,6 @@ src_prepare() {
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
 	llvm.org_src_prepare
-
-	# eprefixify static path references to libc++abi for symbol re-export to
-	# avoid linking against it twice in both /usr/lib and ${EPREFIX}/usr/lib
-	sed -i -e "s^/usr/lib/libc++abi.dylib^${EPREFIX}&^g" lib/CMakeLists.txt || die
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
index 8d2f6ea8621..c088e18cceb 100644
--- a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
@@ -63,10 +63,6 @@ src_prepare() {
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
 	llvm.org_src_prepare
-
-	# eprefixify static path references to libc++abi for symbol re-export to
-	# avoid linking against it twice in both /usr/lib and ${EPREFIX}/usr/lib
-	sed -i -e "s^/usr/lib/libc++abi.dylib^${EPREFIX}&^g" lib/CMakeLists.txt || die
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
index 8d2f6ea8621..c088e18cceb 100644
--- a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
@@ -63,10 +63,6 @@ src_prepare() {
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
 	llvm.org_src_prepare
-
-	# eprefixify static path references to libc++abi for symbol re-export to
-	# avoid linking against it twice in both /usr/lib and ${EPREFIX}/usr/lib
-	sed -i -e "s^/usr/lib/libc++abi.dylib^${EPREFIX}&^g" lib/CMakeLists.txt || die
 }
 
 test_compiler() {

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index 8d2f6ea8621..c088e18cceb 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -63,10 +63,6 @@ src_prepare() {
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
 	llvm.org_src_prepare
-
-	# eprefixify static path references to libc++abi for symbol re-export to
-	# avoid linking against it twice in both /usr/lib and ${EPREFIX}/usr/lib
-	sed -i -e "s^/usr/lib/libc++abi.dylib^${EPREFIX}&^g" lib/CMakeLists.txt || die
 }
 
 test_compiler() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-01 13:01 Fabian Groffen
  0 siblings, 0 replies; 608+ messages in thread
From: Fabian Groffen @ 2021-01-01 13:01 UTC (permalink / raw
  To: gentoo-commits

commit:     f3ba80263dc1378c9b19d39187b920fd80e64da0
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  1 12:57:25 2021 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Jan  1 13:01:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3ba8026

sys-libs/libcxx: wrap Darwin comments to line boundary

Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.0.ebuild      | 7 ++++---
 sys-libs/libcxx/libcxx-11.0.1.9999.ebuild | 7 ++++---
 sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild  | 7 ++++---
 sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild  | 7 ++++---
 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 7 ++++---
 5 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index b2203171221..44dccaba340 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -41,8 +41,9 @@ 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.
+	# 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 dev-lang/llvm; then
 		llvm_pkg_setup
 	fi

diff --git a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
index c088e18cceb..6bfe1aa438b 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -42,8 +42,9 @@ 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.
+	# 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 dev-lang/llvm; then
 		llvm_pkg_setup
 	fi

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
index c088e18cceb..6bfe1aa438b 100644
--- a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -42,8 +42,9 @@ 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.
+	# 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 dev-lang/llvm; then
 		llvm_pkg_setup
 	fi

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
index c088e18cceb..6bfe1aa438b 100644
--- a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -42,8 +42,9 @@ 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.
+	# 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 dev-lang/llvm; then
 		llvm_pkg_setup
 	fi

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index c088e18cceb..6bfe1aa438b 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -42,8 +42,9 @@ 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.
+	# 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 dev-lang/llvm; then
 		llvm_pkg_setup
 	fi


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-06 21:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-01-06 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     aa04b01526b161ac81894c1965dbd9410cb7e19a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  6 17:12:03 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan  6 21:23:16 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa04b015

sys-libs/libcxx: Bump to 11.0.1 (final)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-11.0.1.ebuild | 218 +++++++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 49b4c28bfca..29b0efe3c21 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1-rc1.tar.gz 122777435 BLAKE2B 23b520d33cf4b641027ee52bb10c6171d60356c9167d5b94012929e6e547c526cda1a6177c295ed19592dfb83b020f63b2cef4cabc70ce9a2a8e098fe654a3cd SHA512 605c7bbff1610f335be8ea4f1204df797fed21185a54c77565f6ff2d00794d1967e9c5fab7c87633e242f2f999bdffb76da83f756d261c1ca476114599409ae1
 DIST llvmorg-11.0.1-rc2.tar.gz 122793330 BLAKE2B 5d42f7bd7ba253ac3ca08cf9901c79db5b51b86f0f66c8e63f4f9808ca5fb72cacccfad098b4f6701a34b0d77bdd66fe3839a3962a251eae53776240a2e13b06 SHA512 acda5a5be38cc8aae730c34cd1bb8f29a82e2ed3dd9734ca293ff092d5b30c8c255ab3054245b8f6ed541d5dbf8bc674b744bb2f81788db8826f69a204dda0c3
+DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild
new file mode 100644
index 00000000000..1e4d729afbd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.0.1.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-06 21:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-01-06 21:23 UTC (permalink / raw
  To: gentoo-commits

commit:     d22d8e5b9c1b8a089d0223ad1964b2c68bc000a3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  6 17:18:55 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan  6 21:23:21 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d22d8e5b

sys-libs/libcxx: Remove 11.0.1 RCs and live

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                  |   2 -
 sys-libs/libcxx/libcxx-11.0.1.9999.ebuild | 218 ------------------------------
 sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild  | 218 ------------------------------
 sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild  | 218 ------------------------------
 4 files changed, 656 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 29b0efe3c21..47a7ff9f78f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,4 @@
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
-DIST llvmorg-11.0.1-rc1.tar.gz 122777435 BLAKE2B 23b520d33cf4b641027ee52bb10c6171d60356c9167d5b94012929e6e547c526cda1a6177c295ed19592dfb83b020f63b2cef4cabc70ce9a2a8e098fe654a3cd SHA512 605c7bbff1610f335be8ea4f1204df797fed21185a54c77565f6ff2d00794d1967e9c5fab7c87633e242f2f999bdffb76da83f756d261c1ca476114599409ae1
-DIST llvmorg-11.0.1-rc2.tar.gz 122793330 BLAKE2B 5d42f7bd7ba253ac3ca08cf9901c79db5b51b86f0f66c8e63f4f9808ca5fb72cacccfad098b4f6701a34b0d77bdd66fe3839a3962a251eae53776240a2e13b06 SHA512 acda5a5be38cc8aae730c34cd1bb8f29a82e2ed3dd9734ca293ff092d5b30c8c255ab3054245b8f6ed541d5dbf8bc674b744bb2f81788db8826f69a204dda0c3
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
deleted file mode 100644
index 6bfe1aa438b..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
deleted file mode 100644
index 6bfe1aa438b..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
deleted file mode 100644
index 6bfe1aa438b..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{6..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-14 21:30 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-01-14 21:30 UTC (permalink / raw
  To: gentoo-commits

commit:     f9f32dc456b57320624066251a18e9be88d0108b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 14 17:48:17 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 14 21:29:46 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9f32dc4

sys-libs/libcxx: Bump to 11.1.0-rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild | 218 +++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 47a7ff9f78f..07cacd71fa2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,5 @@
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
+DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
new file mode 100644
index 00000000000..6bfe1aa438b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-23 11:49 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-01-23 11:49 UTC (permalink / raw
  To: gentoo-commits

commit:     0ce2d8d4af09853dfec90f4ffa26b2f2972a51de
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 23 09:02:02 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 23 11:49:10 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0ce2d8d4

sys-libs/libcxx: Bump to 11.1.0-rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild | 218 +++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 07cacd71fa2..207853f3401 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,4 +2,5 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8
+DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
new file mode 100644
index 00000000000..6bfe1aa438b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-28  9:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-01-28  9:04 UTC (permalink / raw
  To: gentoo-commits

commit:     9267f6e1dd8ba1dad9c8099f121606d3aa431165
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 28 09:01:01 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 28 09:02:41 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9267f6e1

sys-libs/libcxx: Add 13.x live ebuild

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 218 ++++++++++++++++++++++++++++++
 1 file changed, 218 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
new file mode 100644
index 00000000000..6bfe1aa438b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-01-28 10:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-01-28 10:58 UTC (permalink / raw
  To: gentoo-commits

commit:     4fa34d4e10cf773fb5bcafb5fb7ff22756992710
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 28 10:32:55 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 28 10:58:16 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4fa34d4e

sys-libs/libcxx: Bump to 12.0.0-rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild | 218 +++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 207853f3401..b71e21ccaaa 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,5 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8
 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7
+DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
new file mode 100644
index 00000000000..6bfe1aa438b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{6..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-07  6:56 Sergei Trofimovich
  0 siblings, 0 replies; 608+ messages in thread
From: Sergei Trofimovich @ 2021-02-07  6:56 UTC (permalink / raw
  To: gentoo-commits

commit:     813d3bab893e257e2315cb9ba1c96dbb3c359179
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  7 06:53:42 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Feb  7 06:56:43 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=813d3bab

sys-libs/libcxx: disable USE=static-libs by default

Bug: https://bugs.gentoo.org/760504
Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 sys-libs/libcxx/libcxx-10.0.1.ebuild      | 4 ++--
 sys-libs/libcxx/libcxx-11.0.0.ebuild      | 2 +-
 sys-libs/libcxx/libcxx-11.0.1.ebuild      | 2 +-
 sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-12.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-9.0.1.ebuild       | 4 ++--
 9 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
index 42d16c17aa1..4f386c12837 100644
--- a/sys-libs/libcxx/libcxx-10.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-10.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -15,7 +15,7 @@ llvm.org_set_globals
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index 83f5fdb6ce1..f63adc4cf51 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -15,7 +15,7 @@ llvm.org_set_globals
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild
index acb3f6367ef..9414c15c0f4 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
index 76372b775b8..8ed99383fe0 100644
--- a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
index 76372b775b8..8ed99383fe0 100644
--- a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index 76372b775b8..8ed99383fe0 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
index 76372b775b8..8ed99383fe0 100644
--- a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
index 76372b775b8..8ed99383fe0 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-9.0.1.ebuild b/sys-libs/libcxx/libcxx-9.0.1.ebuild
index 3249adf0134..9e4aac296d8 100644
--- a/sys-libs/libcxx/libcxx-9.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-9.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -15,7 +15,7 @@ llvm.org_set_globals
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
+IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
 	?? ( libcxxabi libcxxrt )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-09 15:28 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-02-09 15:28 UTC (permalink / raw
  To: gentoo-commits

commit:     4ce09c028d9159ba3a1573eccff1a384c7ece918
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb  9 15:26:18 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Feb  9 15:28:24 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4ce09c02

sys-libs/libcxx: Bump to 11.1.0-rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild | 218 +++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index b71e21ccaaa..757ab90ea8c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,5 +3,6 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8
 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7
+DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1
 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild
new file mode 100644
index 00000000000..8ed99383fe0
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-17 13:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-02-17 13:03 UTC (permalink / raw
  To: gentoo-commits

commit:     7630e90dfe575b918a9f6c7eb5e56956587fb6df
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 17 08:42:21 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 17 13:03:43 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7630e90d

sys-libs/libcxx: Bump to 11.1.0 (final)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-11.1.0.ebuild | 218 +++++++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 757ab90ea8c..52868374d43 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,5 +4,6 @@ DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9
 DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8
 DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7
 DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1
+DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild
new file mode 100644
index 00000000000..9414c15c0f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-11.1.0.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-19 17:07 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2021-02-19 17:07 UTC (permalink / raw
  To: gentoo-commits

commit:     a388d62ccc774cbc828281742e826172a8404f0a
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 19 17:05:59 2021 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Feb 19 17:06:59 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a388d62c

sys-libs/libcxx: x86 stable (bug #768567)

Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild
index 9414c15c0f4..ab51ea49d23 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-20 10:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-02-20 10:10 UTC (permalink / raw
  To: gentoo-commits

commit:     5afcb80d749554555be8f8839406c3d8467b4251
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 20 10:09:29 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 20 10:10:30 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5afcb80d

sys-libs/libcxx: Remove 11.1.0_rc*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   3 -
 sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild | 218 -------------------------------
 sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild | 218 -------------------------------
 sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild | 218 -------------------------------
 4 files changed, 657 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 52868374d43..74e6964905d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,9 +1,6 @@
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
-DIST llvmorg-11.1.0-rc1.tar.gz 122793491 BLAKE2B f4777455f5903cffea284eaffd872be6c287c6c1ebbd0c4b5b5473f146d7f5476f3551998a58d3e976ab90cde7b0d05db2b3be97f4e8e2c3474755ff38739268 SHA512 44e281486c44fa1611042ab658b9833a75f9613b7f896863613cfb99de66d13607fb1e9064f42ea3d89ca7951113465a90fd96ca4544262f165f78bd5261f5a8
-DIST llvmorg-11.1.0-rc2.tar.gz 122794772 BLAKE2B ab533f078d9d6c37e27c578866a07896344a0b4cf4ebf6402f4fa490213e017310d1c882bf63e552e99a5b4f6d1d8c01413420713b200bfa6732eff64f3c47a9 SHA512 88d8f1d938f0ba7ec39478d03a35c09a30bea51735276205494265b1061621b3ebcda8ee4211e896783b1b99a377c9fa68046118b0d6cb7fcb7bea1e960f95b7
-DIST llvmorg-11.1.0-rc3.tar.gz 122785838 BLAKE2B d0998219471476be1a1249b3a2444750585a352047d4dc14de6fec87eb3407d0f4b848757340200d3423cb4090554ae033fb4ec3797446e46556fbb566bb77a3 SHA512 b67874cb127f3f929a3796558cdfbf509b384c4247f4936ba08cecf88ca880a167cf67c23d78104b5bab4a98efd9435d1b923deb7ae7367875414e6c896957d1
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
deleted file mode 100644
index 8ed99383fe0..00000000000
--- a/sys-libs/libcxx/libcxx-11.1.0_rc1.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
deleted file mode 100644
index 8ed99383fe0..00000000000
--- a/sys-libs/libcxx/libcxx-11.1.0_rc2.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild b/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild
deleted file mode 100644
index 8ed99383fe0..00000000000
--- a/sys-libs/libcxx/libcxx-11.1.0_rc3.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-24 11:59 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2021-02-24 11:59 UTC (permalink / raw
  To: gentoo-commits

commit:     3497f5e52265471d22bbbc867b2becd3fb34c79a
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 24 11:59:03 2021 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Wed Feb 24 11:59:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3497f5e5

sys-libs/libcxx: Stabilize 11.0.1 amd64, #768567

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild
index ab51ea49d23..c91af9ac2f7 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-25 13:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-02-25 13:24 UTC (permalink / raw
  To: gentoo-commits

commit:     60e6e5f4663ea2278de8f296dbb250e76c2ebaa0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 25 11:39:21 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb 25 13:24:49 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60e6e5f4

sys-libs/libcxx: Remove 12.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild | 218 +++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 74e6964905d..5dd701f91d3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,4 +3,5 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a
+DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9f2a430f7fee3f0c5c4334e5c14caa19738d18c87b568de963d57d9b53e808ac412cf8554eca7fcae9ecca65aa4442e197 SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild
new file mode 100644
index 00000000000..8ed99383fe0
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-02-26 22:45 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-02-26 22:45 UTC (permalink / raw
  To: gentoo-commits

commit:     a6aeacedd65f9bb17c53af98e5dccd87f1c6f8b3
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 26 22:44:42 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Feb 26 22:44:42 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6aeaced

sys-libs/libcxx: Stabilize 11.0.1 arm64, #768567

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild
index 2ba3cb64683..58ec9289d18 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-03-06 12:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-03-06 12:09 UTC (permalink / raw
  To: gentoo-commits

commit:     796de712c4b661ec08b60fcc060a30ff4acd2cd9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  6 12:08:22 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar  6 12:09:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=796de712

sys-libs/libcxx: Remove 12.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 -
 sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild | 218 -------------------------------
 2 files changed, 219 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5dd701f91d3..fdf15a2955f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,6 +2,5 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
-DIST llvmorg-12.0.0-rc1.tar.gz 134164708 BLAKE2B d4261ff7d9586b47f4cfda3d2cda4b76534f9e17fbd5cdb8861895b8eb466021962f4608bfcdeb52f8fce78850a994fd5eda0560f7211e5c8d1ac9330a738a36 SHA512 3d07d013d0705bb99f56898cc55d054d0d95aeb53b3c756cfab80b4c9097cc4935bcea89b9efde2e503a899b9fccf0dacc0073c9991c8ea352755c5ec68a757a
 DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9f2a430f7fee3f0c5c4334e5c14caa19738d18c87b568de963d57d9b53e808ac412cf8554eca7fcae9ecca65aa4442e197 SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d
 DIST llvmorg-9.0.1.tar.gz 113193320 BLAKE2B b86e405f2b8e00436045fd409fe19cdde75c797b1192c62a22b5ec75e6b4dc8e874a0f33008dc31562445e4cbe53a992b6f48c684255a6a1ef261e595b8b161f SHA512 fa88beeaae94b6d0cd9b5ba38658d0ffed8004035d7d8a4f95c3d31a709b88b581ae9bd7761333c8e5375c44b8f6be01768b5a3be901163159d7e6c43b71da59

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
deleted file mode 100644
index 8ed99383fe0..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.0_rc1.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-03-11 18:54 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-03-11 18:54 UTC (permalink / raw
  To: gentoo-commits

commit:     97743b777bf2fdec8438dfc7e73c806f4298c7ae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 11 15:36:45 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Mar 11 18:54:12 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97743b77

sys-libs/libcxx: Bump to 12.0.0-rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild | 218 +++++++++++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d16aefb2a74..9f09664b63b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,3 +3,4 @@ DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9f2a430f7fee3f0c5c4334e5c14caa19738d18c87b568de963d57d9b53e808ac412cf8554eca7fcae9ecca65aa4442e197 SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d
+DIST llvmorg-12.0.0-rc3.tar.gz 134244008 BLAKE2B ed09aa361b264387711ba1ee2e4b01c0c78ad97391df95e2542d4edc31f657cc33c8a2a45de63eb421908d5dadd9392a736610fbb04b3ecbd336d6514a649da8 SHA512 1fae53c6f255160cf4be53848b8b92c8b162ddcfbddf1bf0017faf249859040c15c862c4b52bc3ba894149139afb814e0674da88793ddebfc0756ba3aa7626ce

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
new file mode 100644
index 00000000000..8ed99383fe0
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-03-11 22:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-03-11 22:59 UTC (permalink / raw
  To: gentoo-commits

commit:     201edf43784c4d553ba6c9ce51f939b8a90ecfa4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 11 22:21:21 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Mar 11 22:59:00 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=201edf43

sys-libs/libcxx: Remove failing tests in 12.0.0-rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
index 8ed99383fe0..9887227800d 100644
--- a/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
@@ -63,6 +63,11 @@ src_prepare() {
 	# out-of-tree build.
 	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
 
+	# Known failures.
+	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
+	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
+	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
+
 	llvm.org_src_prepare
 }
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-03-19 18:14 Mikle Kolyada
  0 siblings, 0 replies; 608+ messages in thread
From: Mikle Kolyada @ 2021-03-19 18:14 UTC (permalink / raw
  To: gentoo-commits

commit:     3718c70a2f6923807816dee2a4564c8a2d25f95b
Author:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 19 18:14:01 2021 +0000
Commit:     Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
CommitDate: Fri Mar 19 18:14:01 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3718c70a

sys-libs/libcxx: Stabilize 11.1.0 amd64, #777282

Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild
index 9414c15c0f4..26e9ff250d5 100644
--- a/sys-libs/libcxx/libcxx-11.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.1.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-03-30  0:21 Thomas Deutschmann
  0 siblings, 0 replies; 608+ messages in thread
From: Thomas Deutschmann @ 2021-03-30  0:21 UTC (permalink / raw
  To: gentoo-commits

commit:     11554771d3e079f308b05aceef1ca0cb55b7a80b
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 30 00:17:54 2021 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Mar 30 00:19:23 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11554771

sys-libs/libcxx: x86 stable (bug #777282)

Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild
index 26e9ff250d5..c91af9ac2f7 100644
--- a/sys-libs/libcxx/libcxx-11.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.1.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-04-01 16:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-04-01 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     01115c050a55dedd81d02aa59ebf290b7c0d094d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr  1 08:53:44 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr  1 16:17:41 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01115c05

sys-libs/libcxx: Bump to 12.0.0-rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild | 223 +++++++++++++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9f09664b63b..61b8e259f34 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,3 +4,4 @@ DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9f2a430f7fee3f0c5c4334e5c14caa19738d18c87b568de963d57d9b53e808ac412cf8554eca7fcae9ecca65aa4442e197 SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d
 DIST llvmorg-12.0.0-rc3.tar.gz 134244008 BLAKE2B ed09aa361b264387711ba1ee2e4b01c0c78ad97391df95e2542d4edc31f657cc33c8a2a45de63eb421908d5dadd9392a736610fbb04b3ecbd336d6514a649da8 SHA512 1fae53c6f255160cf4be53848b8b92c8b162ddcfbddf1bf0017faf249859040c15c862c4b52bc3ba894149139afb814e0674da88793ddebfc0756ba3aa7626ce
+DIST llvmorg-12.0.0-rc4.tar.gz 134245842 BLAKE2B 860a0551a42e2c6a28f213c151076c5ae64a9d85f7bfb2e2df4737acd5fe968f29d368a689d9a857e01038587e872722d216f044b3f665857d7ed71122fe334e SHA512 20e4440664227c9ea7af84df3643599cd7c96f5e2b6404c42be0ce0f0d7f989f5c7b8df1f1ba93d1473d3a30325cda5a53d3900c0229ccb042b365583b5aa846

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild
new file mode 100644
index 00000000000..9887227800d
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# Known failures.
+	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
+	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
+	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-04-05 16:53 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-04-05 16:53 UTC (permalink / raw
  To: gentoo-commits

commit:     97eb0320d76ec23e035d1b621b71f6624cf46add
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Apr  5 16:50:32 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Apr  5 16:52:45 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97eb0320

sys-libs/libcxx: Stabilize 11.1.0 arm64, #777282

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.1.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild
index 2ba3cb64683..58ec9289d18 100644
--- a/sys-libs/libcxx/libcxx-11.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.1.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-04-09 11:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-04-09 11:46 UTC (permalink / raw
  To: gentoo-commits

commit:     1cd32b2a13c65441184764ddcf7201785d04e09c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Apr  9 10:29:17 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Apr  9 11:43:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1cd32b2a

sys-libs/libcxx: Bump to 12.0.0-rc5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild | 223 +++++++++++++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 61b8e259f34..5589711fdd1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,3 +5,4 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45c
 DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9f2a430f7fee3f0c5c4334e5c14caa19738d18c87b568de963d57d9b53e808ac412cf8554eca7fcae9ecca65aa4442e197 SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d
 DIST llvmorg-12.0.0-rc3.tar.gz 134244008 BLAKE2B ed09aa361b264387711ba1ee2e4b01c0c78ad97391df95e2542d4edc31f657cc33c8a2a45de63eb421908d5dadd9392a736610fbb04b3ecbd336d6514a649da8 SHA512 1fae53c6f255160cf4be53848b8b92c8b162ddcfbddf1bf0017faf249859040c15c862c4b52bc3ba894149139afb814e0674da88793ddebfc0756ba3aa7626ce
 DIST llvmorg-12.0.0-rc4.tar.gz 134245842 BLAKE2B 860a0551a42e2c6a28f213c151076c5ae64a9d85f7bfb2e2df4737acd5fe968f29d368a689d9a857e01038587e872722d216f044b3f665857d7ed71122fe334e SHA512 20e4440664227c9ea7af84df3643599cd7c96f5e2b6404c42be0ce0f0d7f989f5c7b8df1f1ba93d1473d3a30325cda5a53d3900c0229ccb042b365583b5aa846
+DIST llvmorg-12.0.0-rc5.tar.gz 134247991 BLAKE2B 9721e211d39611f9c48b57386fb57c1dcf964c39ff5f32c593a6390c06659fcd5a1f76063004d2ecd3d1af32281a69994c7478b7fdfacd9f50ebf5fbb2050a71 SHA512 a289fdc55c25454e8cbfd370387fdd11c7555d03b3c479213e37dd01189c077d67bd04b8cab62ce82f3746877f5f02619afb3a5110191048511efee38c191d16

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild
new file mode 100644
index 00000000000..9887227800d
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# Known failures.
+	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
+	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
+	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-04-15 20:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-04-15 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     319f44848c4906a27c03c5f0dad2d564970c9a0e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 15 14:50:03 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr 15 20:44:11 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=319f4484

sys-libs/libcxx: Bump to 12.0.0 final

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-12.0.0.ebuild | 223 +++++++++++++++++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5589711fdd1..087d75cb29b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,3 +6,4 @@ DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9
 DIST llvmorg-12.0.0-rc3.tar.gz 134244008 BLAKE2B ed09aa361b264387711ba1ee2e4b01c0c78ad97391df95e2542d4edc31f657cc33c8a2a45de63eb421908d5dadd9392a736610fbb04b3ecbd336d6514a649da8 SHA512 1fae53c6f255160cf4be53848b8b92c8b162ddcfbddf1bf0017faf249859040c15c862c4b52bc3ba894149139afb814e0674da88793ddebfc0756ba3aa7626ce
 DIST llvmorg-12.0.0-rc4.tar.gz 134245842 BLAKE2B 860a0551a42e2c6a28f213c151076c5ae64a9d85f7bfb2e2df4737acd5fe968f29d368a689d9a857e01038587e872722d216f044b3f665857d7ed71122fe334e SHA512 20e4440664227c9ea7af84df3643599cd7c96f5e2b6404c42be0ce0f0d7f989f5c7b8df1f1ba93d1473d3a30325cda5a53d3900c0229ccb042b365583b5aa846
 DIST llvmorg-12.0.0-rc5.tar.gz 134247991 BLAKE2B 9721e211d39611f9c48b57386fb57c1dcf964c39ff5f32c593a6390c06659fcd5a1f76063004d2ecd3d1af32281a69994c7478b7fdfacd9f50ebf5fbb2050a71 SHA512 a289fdc55c25454e8cbfd370387fdd11c7555d03b3c479213e37dd01189c077d67bd04b8cab62ce82f3746877f5f02619afb3a5110191048511efee38c191d16
+DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
new file mode 100644
index 00000000000..d78106ed99e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.0.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
+	# out-of-tree build.
+	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
+
+	# Known failures.
+	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
+	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
+	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
+
+	llvm.org_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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-04-15 20:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-04-15 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     bf7c78c47bcba4f09998da99597d436179bad82e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 15 20:37:47 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr 15 20:44:22 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf7c78c4

sys-libs/libcxx: Remove 12.0.0 RCs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   4 -
 sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild | 218 ------------------------------
 sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild | 223 -------------------------------
 sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild | 223 -------------------------------
 sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild | 223 -------------------------------
 5 files changed, 891 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 087d75cb29b..09cfebc2769 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,4 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
-DIST llvmorg-12.0.0-rc2.tar.gz 134242619 BLAKE2B bb741a311db608fc2ba7eeaab71c5c9f2a430f7fee3f0c5c4334e5c14caa19738d18c87b568de963d57d9b53e808ac412cf8554eca7fcae9ecca65aa4442e197 SHA512 d8f9b3dfeb0fe9b91eb7f49da393784333044db2653373fbb168afd3c8d50f3e3ec7a7b8f44df522d0facafbfe4cfc4d9e2906d19f1e6feb0bdc569b6c10a17d
-DIST llvmorg-12.0.0-rc3.tar.gz 134244008 BLAKE2B ed09aa361b264387711ba1ee2e4b01c0c78ad97391df95e2542d4edc31f657cc33c8a2a45de63eb421908d5dadd9392a736610fbb04b3ecbd336d6514a649da8 SHA512 1fae53c6f255160cf4be53848b8b92c8b162ddcfbddf1bf0017faf249859040c15c862c4b52bc3ba894149139afb814e0674da88793ddebfc0756ba3aa7626ce
-DIST llvmorg-12.0.0-rc4.tar.gz 134245842 BLAKE2B 860a0551a42e2c6a28f213c151076c5ae64a9d85f7bfb2e2df4737acd5fe968f29d368a689d9a857e01038587e872722d216f044b3f665857d7ed71122fe334e SHA512 20e4440664227c9ea7af84df3643599cd7c96f5e2b6404c42be0ce0f0d7f989f5c7b8df1f1ba93d1473d3a30325cda5a53d3900c0229ccb042b365583b5aa846
-DIST llvmorg-12.0.0-rc5.tar.gz 134247991 BLAKE2B 9721e211d39611f9c48b57386fb57c1dcf964c39ff5f32c593a6390c06659fcd5a1f76063004d2ecd3d1af32281a69994c7478b7fdfacd9f50ebf5fbb2050a71 SHA512 a289fdc55c25454e8cbfd370387fdd11c7555d03b3c479213e37dd01189c077d67bd04b8cab62ce82f3746877f5f02619afb3a5110191048511efee38c191d16
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild
deleted file mode 100644
index 8ed99383fe0..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.0_rc2.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
deleted file mode 100644
index 9887227800d..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.0_rc3.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	# Known failures.
-	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
-	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
-	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild
deleted file mode 100644
index 9887227800d..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.0_rc4.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	# Known failures.
-	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
-	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
-	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild b/sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild
deleted file mode 100644
index 9887227800d..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.0_rc5.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
-	# out-of-tree build.
-	eapply "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
-
-	# Known failures.
-	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
-	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
-	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-05-17  6:49 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-05-17  6:49 UTC (permalink / raw
  To: gentoo-commits

commit:     5212b410f648472c3b85693e0614ef249e991744
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 16 20:26:40 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon May 17 06:48:22 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5212b410

sys-libs/libcxx: Remove 11.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-11.0.0.ebuild | 210 -----------------------------------
 2 files changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 88b3c48b1f1..4e0f31a4b81 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,10 +1,8 @@
 DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
-DIST llvm-gentoo-patchset-11.0.0-1.tar.xz 6100 BLAKE2B 6f8fc9b7daa703f04b1283caaeb3665d4bec56ff80b1c5db35917c578fdd92617222bd2d2b83020144b8abdeaa261142b68aa3dee24350133f6721e41a167b78 SHA512 debdd92e6aa3133f474dfbd79f267e76d9d979e4e5d464c8d4343c6e6816b46376ca8080a9ee916152861907af9d0645ce71cf3582ef3dc31ec4ca3410fde9f6
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
-DIST llvmorg-11.0.0.tar.gz 122743665 BLAKE2B 3f95570240789fd68ddb747df817f5c6cdc9da40911bbe9ee3531c15ada9165e5002b1c2f778cf8735858485ea05a8754e3d3a5f4b15bdd6cb33d64a14692984 SHA512 b6d38871ccce0e086e27d35e42887618d68e57d8274735c59e3eabc42dee352412489296293f8d5169fe0044936345915ee7da61ebdc64ec10f7737f6ecd90f2
 DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26

diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
deleted file mode 100644
index 8f948316ac8..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=11.0.0-1
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-05-17  7:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-05-17  7:01 UTC (permalink / raw
  To: gentoo-commits

commit:     743f3e96f7bae3d04d42fbdaa021d7434d27321d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon May 17 06:59:56 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon May 17 07:01:28 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=743f3e96

sys-libs/libcxx: Remove 11.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 -
 sys-libs/libcxx/libcxx-11.0.1.ebuild | 211 -----------------------------------
 2 files changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4e0f31a4b81..eb60851a3a8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,6 +3,5 @@ DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11f
 DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
-DIST llvmorg-11.0.1.tar.gz 122790338 BLAKE2B 0130996b4a8c4d9f757136fd7fb318068c9bfdc565060dec0d4336480c4ab66c4ae3185a7fdb05f13cf9ee8fd4123b09df938881b75d6e5d3689595114b7e32a SHA512 f5e6ef0b3111aae08a89cd01adb2ff4abfa9ef779c68b9190421d0447efd25c2cc00e5aae9f4764805f5fa31434866043d1510ae7389817e28ae53a5442e2fdf
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26

diff --git a/sys-libs/libcxx/libcxx-11.0.1.ebuild b/sys-libs/libcxx/libcxx-11.0.1.ebuild
deleted file mode 100644
index 16172647c29..00000000000
--- a/sys-libs/libcxx/libcxx-11.0.1.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=11.1.0-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-05-26 12:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-05-26 12:08 UTC (permalink / raw
  To: gentoo-commits

commit:     f3bba8f7e1b4691509adbd6537f4f4ad65d41f0b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 26 08:49:20 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 26 12:07:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3bba8f7

sys-libs/libcxx: 12.0.0.9999 → 12.0.1.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-12.0.0.9999.ebuild => libcxx-12.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-12.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-05-26 12:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-05-26 12:08 UTC (permalink / raw
  To: gentoo-commits

commit:     4a6cebbc3223cdc0af11d816361e7bfca941fff0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 26 08:54:43 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 26 12:08:09 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a6cebbc

sys-libs/libcxx: Bump to 12.0.1rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild | 211 +++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index eb60851a3a8..1fd327bcd7b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,3 +5,4 @@ DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
+DIST llvmorg-12.0.1-rc1.tar.gz 134261735 BLAKE2B d29510495641c06e6d7a5ac165e6d34e0ba15d1a5b786534e186e341e3a0550cdd3d8a2b61deb3e2bf44c0b0ff8561224bf7f8cebc2ce9415639cb67ceae289e SHA512 4595a26df56eed7d5941240fe92116ad2f1c61639f0f464697c2c530a601347032fbad6802d1fa915ced8574c7b30ef05bc8c0be737784c844d3860892817e6e

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild
new file mode 100644
index 00000000000..1f529867fb7
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-06-17  9:05 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-06-17  9:05 UTC (permalink / raw
  To: gentoo-commits

commit:     f9cfc30fc541ee2eedbd23f9e9d6ef562f529c85
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 17 08:55:59 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 17 09:05:12 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9cfc30f

sys-libs/libcxx: Bump to 12.0.1rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild | 211 +++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1fd327bcd7b..3d502aefa02 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,3 +6,4 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
 DIST llvmorg-12.0.1-rc1.tar.gz 134261735 BLAKE2B d29510495641c06e6d7a5ac165e6d34e0ba15d1a5b786534e186e341e3a0550cdd3d8a2b61deb3e2bf44c0b0ff8561224bf7f8cebc2ce9415639cb67ceae289e SHA512 4595a26df56eed7d5941240fe92116ad2f1c61639f0f464697c2c530a601347032fbad6802d1fa915ced8574c7b30ef05bc8c0be737784c844d3860892817e6e
+DIST llvmorg-12.0.1-rc2.tar.gz 134274147 BLAKE2B 2d3f6ce8d5239cf2e5ea52f4b9020d6a8fedb8d6a4df02ca0d8e4398237f4eb967865e1e65570d16cd191865281b9619a63905c1e1c47b31183b881e97e49867 SHA512 cdebb954016dc92251cd9c6281804f7a36e7bc8c6f101a6817d96cc121aba4d361fb99501c259409a29c90d7749b224be670c41177fe43fa64b730ff294831b8

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
new file mode 100644
index 00000000000..1f529867fb7
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-06-18 15:30 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-06-18 15:30 UTC (permalink / raw
  To: gentoo-commits

commit:     735beb29db5f317e980b67dfaac2cb567b05b9d3
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 18 15:29:49 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jun 18 15:29:49 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=735beb29

sys-libs/libcxx: Stabilize 12.0.0 x86, #796215

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
index 21363361ae2..51715fd5a1f 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-06-18 22:28 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-06-18 22:28 UTC (permalink / raw
  To: gentoo-commits

commit:     60f11d5a32114d998fc69e73fdc63fefa8fdfcaf
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 18 22:26:40 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jun 18 22:26:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60f11d5a

sys-libs/libcxx: Stabilize 12.0.0 amd64, #796215

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
index 51715fd5a1f..65dcec6a526 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-06-20 22:55 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-06-20 22:55 UTC (permalink / raw
  To: gentoo-commits

commit:     476e3334f103d617d6dc89ccaa731e359a36f9fb
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 20 22:54:40 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jun 20 22:54:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=476e3334

sys-libs/libcxx: Stabilize 12.0.0 arm, #796215

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
index 65dcec6a526..cedf8f01ef0 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm ~arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-06-21  7:19 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-06-21  7:19 UTC (permalink / raw
  To: gentoo-commits

commit:     0af2572e62755a7b2a03a9df22f71bd451c34796
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 21 07:18:18 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jun 21 07:18:18 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0af2572e

sys-libs/libcxx: Stabilize 12.0.0 arm64, #796215

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
index cedf8f01ef0..c5ca6ee892f 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-05  5:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-05  5:50 UTC (permalink / raw
  To: gentoo-commits

commit:     46a2a8d90efe4cf8f29649263ecc4a13d542fe5d
Author:     Alex R <lyssdod <AT> gmail <DOT> com>
AuthorDate: Sun Jul  4 22:58:46 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul  5 05:40:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46a2a8d9

sys-libs/libcxx: use gcc libatomic only with libgcc_s

Signed-off-by: Alex Revin <lyssdod <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/21516
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.0.ebuild      | 1 +
 sys-libs/libcxx/libcxx-12.0.1.9999.ebuild | 1 +
 sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild  | 1 +
 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 1 +
 4 files changed, 4 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
index c5ca6ee892f..3463d022a19 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.ebuild
@@ -140,6 +140,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 

diff --git a/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
index 1f529867fb7..861d92b62c2 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
@@ -131,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
index 1f529867fb7..861d92b62c2 100644
--- a/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
@@ -131,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
index 1f529867fb7..861d92b62c2 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -131,6 +131,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-05 22:54 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-05 22:54 UTC (permalink / raw
  To: gentoo-commits

commit:     64cac03b95e873f97f5ee194886dc699a793e706
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jul  5 20:59:57 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul  5 22:53:58 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64cac03b

sys-libs/libcxx: Bump to 12.0.1-rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild | 212 +++++++++++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3d502aefa02..2170cd12357 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,3 +7,4 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45c
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
 DIST llvmorg-12.0.1-rc1.tar.gz 134261735 BLAKE2B d29510495641c06e6d7a5ac165e6d34e0ba15d1a5b786534e186e341e3a0550cdd3d8a2b61deb3e2bf44c0b0ff8561224bf7f8cebc2ce9415639cb67ceae289e SHA512 4595a26df56eed7d5941240fe92116ad2f1c61639f0f464697c2c530a601347032fbad6802d1fa915ced8574c7b30ef05bc8c0be737784c844d3860892817e6e
 DIST llvmorg-12.0.1-rc2.tar.gz 134274147 BLAKE2B 2d3f6ce8d5239cf2e5ea52f4b9020d6a8fedb8d6a4df02ca0d8e4398237f4eb967865e1e65570d16cd191865281b9619a63905c1e1c47b31183b881e97e49867 SHA512 cdebb954016dc92251cd9c6281804f7a36e7bc8c6f101a6817d96cc121aba4d361fb99501c259409a29c90d7749b224be670c41177fe43fa64b730ff294831b8
+DIST llvmorg-12.0.1-rc4.tar.gz 134278617 BLAKE2B d407421c7244bb125151e69e2a341f1af0a0cf8c1fda3b8ae3d4114c3a285d6307620bbf82b22d96d2c7782b37b0975e87be80c24e3ce1fdc71152734be1e8f8 SHA512 1a2c18435a970491eb9fc9381ba66af726e17dcbd5bf6774f9341b1e82fd35f2e5686844743f5317ebd2106b902c39e09aa98102e58a86e290b29102241c949f

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
new file mode 100644
index 00000000000..861d92b62c2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-06 13:49 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-06 13:49 UTC (permalink / raw
  To: gentoo-commits

commit:     278e62d444b5634371b3ed585c9d57b58e5745e3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  6 12:07:45 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul  6 13:49:19 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=278e62d4

sys-libs/libcxx: Use 12.0.1-rc4-1 patchset

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 | 1 +
 sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2170cd12357..002a4ae761f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,7 @@
 DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
+DIST llvm-gentoo-patchset-12.0.1-rc4-1.tar.xz 4776 BLAKE2B 2ae7994089922805c9b82268e4c73d9a70edbb8860af7e593da904c673836713fae5fd7626ef1dbfe813c66f4da8308b26b4cd0bd977471834d49512690afa39 SHA512 386668fd338ee24677c51379c69a73b6a749bd4cf72bf59f9cb800b1ac19938275d64d0c23e431c80ed5e572d86d94bbb030241c43cbf541801cdc672f5911c1
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
index 861d92b62c2..80b5dfdd79e 100644
--- a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
@@ -35,7 +35,7 @@ BDEPEND="
 DOCS=( CREDITS.TXT )
 
 LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=9999-1
+LLVM_PATCHSET=12.0.1-rc4-1
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-06 13:51 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-06 13:51 UTC (permalink / raw
  To: gentoo-commits

commit:     219415c4cb89df015c7e46082a632b8cfef9529f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  6 13:50:49 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul  6 13:50:49 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=219415c4

sys-libs/libcxx: Remove 12.0.1-rc1 & -rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild | 211 ------------------------------
 sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild | 212 -------------------------------
 3 files changed, 425 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 002a4ae761f..3fd830b40d3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,4 @@ DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
-DIST llvmorg-12.0.1-rc1.tar.gz 134261735 BLAKE2B d29510495641c06e6d7a5ac165e6d34e0ba15d1a5b786534e186e341e3a0550cdd3d8a2b61deb3e2bf44c0b0ff8561224bf7f8cebc2ce9415639cb67ceae289e SHA512 4595a26df56eed7d5941240fe92116ad2f1c61639f0f464697c2c530a601347032fbad6802d1fa915ced8574c7b30ef05bc8c0be737784c844d3860892817e6e
-DIST llvmorg-12.0.1-rc2.tar.gz 134274147 BLAKE2B 2d3f6ce8d5239cf2e5ea52f4b9020d6a8fedb8d6a4df02ca0d8e4398237f4eb967865e1e65570d16cd191865281b9619a63905c1e1c47b31183b881e97e49867 SHA512 cdebb954016dc92251cd9c6281804f7a36e7bc8c6f101a6817d96cc121aba4d361fb99501c259409a29c90d7749b224be670c41177fe43fa64b730ff294831b8
 DIST llvmorg-12.0.1-rc4.tar.gz 134278617 BLAKE2B d407421c7244bb125151e69e2a341f1af0a0cf8c1fda3b8ae3d4114c3a285d6307620bbf82b22d96d2c7782b37b0975e87be80c24e3ce1fdc71152734be1e8f8 SHA512 1a2c18435a970491eb9fc9381ba66af726e17dcbd5bf6774f9341b1e82fd35f2e5686844743f5317ebd2106b902c39e09aa98102e58a86e290b29102241c949f

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild
deleted file mode 100644
index 1f529867fb7..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.1_rc1.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
deleted file mode 100644
index 861d92b62c2..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.1_rc2.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-06 15:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-06 15:21 UTC (permalink / raw
  To: gentoo-commits

commit:     96ffe264281d6498a1d11d41699c5053f6b52fc8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul  6 14:12:51 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul  6 15:21:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96ffe264

sys-libs/libcxx: Enable py3.10

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.1.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
index 861d92b62c2..db5b489c505 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_COMPAT=( python3_{8..10} )
 inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
index 80b5dfdd79e..40445a9324a 100644
--- a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_COMPAT=( python3_{8..10} )
 inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
index 861d92b62c2..db5b489c505 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
+PYTHON_COMPAT=( python3_{8..10} )
 inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
 
 DESCRIPTION="New implementation of the C++ standard library, targeting C++11"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-09 14:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-09 14:44 UTC (permalink / raw
  To: gentoo-commits

commit:     13e807474aca9341f51b4d8932ac999ba76dbc1b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul  9 07:39:20 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul  9 14:44:11 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13e80747

sys-libs/libcxx: Bump to 12.0.1 (final)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-12.0.1.ebuild | 212 +++++++++++++++++++++++++++++++++++
 2 files changed, 214 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3fd830b40d3..4f62846c44d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,10 @@ DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
 DIST llvm-gentoo-patchset-12.0.1-rc4-1.tar.xz 4776 BLAKE2B 2ae7994089922805c9b82268e4c73d9a70edbb8860af7e593da904c673836713fae5fd7626ef1dbfe813c66f4da8308b26b4cd0bd977471834d49512690afa39 SHA512 386668fd338ee24677c51379c69a73b6a749bd4cf72bf59f9cb800b1ac19938275d64d0c23e431c80ed5e572d86d94bbb030241c43cbf541801cdc672f5911c1
+DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
 DIST llvmorg-12.0.1-rc4.tar.gz 134278617 BLAKE2B d407421c7244bb125151e69e2a341f1af0a0cf8c1fda3b8ae3d4114c3a285d6307620bbf82b22d96d2c7782b37b0975e87be80c24e3ce1fdc71152734be1e8f8 SHA512 1a2c18435a970491eb9fc9381ba66af726e17dcbd5bf6774f9341b1e82fd35f2e5686844743f5317ebd2106b902c39e09aa98102e58a86e290b29102241c949f
+DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
new file mode 100644
index 00000000000..bf4009dbd8f
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_PATCHSET=12.0.1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-09 14:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-09 14:44 UTC (permalink / raw
  To: gentoo-commits

commit:     67ba0ec7df48a7e0a402934d0e5c5d15e3c4b8f4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul  9 08:43:28 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul  9 14:44:33 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67ba0ec7

sys-libs/libcxx: Remove 12.0.1-rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild | 212 -------------------------------
 2 files changed, 214 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4f62846c44d..9cc93e93f03 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,11 +1,9 @@
 DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
-DIST llvm-gentoo-patchset-12.0.1-rc4-1.tar.xz 4776 BLAKE2B 2ae7994089922805c9b82268e4c73d9a70edbb8860af7e593da904c673836713fae5fd7626ef1dbfe813c66f4da8308b26b4cd0bd977471834d49512690afa39 SHA512 386668fd338ee24677c51379c69a73b6a749bd4cf72bf59f9cb800b1ac19938275d64d0c23e431c80ed5e572d86d94bbb030241c43cbf541801cdc672f5911c1
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
-DIST llvmorg-12.0.1-rc4.tar.gz 134278617 BLAKE2B d407421c7244bb125151e69e2a341f1af0a0cf8c1fda3b8ae3d4114c3a285d6307620bbf82b22d96d2c7782b37b0975e87be80c24e3ce1fdc71152734be1e8f8 SHA512 1a2c18435a970491eb9fc9381ba66af726e17dcbd5bf6774f9341b1e82fd35f2e5686844743f5317ebd2106b902c39e09aa98102e58a86e290b29102241c949f
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1

diff --git a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild b/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
deleted file mode 100644
index 40445a9324a..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.1_rc4.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=12.0.1-rc4-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-10 17:51 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-10 17:51 UTC (permalink / raw
  To: gentoo-commits

commit:     3c4d0173de8e5f828f505bc7ef54d0333d853e44
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 10 17:46:50 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 10 17:51:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c4d0173

sys-libs/libcxx: Remove 12.0.1.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.1.9999.ebuild | 212 ------------------------------
 1 file changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
deleted file mode 100644
index db5b489c505..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.1.9999.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-07-30 18:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-07-30 18:14 UTC (permalink / raw
  To: gentoo-commits

commit:     d338d09e318e203afcf49fbd6e9668836b062b79
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 30 11:16:42 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 30 18:13:59 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d338d09e

sys-libs/libcxx: Bump live to 14*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 212 ++++++++++++++++++++++++++++++
 1 file changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
new file mode 100644
index 00000000000..db5b489c505
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-08-03 11:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-08-03 11:13 UTC (permalink / raw
  To: gentoo-commits

commit:     adda40dc2e4cdc8bf5eb1333c2bb1924603b78e9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  3 10:58:33 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug  3 11:12:54 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=adda40dc

sys-libs/libcxx: Bump to 13.0.0rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild | 212 +++++++++++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9cc93e93f03..d48e7b81ab8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,3 +7,4 @@ DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
+DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
new file mode 100644
index 00000000000..db5b489c505
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-08-03 18:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-08-03 18:59 UTC (permalink / raw
  To: gentoo-commits

commit:     b535b4415e7ce25ce34905d9edc85a5f2f95f3ad
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  3 18:59:28 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug  3 18:59:28 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b535b441

sys-libs/libcxx: Extend checkout to fix building 13+

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
index db5b489c505..9a04f2fb7cb 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -34,7 +34,7 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
index db5b489c505..9a04f2fb7cb 100644
--- a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
@@ -34,7 +34,7 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index db5b489c505..9a04f2fb7cb 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -34,7 +34,7 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-08-03 20:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-08-03 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     916fce51ac3bfe73ff9a5ecb565c32a77e0c689a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  3 20:43:45 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug  3 20:43:45 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=916fce51

sys-libs/libcxx: Fix running tests against shared libc++abi in 13+

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 1 +
 sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild  | 1 +
 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 1 +
 3 files changed, 3 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
index 9a04f2fb7cb..5dca7551438 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
@@ -142,6 +142,7 @@ multilib_src_configure() {
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
 		)
 	fi

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
index 9a04f2fb7cb..5dca7551438 100644
--- a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
@@ -142,6 +142,7 @@ multilib_src_configure() {
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
 		)
 	fi

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index 9a04f2fb7cb..5dca7551438 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -142,6 +142,7 @@ multilib_src_configure() {
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
 		)
 	fi


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-08-04  4:53 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-08-04  4:53 UTC (permalink / raw
  To: gentoo-commits

commit:     b57b61320a12040f5e066c0ccee18f4a73e75c9b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  4 04:52:24 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Aug  4 04:52:51 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b57b6132

sys-libs/libcxx: Stabilize 12.0.1 amd64, #804471

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
index bf4009dbd8f..99b2c61fd2b 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-08-27 20:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-08-27 20:10 UTC (permalink / raw
  To: gentoo-commits

commit:     46a612300726de42aa0cad37842297d76cc09f0c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 27 07:32:49 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 27 20:10:14 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46a61230

sys-libs/libcxx: Bump to 13.0.0rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild | 213 +++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d48e7b81ab8..695175197b3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,9 +2,11 @@ DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
+DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
+DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild
new file mode 100644
index 00000000000..bd52b554403
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=13.0.0-rc2
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-10  1:25 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-09-10  1:25 UTC (permalink / raw
  To: gentoo-commits

commit:     dca981fdf88d1d206a2e7bc5bbffb129527d617e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 10 01:25:12 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep 10 01:25:33 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dca981fd

sys-libs/libcxx: Stabilize 12.0.1 arm64, #804471

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
index 99b2c61fd2b..4932f65e8af 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-11  6:02 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-09-11  6:02 UTC (permalink / raw
  To: gentoo-commits

commit:     b60ebd427ea7843cb00180084ac1bce0f0005ef1
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 11 06:01:43 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 11 06:01:43 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b60ebd42

sys-libs/libcxx: Stabilize 12.0.1 x86, #804471

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
index 4932f65e8af..ad100bd5e43 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-11  6:06 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-09-11  6:06 UTC (permalink / raw
  To: gentoo-commits

commit:     169b917efb7583a36464d1ac0f726397b5c8416c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 11 06:06:04 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 11 06:06:04 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=169b917e

sys-libs/libcxx: Stabilize 12.0.1 arm, #804471

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-12.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
index ad100bd5e43..32d4aa2d1da 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-11  7:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-09-11  7:24 UTC (permalink / raw
  To: gentoo-commits

commit:     709c675e98f169c0393cb0608a6be7d326dbbba4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 11 07:17:08 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Sep 11 07:17:29 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=709c675e

sys-libs/libcxx: Remove 12.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-12.0.0.ebuild | 221 -----------------------------------
 2 files changed, 223 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 695175197b3..c24e85c1763 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,12 +1,10 @@
 DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
-DIST llvm-gentoo-patchset-12.0.0-1.tar.xz 6364 BLAKE2B bcf96dad8300cdc3e1f416cb90935ae3b1359efc5687118b5a9bbee25de7087a266250f50c6f2abd18f4efeeec19354f59513c8fdd1d61c2cfc8cc2f0115e514 SHA512 76201e169f71a8d568365ffeafcfd37138e74b0536826f47eb6ce89c2280586f10426917e851f99bfb20477cd828cc40daa8cb7a62959981620fbd81e1b22ee1
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
-DIST llvmorg-12.0.0.tar.gz 134226215 BLAKE2B f9c3ba8c58571855caa4f206fd285c9b5be66672fb0814cb8bc0964a051f57f5d35013aa1e27cbda502652b37df1ec23474129109e76a42066847860db441dbe SHA512 0cff02155c5ac0d6db2b72d60d9819d5b5dd859663b45f721b1c7540239c2fceb1f57d9173f6870c49de851c242ed8e85c5c6d6577a1f8092a7c5dcd12513b26
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
 DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44

diff --git a/sys-libs/libcxx/libcxx-12.0.0.ebuild b/sys-libs/libcxx/libcxx-12.0.0.ebuild
deleted file mode 100644
index 3463d022a19..00000000000
--- a/sys-libs/libcxx/libcxx-12.0.0.ebuild
+++ /dev/null
@@ -1,221 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=12.0.0-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# Known failures.
-	rm test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp || die
-	rm test/libcxx/memory/trivial_abi/unique_ptr_ret.pass.cpp || die
-	rm test/libcxx/memory/trivial_abi/weak_ptr_ret.pass.cpp || die
-
-	llvm.org_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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-11  7:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-09-11  7:25 UTC (permalink / raw
  To: gentoo-commits

commit:     86f72380056310b5786c2497338457cb9568cf5e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 11 07:25:13 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Sep 11 07:25:13 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86f72380

sys-libs/libcxx: Remove 13.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 -
 sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild | 213 -------------------------------
 2 files changed, 214 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c24e85c1763..39607beb84e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,5 +6,4 @@ DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
-DIST llvmorg-13.0.0-rc1.tar.gz 147235597 BLAKE2B 089fed119dee8a16f278cebb13808bd5a95629cc87ebee3050225cc041b78fee51acacc5bcc913d4a99e830bfe5774b19a04a845293c5087dd2a8c9d94d2fde9 SHA512 6e307e2c2dcb7ff41d11ee29d69f41c0ef55f200999847a3a924a2e773fc9c2160015746789af8b723c628bd232f97fce63370209bd0065491d80b0cc0017e85
 DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
deleted file mode 100644
index 5dca7551438..00000000000
--- a/sys-libs/libcxx/libcxx-13.0.0_rc1.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-14 15:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-09-14 15:23 UTC (permalink / raw
  To: gentoo-commits

commit:     969aaee0218a7d570a4e819072d6835f359ec9af
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 14 09:28:08 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 14 15:23:19 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=969aaee0

sys-libs/libcxx: Bump to 13.0.0-rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild | 213 +++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 39607beb84e..0ec4ff0932b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,10 @@ DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
+DIST llvm-gentoo-patchset-13.0.0-rc3.tar.xz 5012 BLAKE2B 5399feeffe73e8fbd099c8058f1cc41e2fcb2feb446acc1394589c0397167786895d328d45ff481fb30605f215774b9e51e332124c0b071e969a2f01c5943c04 SHA512 d4fb2b08e253d9fa89070045282b4309ca9938011bf7f9b5364cc69c5030ff9353abb1624895b4bfeef2cd8e2f8c9b9f93fc8196f98dc0970457bca7787270c9
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44
+DIST llvmorg-13.0.0-rc3.tar.gz 147281901 BLAKE2B 640065a2f32dc48edf084d776cb6b950fae86c2a204999e2eec67f93b57615df40adec19785099b0ef2fe11837c3304794ec3585289a5b5051a557618c63c749 SHA512 1401d5a4d6bb5c930d74b9cfbc8e792872f721aab7d7f0c819e2ba5cf47fb818d160c1f71784fba69827f3c9b7414aa91a585d2b813c1851b4799f9d62cebc46

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild
new file mode 100644
index 00000000000..5f8acf054c6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=13.0.0-rc3
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-09-25  7:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-09-25  7:45 UTC (permalink / raw
  To: gentoo-commits

commit:     145a432e97ed0080b937f7a21d2120f4ddd5124c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 25 07:02:07 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Sep 25 07:45:40 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=145a432e

sys-libs/libcxx: Bump to 13.0.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild | 213 +++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0ec4ff0932b..7c09f04d292 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,9 +3,11 @@ DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11f
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
 DIST llvm-gentoo-patchset-13.0.0-rc3.tar.xz 5012 BLAKE2B 5399feeffe73e8fbd099c8058f1cc41e2fcb2feb446acc1394589c0397167786895d328d45ff481fb30605f215774b9e51e332124c0b071e969a2f01c5943c04 SHA512 d4fb2b08e253d9fa89070045282b4309ca9938011bf7f9b5364cc69c5030ff9353abb1624895b4bfeef2cd8e2f8c9b9f93fc8196f98dc0970457bca7787270c9
+DIST llvm-gentoo-patchset-13.0.0-rc4.tar.xz 5016 BLAKE2B 021ba4e67904e4cf4dfdf1ecfc1cd1cc860c2f43db97e04c40ca7d95567f6235a27a2a919083c58b89b269eefa2d751cb9c324bda6518c22e9fc01007936a520 SHA512 dce61179dffafc5992fb0e18314bba2d5fbf2f0470a491bc1ffc036274b65d0a1de741b23e2de32e873250c856a53707e06f8c560bd29f8a54a6ae0c74267f43
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44
 DIST llvmorg-13.0.0-rc3.tar.gz 147281901 BLAKE2B 640065a2f32dc48edf084d776cb6b950fae86c2a204999e2eec67f93b57615df40adec19785099b0ef2fe11837c3304794ec3585289a5b5051a557618c63c749 SHA512 1401d5a4d6bb5c930d74b9cfbc8e792872f721aab7d7f0c819e2ba5cf47fb818d160c1f71784fba69827f3c9b7414aa91a585d2b813c1851b4799f9d62cebc46
+DIST llvmorg-13.0.0-rc4.tar.gz 147286367 BLAKE2B a43c54b8bb379b0374f99ae07066d7ba4ae2a83dfdb61390101c736f91dc44aa07a88778551aaaf903033562b2a0a863ea6b27392b700c9cddc74e2c7899cad1 SHA512 8ccaaea21ec4fe3c4b4446d3a7cae36a47ed196f407d341da45824bcefefffd3c412c0c5c27670ceaba1458bc53107273f9d3aec2de261b6b82c6d209b45b14d

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild
new file mode 100644
index 00000000000..f342357254b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=${PV/_/-}
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-10-01 13:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-10-01 13:27 UTC (permalink / raw
  To: gentoo-commits

commit:     226ffc22af6ceeb6b75416139e1578792be36806
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  1 12:36:39 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  1 13:26:57 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=226ffc22

sys-libs/libcxx: Bump to 13.0.0 (final)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-13.0.0.ebuild | 213 +++++++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7c09f04d292..d6bfb17462e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,6 +4,7 @@ DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841a
 DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
 DIST llvm-gentoo-patchset-13.0.0-rc3.tar.xz 5012 BLAKE2B 5399feeffe73e8fbd099c8058f1cc41e2fcb2feb446acc1394589c0397167786895d328d45ff481fb30605f215774b9e51e332124c0b071e969a2f01c5943c04 SHA512 d4fb2b08e253d9fa89070045282b4309ca9938011bf7f9b5364cc69c5030ff9353abb1624895b4bfeef2cd8e2f8c9b9f93fc8196f98dc0970457bca7787270c9
 DIST llvm-gentoo-patchset-13.0.0-rc4.tar.xz 5016 BLAKE2B 021ba4e67904e4cf4dfdf1ecfc1cd1cc860c2f43db97e04c40ca7d95567f6235a27a2a919083c58b89b269eefa2d751cb9c324bda6518c22e9fc01007936a520 SHA512 dce61179dffafc5992fb0e18314bba2d5fbf2f0470a491bc1ffc036274b65d0a1de741b23e2de32e873250c856a53707e06f8c560bd29f8a54a6ae0c74267f43
+DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
@@ -11,3 +12,4 @@ DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f6
 DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44
 DIST llvmorg-13.0.0-rc3.tar.gz 147281901 BLAKE2B 640065a2f32dc48edf084d776cb6b950fae86c2a204999e2eec67f93b57615df40adec19785099b0ef2fe11837c3304794ec3585289a5b5051a557618c63c749 SHA512 1401d5a4d6bb5c930d74b9cfbc8e792872f721aab7d7f0c819e2ba5cf47fb818d160c1f71784fba69827f3c9b7414aa91a585d2b813c1851b4799f9d62cebc46
 DIST llvmorg-13.0.0-rc4.tar.gz 147286367 BLAKE2B a43c54b8bb379b0374f99ae07066d7ba4ae2a83dfdb61390101c736f91dc44aa07a88778551aaaf903033562b2a0a863ea6b27392b700c9cddc74e2c7899cad1 SHA512 8ccaaea21ec4fe3c4b4446d3a7cae36a47ed196f407d341da45824bcefefffd3c412c0c5c27670ceaba1458bc53107273f9d3aec2de261b6b82c6d209b45b14d
+DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
new file mode 100644
index 00000000000..62760143aef
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=${PV/_/-}
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-10-01 13:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-10-01 13:27 UTC (permalink / raw
  To: gentoo-commits

commit:     9dc1348f543e60df0426699b4716b5d01842fafc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  1 12:37:18 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  1 13:27:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9dc1348f

sys-libs/libcxx: Remove 13.0.0 RCs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   6 -
 sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild | 213 -------------------------------
 sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild | 213 -------------------------------
 sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild | 213 -------------------------------
 4 files changed, 645 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d6bfb17462e..3637647d0da 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,15 +1,9 @@
 DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
-DIST llvm-gentoo-patchset-13.0.0-rc2.tar.xz 5556 BLAKE2B e6c7ecfe8f842edc4d4f30a20c66973519182ecb46e21fb20b6c5fcb6d54cdef830fcb120a405b77f1332e3557acbbbbfa99170b20d17f137e0a63b2d0dc1258 SHA512 ddeaf1d07f0ba893ce93e5fe1eff1c0716769a7879fc503c397f4db7becb363f94747f59b6d53c204df73a93954fb0ca5aae6ad544ce55c964c4bf441a410cd2
-DIST llvm-gentoo-patchset-13.0.0-rc3.tar.xz 5012 BLAKE2B 5399feeffe73e8fbd099c8058f1cc41e2fcb2feb446acc1394589c0397167786895d328d45ff481fb30605f215774b9e51e332124c0b071e969a2f01c5943c04 SHA512 d4fb2b08e253d9fa89070045282b4309ca9938011bf7f9b5364cc69c5030ff9353abb1624895b4bfeef2cd8e2f8c9b9f93fc8196f98dc0970457bca7787270c9
-DIST llvm-gentoo-patchset-13.0.0-rc4.tar.xz 5016 BLAKE2B 021ba4e67904e4cf4dfdf1ecfc1cd1cc860c2f43db97e04c40ca7d95567f6235a27a2a919083c58b89b269eefa2d751cb9c324bda6518c22e9fc01007936a520 SHA512 dce61179dffafc5992fb0e18314bba2d5fbf2f0470a491bc1ffc036274b65d0a1de741b23e2de32e873250c856a53707e06f8c560bd29f8a54a6ae0c74267f43
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
-DIST llvmorg-13.0.0-rc2.tar.gz 147267736 BLAKE2B 153bf7320f2aa911112d366ffc79f7110cb04f135c2a8b176c263f0a75eb768206d9bd462893d45504b0e58aa9e127fdcafb02300eab1666e4616aa654d457dd SHA512 a01baf3eaa02f02af42bfcf6dcf24f166351bf1c09601495617c81e41def23210573bad40a344270f40c5deb881d06863536abac2a6481930766a6a56335fb44
-DIST llvmorg-13.0.0-rc3.tar.gz 147281901 BLAKE2B 640065a2f32dc48edf084d776cb6b950fae86c2a204999e2eec67f93b57615df40adec19785099b0ef2fe11837c3304794ec3585289a5b5051a557618c63c749 SHA512 1401d5a4d6bb5c930d74b9cfbc8e792872f721aab7d7f0c819e2ba5cf47fb818d160c1f71784fba69827f3c9b7414aa91a585d2b813c1851b4799f9d62cebc46
-DIST llvmorg-13.0.0-rc4.tar.gz 147286367 BLAKE2B a43c54b8bb379b0374f99ae07066d7ba4ae2a83dfdb61390101c736f91dc44aa07a88778551aaaf903033562b2a0a863ea6b27392b700c9cddc74e2c7899cad1 SHA512 8ccaaea21ec4fe3c4b4446d3a7cae36a47ed196f407d341da45824bcefefffd3c412c0c5c27670ceaba1458bc53107273f9d3aec2de261b6b82c6d209b45b14d
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild
deleted file mode 100644
index bd52b554403..00000000000
--- a/sys-libs/libcxx/libcxx-13.0.0_rc2.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=13.0.0-rc2
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild
deleted file mode 100644
index 5f8acf054c6..00000000000
--- a/sys-libs/libcxx/libcxx-13.0.0_rc3.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=13.0.0-rc3
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild
deleted file mode 100644
index f342357254b..00000000000
--- a/sys-libs/libcxx/libcxx-13.0.0_rc4.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-05  7:19 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-11-05  7:19 UTC (permalink / raw
  To: gentoo-commits

commit:     70ac10e83fad888a42fa65eda1ad95e3d136c339
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  5 07:19:02 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Nov  5 07:19:02 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70ac10e8

sys-libs/libcxx: Stabilize 13.0.0 arm64, #821862

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index 62760143aef..586ae046b99 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-05 19:16 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-11-05 19:16 UTC (permalink / raw
  To: gentoo-commits

commit:     ed074f4f60a23d8ea898c4865892b747ff8fdb7e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  5 19:15:38 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Nov  5 19:16:21 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed074f4f

sys-libs/libcxx: Stabilize 13.0.0 amd64, #821862

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index 586ae046b99..4656b8da474 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-05 20:07 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-11-05 20:07 UTC (permalink / raw
  To: gentoo-commits

commit:     2162de501c651593ec1ee6a6a2041f1888f6284f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  5 20:07:11 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Nov  5 20:07:11 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2162de50

sys-libs/libcxx: Stabilize 13.0.0 arm, #821862

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index 4656b8da474..f678af05042 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv ~x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-08 11:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-11-08 11:25 UTC (permalink / raw
  To: gentoo-commits

commit:     fd9d69660f96682ea2ed8628fbb97a0c1a6b7a13
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  8 11:04:18 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Nov  8 11:25:26 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd9d6966

sys-libs/libcxx: Remove 10*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-10.0.1.ebuild | 190 -----------------------------------
 2 files changed, 192 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3637647d0da..ce1d0b490b8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,9 +1,7 @@
-DIST llvm-gentoo-patchset-10.0.1-1.tar.xz 8320 BLAKE2B 1b7ea7669586e08fece0efcf02b392feed4b7f3e6e9cdd10ab7dcc30082cae5bb1daa6d3314a7b0329c4d70f3c736d0c57ed408c838601dc737d558d2a0a0f26 SHA512 75898a8d719657177bbf587d848be8e53135c09e50603660c19edab00f80b6c2f29e7b6fda2bef381b38df6e24a690d694029a38c525763408322573275fc9f0
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
-DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2

diff --git a/sys-libs/libcxx/libcxx-10.0.1.ebuild b/sys-libs/libcxx/libcxx-10.0.1.ebuild
deleted file mode 100644
index 5c7c50377c3..00000000000
--- a/sys-libs/libcxx/libcxx-10.0.1.ebuild
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
-
-DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
-HOMEPAGE="https://libcxx.llvm.org/"
-LLVM_COMPONENTS=( libcxx )
-LLVM_PATCHSET=10.0.1-1
-llvm.org_set_globals
-
-LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 x86"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? ( >=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
-
-DOCS=( CREDITS.TXT )
-
-python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
-	llvm_pkg_setup
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-libcxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	gen_shared_ldscript
-	use static-libs && gen_static_ldscript
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-13  8:21 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2021-11-13  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     f58f6dc9c178add4138c7c82ea0e6f7128153e22
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 13 08:21:10 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Nov 13 08:21:10 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f58f6dc9

sys-libs/libcxx: Stabilize 13.0.0 x86, #821862

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index f678af05042..a4f36e792e6 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-30  9:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-11-30  9:38 UTC (permalink / raw
  To: gentoo-commits

commit:     a8e8d271e7cb0cd4f452dc1a5d76503db7bcc253
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 30 09:38:08 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 30 09:38:08 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8e8d271

sys-libs/libcxx: 13.x branch is now 13.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-13.0.0.9999.ebuild => libcxx-13.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-13.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-13.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-30 10:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-11-30 10:01 UTC (permalink / raw
  To: gentoo-commits

commit:     c36e24be7ef56809ab14bcba945d6b684604287e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 30 09:44:49 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 30 10:01:23 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c36e24be

sys-libs/libcxx: Bump to 13.0.1_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild | 213 +++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ce1d0b490b84..3e1261de5ede 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,9 @@
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
+DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
+DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
new file mode 100644
index 000000000000..f342357254b2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=${PV/_/-}
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-11-30 16:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-11-30 16:44 UTC (permalink / raw
  To: gentoo-commits

commit:     248fe9f3370a85043dd4ed7e666bdf830119bf0f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 30 16:41:24 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 30 16:44:15 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=248fe9f3

sys-libs/libcxx: Fix testing on non-native ABI

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.ebuild      | 1 +
 sys-libs/libcxx/libcxx-13.0.1.9999.ebuild | 1 +
 sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild  | 1 +
 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 1 +
 4 files changed, 4 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index a4f36e792e65..dc0615878d5b 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -144,6 +144,7 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
+			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
index 5dca7551438c..fbcd79834cfb 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
@@ -144,6 +144,7 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
+			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
index f342357254b2..2759ecac9550 100644
--- a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
@@ -144,6 +144,7 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
+			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index 5dca7551438c..fbcd79834cfb 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -144,6 +144,7 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
+			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-12-01 16:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-12-01 16:47 UTC (permalink / raw
  To: gentoo-commits

commit:     ddc2e725ec82a7e16518fa6a4d22b777d058aa28
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Dec  1 16:46:55 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Dec  1 16:47:25 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddc2e725

sys-libs/libcxx: Set target triple unconditionally to fix clangrt

Set target triple unconditionally in order to fix building
against compiler-rt.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.0.ebuild      | 2 +-
 sys-libs/libcxx/libcxx-13.0.1.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index dc0615878d5b..851870fd9e95 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -132,6 +132,7 @@ multilib_src_configure() {
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 
@@ -144,7 +145,6 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
-			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
index fbcd79834cfb..be5566afa3bf 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
@@ -132,6 +132,7 @@ multilib_src_configure() {
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 
@@ -144,7 +145,6 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
-			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
index 2759ecac9550..f8fd0e126832 100644
--- a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
@@ -132,6 +132,7 @@ multilib_src_configure() {
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 
@@ -144,7 +145,6 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
-			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index fbcd79834cfb..be5566afa3bf 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -132,6 +132,7 @@ multilib_src_configure() {
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 
@@ -144,7 +145,6 @@ multilib_src_configure() {
 			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
 			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
 			-DPython3_EXECUTABLE="${PYTHON}"
-			-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		)
 	fi
 	cmake_src_configure


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2021-12-29 20:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2021-12-29 20:04 UTC (permalink / raw
  To: gentoo-commits

commit:     383d1b41539919c06ab82150044a3c8a4c323b73
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 29 20:03:52 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Dec 29 20:04:12 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=383d1b41

sys-libs/libcxx: Check out cmake/ directory in 14.x

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index be5566afa3bf..b804e981e692 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -34,7 +34,7 @@ BDEPEND="
 
 DOCS=( CREDITS.TXT )
 
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-01-03 23:26 David Seifert
  0 siblings, 0 replies; 608+ messages in thread
From: David Seifert @ 2022-01-03 23:26 UTC (permalink / raw
  To: gentoo-commits

commit:     9f5ef43c8eff3b9fd0a920fa9d235af85a9bb158
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  3 23:26:28 2022 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Jan  3 23:26:28 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f5ef43c

sys-libs/libcxx: remove implicit elibc_* flags

Signed-off-by: David Seifert <soap <AT> gentoo.org>

 sys-libs/libcxx/libcxx-11.1.0.ebuild      | 4 ++--
 sys-libs/libcxx/libcxx-12.0.1.ebuild      | 4 ++--
 sys-libs/libcxx/libcxx-13.0.0.ebuild      | 4 ++--
 sys-libs/libcxx/libcxx-13.0.1.9999.ebuild | 4 ++--
 sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild  | 4 ++--
 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 4 ++--
 6 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild
index 16172647c295..a976ee77c535 100644
--- a/sys-libs/libcxx/libcxx-11.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.1.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
index 32d4aa2d1da6..32417c012865 100644
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
index 851870fd9e95..74bdf451ab48 100644
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
index be5566afa3bf..a9c71dc6e041 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
index f8fd0e126832..0e230df43a5d 100644
--- a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index b804e981e692..ff9cb4ac3d94 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=7
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-01-13 12:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-01-13 12:06 UTC (permalink / raw
  To: gentoo-commits

commit:     d2119245c51467a9ba6a98ff88516f1f0518dd8f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 13 08:27:45 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jan 13 12:06:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2119245

sys-libs/libcxx: Bump to 13.0.1_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild | 214 +++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3e1261de5ede..d57caf939b14 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,10 @@ DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11f
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea
+DIST llvm-gentoo-patchset-13.0.1-rc2.tar.xz 5192 BLAKE2B 4a129a3d0b7c1839d79c814ea57602f5e87aadb9050fc8e91868d2c3773ff7ae8e2137f785deeded6925a4368220767526c95790c9883f2031edc3ebae25b13c SHA512 2f384281d06f5378f7d1b2f036958c7db00d1c4d799406fd188fa8388f0cf18279dae36f2fb37bff26daa91419ab1bc1c2390be0f3af42359f1aef8de81b6ac8
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d
+DIST llvmorg-13.0.1-rc2.tar.gz 147304491 BLAKE2B 86b2c64e57e4aaab837229b25a95d5517ac077d22cf552d71ff6b996dbdbcd171ad51de7eb12d098b50a139beda4ace843727181a1c6978fc487215391e64a3a SHA512 0d890f3317504c8cef10e118b245e5a4c815cc19f07cbc511a66bde6c9b1f3d15c167942608a8987befe9115b24657d29f72305f9f2794385a7434b80167f40f

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild
new file mode 100644
index 000000000000..0e230df43a5d
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild
@@ -0,0 +1,214 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="+libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
+LLVM_PATCHSET=${PV/_/-}
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-01-21 15:37 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-01-21 15:37 UTC (permalink / raw
  To: gentoo-commits

commit:     0bf8e4e3ac1b84208233ae679628c4526efbf2f2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 21 12:15:37 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 21 15:37:32 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0bf8e4e3

sys-libs/libcxx: Remove 13.0.1-rc{1,2}

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   4 -
 sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild | 214 -------------------------------
 sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild | 214 -------------------------------
 3 files changed, 432 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 429078f407a1..45e9d7a057c0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,13 +1,9 @@
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
-DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea
-DIST llvm-gentoo-patchset-13.0.1-rc2.tar.xz 5192 BLAKE2B 4a129a3d0b7c1839d79c814ea57602f5e87aadb9050fc8e91868d2c3773ff7ae8e2137f785deeded6925a4368220767526c95790c9883f2031edc3ebae25b13c SHA512 2f384281d06f5378f7d1b2f036958c7db00d1c4d799406fd188fa8388f0cf18279dae36f2fb37bff26daa91419ab1bc1c2390be0f3af42359f1aef8de81b6ac8
 DIST llvm-gentoo-patchset-13.0.1-rc3.tar.xz 4808 BLAKE2B d8ed3ae424914437413e2e8c029880072e93d79ca79b842ad59451df46594c9b0d73ee5d49d3b65c4c7a40c86b2e0d43501ef106aea7c481f22425a5245a3411 SHA512 10430a720b120a340a681fa435a7f050741c75270607e3f5214bf829313d274c11f019f1ac072857dc5d7f868e6eb013932d1c94446e8cb2e151ac818a081914
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
-DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d
-DIST llvmorg-13.0.1-rc2.tar.gz 147304491 BLAKE2B 86b2c64e57e4aaab837229b25a95d5517ac077d22cf552d71ff6b996dbdbcd171ad51de7eb12d098b50a139beda4ace843727181a1c6978fc487215391e64a3a SHA512 0d890f3317504c8cef10e118b245e5a4c815cc19f07cbc511a66bde6c9b1f3d15c167942608a8987befe9115b24657d29f72305f9f2794385a7434b80167f40f
 DIST llvmorg-13.0.1-rc3.tar.gz 147302323 BLAKE2B 9ac2f97568062d7dd618295a68d6e14898fcd69e2bb66290b999ceb8c12132371f4e9b59d8ba2b252e5e5cb249045676b24fc50c117b2afae20abab98f426582 SHA512 88a04ad02af2d41ec21c7a62bad21ee0e627b7276a16795875afd062ed29ac7fb4aadec5b5e48785a6502c9fd797a4b67d648a21f193c9f7602112870b10a3d1

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
deleted file mode 100644
index 0e230df43a5d..000000000000
--- a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild
deleted file mode 100644
index 0e230df43a5d..000000000000
--- a/sys-libs/libcxx/libcxx-13.0.1_rc2.ebuild
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-02-02  7:20 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-02-02  7:20 UTC (permalink / raw
  To: gentoo-commits

commit:     6d677f6922e0ac2433cf3d0189004e8b9b1fb211
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  2 07:20:29 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Feb  2 07:20:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d677f69

sys-libs/libcxx: depend on sys-devel/gdb[python] for tests

Closes: https://bugs.gentoo.org/832524
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.9999.ebuild | 1 +
 sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild  | 1 +
 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 1 +
 3 files changed, 3 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
index a9c71dc6e041..74ba033476c1 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
@@ -29,6 +29,7 @@ BDEPEND="
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)"
 

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild
index 0e230df43a5d..212ed836bbba 100644
--- a/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild
@@ -29,6 +29,7 @@ BDEPEND="
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)"
 

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index ff9cb4ac3d94..20569c4eb465 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -29,6 +29,7 @@ BDEPEND="
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)"
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-02-02 21:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-02-02 21:16 UTC (permalink / raw
  To: gentoo-commits

commit:     ba60778470c54145531a1c6343283b8463c3a34a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  2 16:45:06 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb  2 21:16:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba607784

sys-libs/libcxx: Remove 13.0.1_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild | 215 -------------------------------
 2 files changed, 217 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2d1107159d7e..37ef36710d84 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,11 +1,9 @@
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
-DIST llvm-gentoo-patchset-13.0.1-rc3.tar.xz 4808 BLAKE2B d8ed3ae424914437413e2e8c029880072e93d79ca79b842ad59451df46594c9b0d73ee5d49d3b65c4c7a40c86b2e0d43501ef106aea7c481f22425a5245a3411 SHA512 10430a720b120a340a681fa435a7f050741c75270607e3f5214bf829313d274c11f019f1ac072857dc5d7f868e6eb013932d1c94446e8cb2e151ac818a081914
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
-DIST llvmorg-13.0.1-rc3.tar.gz 147302323 BLAKE2B 9ac2f97568062d7dd618295a68d6e14898fcd69e2bb66290b999ceb8c12132371f4e9b59d8ba2b252e5e5cb249045676b24fc50c117b2afae20abab98f426582 SHA512 88a04ad02af2d41ec21c7a62bad21ee0e627b7276a16795875afd062ed29ac7fb4aadec5b5e48785a6502c9fd797a4b67d648a21f193c9f7602112870b10a3d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild
deleted file mode 100644
index 212ed836bbba..000000000000
--- a/sys-libs/libcxx/libcxx-13.0.1_rc3.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-02-03 15:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-02-03 15:45 UTC (permalink / raw
  To: gentoo-commits

commit:     f111550a25d9514aa936b674c2255058cd829a80
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  3 15:39:15 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb  3 15:44:03 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f111550a

sys-libs/libcxx: Remove 13.0.1.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.9999.ebuild | 215 ------------------------------
 1 file changed, 215 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
deleted file mode 100644
index 74ba033476c1..000000000000
--- a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-02-06 15:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-02-06 15:35 UTC (permalink / raw
  To: gentoo-commits

commit:     f7f9f37c7ffcad56e2854dbd0f6b76553baacc0f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  6 15:16:50 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Feb  6 15:34:28 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7f9f37c

sys-libs/libcxx: Add 15.x live ebuild

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 215 ++++++++++++++++++++++++++++++
 1 file changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
new file mode 100644
index 000000000000..20569c4eb465
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="+libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-02-09 13:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-02-09 13:02 UTC (permalink / raw
  To: gentoo-commits

commit:     feb6a419822af6398802f1bc0cd955e450ec49d2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  9 09:48:54 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb  9 13:02:07 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=feb6a419

sys-libs/libcxx: Bump to 14.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild | 215 +++++++++++++++++++++++++++++++
 2 files changed, 216 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 37ef36710d84..479b5d61de60 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,3 +7,4 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45c
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
+DIST llvmorg-14.0.0-rc1.tar.gz 158019694 BLAKE2B c0494bfa5cc92be73d2a2736ce04a1ce11003aba477393639a6fc1b4114bb604ddd1929f288f831997693d2d3d7feb9eb7aa4bc1a2eb60d4b01777314ab90973 SHA512 62aac6a033ef0e321aef5060dcc61eb721b115a9cc1b7570497f72183d9e70a66b5910e90df14428bf56d33a44d4582c919e19f4477c0cfb3209e249b53fe534

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
new file mode 100644
index 000000000000..20569c4eb465
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="+libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+DOCS=( CREDITS.TXT )
+
+LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	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 dev-lang/llvm; then
+		llvm_pkg_setup
+	fi
+	use test && 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() {
+	# 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=libcxxabi
+		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-02-11 12:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-02-11 12:16 UTC (permalink / raw
  To: gentoo-commits

commit:     c213f608104d9dbadd5a1c847c88f377fdcda92b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 11 11:42:51 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb 11 12:16:03 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c213f608

sys-libs/libcxx: Update 15.x for runtimes build

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index 20569c4eb465..51f3ab4b2ac7 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -26,6 +26,7 @@ RDEPEND="
 DEPEND="${RDEPEND}
 	>=sys-devel/llvm-6"
 BDEPEND="
+	${PYTHON_DEPS}
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
@@ -33,13 +34,12 @@ BDEPEND="
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)"
 
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 
 python_check_deps() {
+	use test || return 0
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
@@ -50,7 +50,7 @@ pkg_setup() {
 	if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
 		llvm_pkg_setup
 	fi
-	use test && python-any-r1_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"
@@ -121,7 +121,11 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
-		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
+		-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}
@@ -130,6 +134,7 @@ multilib_src_configure() {
 		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-02  9:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-02  9:09 UTC (permalink / raw
  To: gentoo-commits

commit:     c1d17a9533b4412eb59f4e5254fa501be1a17e40
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  2 09:02:30 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  2 09:08:57 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1d17a95

sys-libs/libcxx: Bump to 14.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                                               | 2 ++
 sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild                               | 2 +-
 sys-libs/libcxx/{libcxx-14.0.0_rc1.ebuild => libcxx-14.0.0_rc2.ebuild} | 0
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 479b5d61de60..e406758f7bb0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,8 +3,10 @@ DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841a
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
+DIST llvm-gentoo-patchset-9999-r3.tar.xz 4076 BLAKE2B 30bdf740606a1718ae45d850803385d425b656fbbe0250f587cad54f55272e3617d5ee0d04f534a58f87408b0a2dea322ebf1bb8cd653a2beba21d0bc5778c62 SHA512 2c7080ffd09d7dcf4c72a97044a5c63ab895250721d60270bc51c2095aef5f9039781892b4c0d14e942611686153f874a1f52a1c854bb8ca093383c08bdc005a
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.0-rc1.tar.gz 158019694 BLAKE2B c0494bfa5cc92be73d2a2736ce04a1ce11003aba477393639a6fc1b4114bb604ddd1929f288f831997693d2d3d7feb9eb7aa4bc1a2eb60d4b01777314ab90973 SHA512 62aac6a033ef0e321aef5060dcc61eb721b115a9cc1b7570497f72183d9e70a66b5910e90df14428bf56d33a44d4582c919e19f4477c0cfb3209e249b53fe534
+DIST llvmorg-14.0.0-rc2.tar.gz 158069989 BLAKE2B 06dcf5d82cd100bd792eadb3816cb297a11dc64dc8b699ccb2eac8ef0da4f10a24ba1984376427b638def6c8c8ae5bc9562e1cc30281fc55f044aa2a9657fc81 SHA512 c77d8c6db2ee6536f7e980465d5a3eb34403c6529e2012a4778ce76a559a6d639cf4c5ec84f965287d4b0739a73dc3e65d7deb27815d74c35e823839e579d2a3

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
index 20569c4eb465..8a038a735242 100644
--- a/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
@@ -36,7 +36,7 @@ BDEPEND="
 DOCS=( CREDITS.TXT )
 
 LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
+LLVM_PATCHSET=9999-r3
 llvm.org_set_globals
 
 python_check_deps() {

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild
similarity index 100%
copy from sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
copy to sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-06 16:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-06 16:03 UTC (permalink / raw
  To: gentoo-commits

commit:     c068d6c8b2f469deec941c8b919c6a47c85747e6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  6 15:23:12 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar  6 16:03:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c068d6c8

sys-libs/libcxx: Switch 14.x to runtimes build

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 17 +++++++++++------
 sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild  | 17 +++++++++++------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
index 20569c4eb465..0562667b5a4b 100644
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
@@ -26,6 +26,7 @@ RDEPEND="
 DEPEND="${RDEPEND}
 	>=sys-devel/llvm-6"
 BDEPEND="
+	${PYTHON_DEPS}
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
@@ -33,13 +34,12 @@ BDEPEND="
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)"
 
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 
 python_check_deps() {
+	use test || return 0
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
@@ -50,7 +50,7 @@ pkg_setup() {
 	if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
 		llvm_pkg_setup
 	fi
-	use test && python-any-r1_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"
@@ -70,7 +70,7 @@ src_configure() {
 	# alter the CHOST
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
-		cxxabi=libcxxabi
+		cxxabi=system-libcxxabi
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
 	else
 		local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
@@ -121,7 +121,11 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
-		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
+		-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}
@@ -130,6 +134,7 @@ multilib_src_configure() {
 		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild
index 20569c4eb465..0562667b5a4b 100644
--- a/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild
@@ -26,6 +26,7 @@ RDEPEND="
 DEPEND="${RDEPEND}
 	>=sys-devel/llvm-6"
 BDEPEND="
+	${PYTHON_DEPS}
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
@@ -33,13 +34,12 @@ BDEPEND="
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)"
 
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
 LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 
 python_check_deps() {
+	use test || return 0
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
@@ -50,7 +50,7 @@ pkg_setup() {
 	if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
 		llvm_pkg_setup
 	fi
-	use test && python-any-r1_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"
@@ -70,7 +70,7 @@ src_configure() {
 	# alter the CHOST
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
-		cxxabi=libcxxabi
+		cxxabi=system-libcxxabi
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
 	else
 		local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
@@ -121,7 +121,11 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
-		-DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
+		-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}
@@ -130,6 +134,7 @@ multilib_src_configure() {
 		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-06 16:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-06 16:03 UTC (permalink / raw
  To: gentoo-commits

commit:     7be6c7d13186608f421348b9f57d1787841b7735
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  6 15:22:15 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar  6 16:03:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7be6c7d1

sys-libs/libcxx: Use the system-cxxabi build option

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index 51f3ab4b2ac7..0562667b5a4b 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -70,7 +70,7 @@ src_configure() {
 	# alter the CHOST
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
-		cxxabi=libcxxabi
+		cxxabi=system-libcxxabi
 		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
 	else
 		local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-06 16:07 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-06 16:07 UTC (permalink / raw
  To: gentoo-commits

commit:     aa0238303839078f6bcd619cca8add55706c811c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar  6 16:05:59 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar  6 16:05:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa023830

sys-libs/libcxx: Remove 14.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 -
 sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild | 215 -------------------------------
 2 files changed, 217 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e406758f7bb0..98e590e3cd93 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,10 +3,8 @@ DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841a
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
-DIST llvm-gentoo-patchset-9999-r3.tar.xz 4076 BLAKE2B 30bdf740606a1718ae45d850803385d425b656fbbe0250f587cad54f55272e3617d5ee0d04f534a58f87408b0a2dea322ebf1bb8cd653a2beba21d0bc5778c62 SHA512 2c7080ffd09d7dcf4c72a97044a5c63ab895250721d60270bc51c2095aef5f9039781892b4c0d14e942611686153f874a1f52a1c854bb8ca093383c08bdc005a
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
-DIST llvmorg-14.0.0-rc1.tar.gz 158019694 BLAKE2B c0494bfa5cc92be73d2a2736ce04a1ce11003aba477393639a6fc1b4114bb604ddd1929f288f831997693d2d3d7feb9eb7aa4bc1a2eb60d4b01777314ab90973 SHA512 62aac6a033ef0e321aef5060dcc61eb721b115a9cc1b7570497f72183d9e70a66b5910e90df14428bf56d33a44d4582c919e19f4477c0cfb3209e249b53fe534
 DIST llvmorg-14.0.0-rc2.tar.gz 158069989 BLAKE2B 06dcf5d82cd100bd792eadb3816cb297a11dc64dc8b699ccb2eac8ef0da4f10a24ba1984376427b638def6c8c8ae5bc9562e1cc30281fc55f044aa2a9657fc81 SHA512 c77d8c6db2ee6536f7e980465d5a3eb34403c6529e2012a4778ce76a559a6d639cf4c5ec84f965287d4b0739a73dc3e65d7deb27815d74c35e823839e579d2a3

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
deleted file mode 100644
index 8a038a735242..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.0_rc1.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-r3
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-07  2:00 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-03-07  2:00 UTC (permalink / raw
  To: gentoo-commits

commit:     a34d301c06afa29fa570b47eadeedd0f20e9a95c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Mar  7 01:59:06 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar  7 01:59:06 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a34d301c

sys-libs/libcxx: Stabilize 13.0.1 amd64, #833209

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
index 3b30c2991852..81576b979b1b 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-10 23:53 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-03-10 23:53 UTC (permalink / raw
  To: gentoo-commits

commit:     2d688b67b2f67b489edf5a436cb3e057ff300c88
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 10 23:52:43 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Mar 10 23:52:43 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d688b67

sys-libs/libcxx: Stabilize 13.0.1 arm, #833209

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
index 5c45b701b56f..15d5fa2f2dfc 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-12  9:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-12  9:20 UTC (permalink / raw
  To: gentoo-commits

commit:     5a61d135fecc1d6d9a6755baf7939665baf94ad6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 12 09:18:07 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 12 09:18:07 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a61d135

sys-libs/libcxx: Bump to 14.0.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 +
 sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild | 220 +++++++++++++++++++++++++++++++
 2 files changed, 221 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 98e590e3cd93..315a3272d8b8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,3 +8,4 @@ DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f6
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.0-rc2.tar.gz 158069989 BLAKE2B 06dcf5d82cd100bd792eadb3816cb297a11dc64dc8b699ccb2eac8ef0da4f10a24ba1984376427b638def6c8c8ae5bc9562e1cc30281fc55f044aa2a9657fc81 SHA512 c77d8c6db2ee6536f7e980465d5a3eb34403c6529e2012a4778ce76a559a6d639cf4c5ec84f965287d4b0739a73dc3e65d7deb27815d74c35e823839e579d2a3
+DIST llvmorg-14.0.0-rc4.tar.gz 158082013 BLAKE2B 0e717898d8f1ed160e525a68aba56a84b7d31856ea72fdb8fa02e863c5a2074245a38d4a4aa7d178beab1ea64aa92d0ba9dcad4373ebb03868070bf718112107 SHA512 a942848aa5042b97bab6d0d5bcee11ea2f85f1244d7eaadb8f7000bf104b2160e6034c04e3755501dd178bc99c26669cf4aca40edb4bba598fdde6bcf3f40ddc

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild
new file mode 100644
index 000000000000..0562667b5a4b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="+libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	${PYTHON_DEPS}
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-14 15:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-14 15:22 UTC (permalink / raw
  To: gentoo-commits

commit:     ec6e04a7d7ad1a113f669209df44228cdf808875
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 14 15:21:27 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 14 15:21:27 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec6e04a7

sys-libs/libcxx: Remove 14.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 -
 sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild | 220 -------------------------------
 2 files changed, 221 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 315a3272d8b8..caff57efaed2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,5 +7,4 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45c
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
-DIST llvmorg-14.0.0-rc2.tar.gz 158069989 BLAKE2B 06dcf5d82cd100bd792eadb3816cb297a11dc64dc8b699ccb2eac8ef0da4f10a24ba1984376427b638def6c8c8ae5bc9562e1cc30281fc55f044aa2a9657fc81 SHA512 c77d8c6db2ee6536f7e980465d5a3eb34403c6529e2012a4778ce76a559a6d639cf4c5ec84f965287d4b0739a73dc3e65d7deb27815d74c35e823839e579d2a3
 DIST llvmorg-14.0.0-rc4.tar.gz 158082013 BLAKE2B 0e717898d8f1ed160e525a68aba56a84b7d31856ea72fdb8fa02e863c5a2074245a38d4a4aa7d178beab1ea64aa92d0ba9dcad4373ebb03868070bf718112107 SHA512 a942848aa5042b97bab6d0d5bcee11ea2f85f1244d7eaadb8f7000bf104b2160e6034c04e3755501dd178bc99c26669cf4aca40edb4bba598fdde6bcf3f40ddc

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild
deleted file mode 100644
index 0562667b5a4b..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.0_rc2.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-23 13:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-23 13:00 UTC (permalink / raw
  To: gentoo-commits

commit:     1f50b2e157bca96f49b4967eb089eaa8f4941aab
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 09:11:17 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 12:59:49 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f50b2e1

sys-libs/libcxx: Bump to 14.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-14.0.0.ebuild | 220 +++++++++++++++++++++++++++++++++++
 2 files changed, 222 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index caff57efaed2..5718566fc8c3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,9 +2,11 @@ DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11f
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
+DIST llvm-gentoo-patchset-14.0.0.tar.xz 4076 BLAKE2B dc114e53fb878ca74489c420506b9dd9c417e2b97dff4d9441d78a0a256ca1e7243ea2ce38b8665d37b0f24436f9ea5771cd05d9b13887e7370a19ec5e05ba20 SHA512 7f7d08fc762d634692fb251a51c0d73a4a9098907f25451b9ca9453315b603331b65a454b2d631cfecbb3fbc11ab3a36f644c0d7b03e1bb8e96ce4aa08d60615
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.0-rc4.tar.gz 158082013 BLAKE2B 0e717898d8f1ed160e525a68aba56a84b7d31856ea72fdb8fa02e863c5a2074245a38d4a4aa7d178beab1ea64aa92d0ba9dcad4373ebb03868070bf718112107 SHA512 a942848aa5042b97bab6d0d5bcee11ea2f85f1244d7eaadb8f7000bf104b2160e6034c04e3755501dd178bc99c26669cf4aca40edb4bba598fdde6bcf3f40ddc
+DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999

diff --git a/sys-libs/libcxx/libcxx-14.0.0.ebuild b/sys-libs/libcxx/libcxx-14.0.0.ebuild
new file mode 100644
index 000000000000..ddd39dc817b6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.0.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="+libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	${PYTHON_DEPS}
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV/_/-}
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-03-23 13:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-03-23 13:01 UTC (permalink / raw
  To: gentoo-commits

commit:     60d5a5f96781206094e22efcfc59ea0218ea75d7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 13:01:09 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 13:01:09 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60d5a5f9

sys-libs/libcxx: Remove 14.0.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   1 -
 sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild | 220 -------------------------------
 2 files changed, 221 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5718566fc8c3..89128dec6acb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,4 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45c
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
-DIST llvmorg-14.0.0-rc4.tar.gz 158082013 BLAKE2B 0e717898d8f1ed160e525a68aba56a84b7d31856ea72fdb8fa02e863c5a2074245a38d4a4aa7d178beab1ea64aa92d0ba9dcad4373ebb03868070bf718112107 SHA512 a942848aa5042b97bab6d0d5bcee11ea2f85f1244d7eaadb8f7000bf104b2160e6034c04e3755501dd178bc99c26669cf4aca40edb4bba598fdde6bcf3f40ddc
 DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999

diff --git a/sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild
deleted file mode 100644
index 0562667b5a4b..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.0_rc4.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-13 21:43 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-04-13 21:43 UTC (permalink / raw
  To: gentoo-commits

commit:     4bfc2ab41f6fe60ff477b259295e245601ade71b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 20:20:48 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 21:43:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4bfc2ab4

sys-libs/libcxx: Bump to 14.0.1

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   1 +
 sys-libs/libcxx/libcxx-14.0.1.ebuild | 220 +++++++++++++++++++++++++++++++++++
 2 files changed, 221 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 89128dec6acb..762303494cbf 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f6
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999
+DIST llvmorg-14.0.1.tar.gz 41058304 BLAKE2B f5865314476e47885f60adb2a87b223f36181a3e92a878c9e2596e15c3e0344e9cecc492879342492abcb84306ecec43f89deee0eb989a90de33e1c6b58f4eb6 SHA512 39e9510e34e5ccd07808f3d981e337b62a1955bb7ac0067214774e9e6274076c8f3a88134648b6964c9aeec0e2390b4db1271c1c437bb5f93fbddc80c146a0fb

diff --git a/sys-libs/libcxx/libcxx-14.0.1.ebuild b/sys-libs/libcxx/libcxx-14.0.1.ebuild
new file mode 100644
index 000000000000..0562667b5a4b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.1.ebuild
@@ -0,0 +1,220 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS=""
+IUSE="+libcxxabi +libunwind static-libs test"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="${RDEPEND}
+	>=sys-devel/llvm-6"
+BDEPEND="
+	${PYTHON_DEPS}
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-13 21:55 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-04-13 21:55 UTC (permalink / raw
  To: gentoo-commits

commit:     be73097f82e12f0e2406b7bf3a4b116e5be74e7c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 21:54:54 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 21:55:21 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=be73097f

sys-libs/libcxx: fix manifest for 14.0.1

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/Manifest | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 762303494cbf..ba9df5c4857f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,4 @@ DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f6
 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999
-DIST llvmorg-14.0.1.tar.gz 41058304 BLAKE2B f5865314476e47885f60adb2a87b223f36181a3e92a878c9e2596e15c3e0344e9cecc492879342492abcb84306ecec43f89deee0eb989a90de33e1c6b58f4eb6 SHA512 39e9510e34e5ccd07808f3d981e337b62a1955bb7ac0067214774e9e6274076c8f3a88134648b6964c9aeec0e2390b4db1271c1c437bb5f93fbddc80c146a0fb
+DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-13 23:10 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-04-13 23:10 UTC (permalink / raw
  To: gentoo-commits

commit:     bf51a14bc4116ee8ea92a73a951bd5e1090e732c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 23:09:55 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 23:09:55 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf51a14b

sys-libs/libcxx: Remove 14.0.0.9999

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 220 ------------------------------
 1 file changed, 220 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
deleted file mode 100644
index 0562667b5a4b..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-15  0:03 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-04-15  0:03 UTC (permalink / raw
  To: gentoo-commits

commit:     b6722d548647c69d5fae8db3fcc720f98300d2d9
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 14 23:59:39 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Apr 14 23:59:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6722d54

sys-libs/libcxx: keyword 14.0.1

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.1.ebuild b/sys-libs/libcxx/libcxx-14.0.1.ebuild
index 0562667b5a4b..60e533aec52c 100644
--- a/sys-libs/libcxx/libcxx-14.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-21 16:36 Jakov Smolić
  0 siblings, 0 replies; 608+ messages in thread
From: Jakov Smolić @ 2022-04-21 16:36 UTC (permalink / raw
  To: gentoo-commits

commit:     4821206a1d142a434344c0f7bfb9545817937c15
Author:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 21 16:36:03 2022 +0000
Commit:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
CommitDate: Thu Apr 21 16:36:03 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4821206a

sys-libs/libcxx: Stabilize 13.0.1 x86, #833209

Signed-off-by: Jakov Smolić <jsmolic <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
index 15d5fa2f2dfc..9720629f1aff 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-21 19:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-04-21 19:31 UTC (permalink / raw
  To: gentoo-commits

commit:     7a27414b75b1297200335d8f401f9144f0fa3b81
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 21 19:29:02 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr 21 19:31:08 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a27414b

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   4 -
 sys-libs/libcxx/libcxx-13.0.0.ebuild | 214 ----------------------------------
 sys-libs/libcxx/libcxx-14.0.0.ebuild | 220 -----------------------------------
 3 files changed, 438 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ba9df5c4857f..2cd3abd58751 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,12 +1,8 @@
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
-DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
-DIST llvm-gentoo-patchset-14.0.0.tar.xz 4076 BLAKE2B dc114e53fb878ca74489c420506b9dd9c417e2b97dff4d9441d78a0a256ca1e7243ea2ce38b8665d37b0f24436f9ea5771cd05d9b13887e7370a19ec5e05ba20 SHA512 7f7d08fc762d634692fb251a51c0d73a4a9098907f25451b9ca9453315b603331b65a454b2d631cfecbb3fbc11ab3a36f644c0d7b03e1bb8e96ce4aa08d60615
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
-DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
-DIST llvmorg-14.0.0.tar.gz 158057350 BLAKE2B 7052684c620a5eaf52beeee4591adf58cfec9e64a5ee0b24f3d5849fd4df5b006e2906a839cb806ac69c33fab6013c58589b1d74e4fb8558758edcb7d5065064 SHA512 eb5acf96b5e2c59bd07579f7ebe73018b0dd6e2f2d9a5a3c7986320e88febd837d1084b9e5313a2264310342193044629d228337cc76dd2b8527dc0a8bdda999
 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2

diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild
deleted file mode 100644
index 74bdf451ab48..000000000000
--- a/sys-libs/libcxx/libcxx-13.0.0.ebuild
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-14.0.0.ebuild b/sys-libs/libcxx/libcxx-14.0.0.ebuild
deleted file mode 100644
index ddd39dc817b6..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.0.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-21 19:37 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-04-21 19:37 UTC (permalink / raw
  To: gentoo-commits

commit:     41e97aeff98fc7b271bac95efc517ae3d6fd674f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 21 19:33:36 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Apr 21 19:36:57 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41e97aef

sys-libs/libcxx: fix patchset version

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/Manifest             | 1 +
 sys-libs/libcxx/libcxx-14.0.1.ebuild | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2cd3abd58751..a042543e6dd6 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,7 @@
 DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
+DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1

diff --git a/sys-libs/libcxx/libcxx-14.0.1.ebuild b/sys-libs/libcxx/libcxx-14.0.1.ebuild
index 60e533aec52c..ddd39dc817b6 100644
--- a/sys-libs/libcxx/libcxx-14.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.1.ebuild
@@ -35,7 +35,7 @@ BDEPEND="
 	)"
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
+LLVM_PATCHSET=${PV/_/-}
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-24 14:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-04-24 14:41 UTC (permalink / raw
  To: gentoo-commits

commit:     fc929befe2e7bc3081c3d2c75fc6b1d9217e3b17
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 24 13:47:06 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Apr 24 14:40:49 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc929bef

sys-libs/libcxx: Remove LLVM 11

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-11.1.0.ebuild | 211 -----------------------------------
 2 files changed, 213 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a042543e6dd6..ff66dc775cb3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,9 +1,7 @@
-DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
-DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2

diff --git a/sys-libs/libcxx/libcxx-11.1.0.ebuild b/sys-libs/libcxx/libcxx-11.1.0.ebuild
deleted file mode 100644
index a976ee77c535..000000000000
--- a/sys-libs/libcxx/libcxx-11.1.0.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{7..9} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=11.1.0-1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-27 12:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-04-27 12:27 UTC (permalink / raw
  To: gentoo-commits

commit:     b78451bfa3081d1cb129bd99668ff51c880d5895
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 27 08:35:15 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 27 12:27:02 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b78451bf

sys-libs/libcxx: Modernize

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index 0562667b5a4b..dcdce79b90b2 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -1,7 +1,7 @@
 # Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=7
+EAPI=8
 
 CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{8..10} )
@@ -14,25 +14,33 @@ LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
 IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
 RESTRICT="!test? ( test )"
+REQUIRED_USE="libunwind? ( libcxxabi )"
 
 RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
+	libcxxabi? (
+		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
+	)
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
 # llvm-6 for new lit options
 # clang-3.9.0 installs necessary target symlinks unconditionally
 # which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
 BDEPEND="
-	${PYTHON_DEPS}
+	!test? (
+		${PYTHON_DEPS}
+	)
 	test? (
 		>=dev-util/cmake-3.16
 		>=sys-devel/clang-3.9.0
 		sys-devel/gdb[python]
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
+	)
+"
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
 LLVM_PATCHSET=9999-1


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-04-30  7:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-04-30  7:35 UTC (permalink / raw
  To: gentoo-commits

commit:     7c21e338c43b7625c1f659ba598c4657d1cc6911
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 27 08:47:03 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 30 07:34:49 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c21e338

sys-libs/libcxx: Bump to 14.0.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-14.0.3.ebuild | 228 +++++++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ff66dc775cb3..716655034895 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,9 @@
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32
+DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2
+DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646

diff --git a/sys-libs/libcxx/libcxx-14.0.3.ebuild b/sys-libs/libcxx/libcxx-14.0.3.ebuild
new file mode 100644
index 000000000000..4d6be5bcc7f2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.3.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="+libcxxabi +libunwind static-libs test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+
+RDEPEND="
+	libcxxabi? (
+		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
+	)
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV}
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-05-29 19:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-05-29 19:58 UTC (permalink / raw
  To: gentoo-commits

commit:     8e009c7469d768bfbbd3b26f058280188e114ec4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 29 17:59:56 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 29 19:58:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8e009c74

sys-libs/libcxx: Bump to 14.0.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-14.0.4.ebuild | 228 +++++++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 716655034895..fef0d8fd7a3a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,10 @@ DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841a
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32
 DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6
+DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2
 DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646
+DIST llvmorg-14.0.4.tar.gz 158088617 BLAKE2B 7fb894548dce72593a8639b4d0220d2499577f80d38b97600749c91a498c69dfbbe818cee35e4a76370795e55da7037543ea341ad7567a6f548893c67dce9e64 SHA512 e14e6c3a1915a96e9ddc609f16ca3a398ca6f7fd0a691dadaa24490078a661340e845cb2d18f3679de4f47300bb822c33ae69548af6a0370d55737831a28b959

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
new file mode 100644
index 000000000000..4d6be5bcc7f2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.4.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="+libcxxabi +libunwind static-libs test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+
+RDEPEND="
+	libcxxabi? (
+		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
+	)
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV}
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-06-04 19:53 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-06-04 19:53 UTC (permalink / raw
  To: gentoo-commits

commit:     64d6f53bc9292e8496a6d31a24b81055065deb8e
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  4 19:53:14 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sat Jun  4 19:53:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64d6f53b

sys-libs/libcxx: amd64 stable wrt bug #849464

Package-Manager: Portage-3.0.30, Repoman-3.0.3
RepoMan-Options: --include-arches="amd64"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.4.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
index 4d6be5bcc7f2..4b9c9c94e459 100644
--- a/sys-libs/libcxx/libcxx-14.0.4.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.4.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-06-04 19:55 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-06-04 19:55 UTC (permalink / raw
  To: gentoo-commits

commit:     3b3aded46fbcbd751c9459d64a71d159b815e4d3
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  4 19:54:47 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sat Jun  4 19:54:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b3aded4

sys-libs/libcxx: arm64 stable wrt bug #849464

Package-Manager: Portage-3.0.30, Repoman-3.0.3
RepoMan-Options: --include-arches="arm64"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.4.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
index 4b9c9c94e459..e6b49a3b430a 100644
--- a/sys-libs/libcxx/libcxx-14.0.4.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.4.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-06-04 19:58 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-06-04 19:58 UTC (permalink / raw
  To: gentoo-commits

commit:     f493f2a8856ef8e0f310b06ab5f237e2134eeedb
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  4 19:57:34 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sat Jun  4 19:58:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f493f2a8

sys-libs/libcxx: x86 stable wrt bug #849464

Package-Manager: Portage-3.0.30, Repoman-3.0.3
RepoMan-Options: --include-arches="x86"
Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.4.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
index e6b49a3b430a..b9c4cd77b5b1 100644
--- a/sys-libs/libcxx/libcxx-14.0.4.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.4.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-06-11 11:07 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-06-11 11:07 UTC (permalink / raw
  To: gentoo-commits

commit:     28a5ef9602bf900d1f5a88be8b3bd56e91bdf4f4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 11 07:26:33 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 11 11:07:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=28a5ef96

sys-libs/libcxx: Bump to 14.0.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   3 +
 sys-libs/libcxx/libcxx-14.0.5.ebuild | 228 +++++++++++++++++++++++++++++++++++
 2 files changed, 231 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index fef0d8fd7a3a..6281aaebc7d4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,7 +3,10 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574
 DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32
 DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6
 DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
+DIST llvm-gentoo-patchset-14.0.5.tar.xz 4072 BLAKE2B c35072f70831d5e3c9f7236f8473b098e6b8da4f27ce6a382ff4d3cd235837b25b9a1bc1e406ce0d3feb05e4d1e1c8bf141ff8f218568d5a5339fd1092f86b62 SHA512 646e0515a6cf1aae86f05db4797d7af6e3c9b8a6070f41cbd36535944029e0e5888128e33d8c44af22b5bb9ccba392b9dfeabc7708e5eab11858edefced6b68d
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
+DIST llvm-project-14.0.5.src.tar.xz 105617748 BLAKE2B a68a6eb58302702f560d1204eb97d34b695eb5df417ccefb50117dbd641ba3c3dda9e64c04506e646dd40c1151eb60b12843e206996ef74b35b2841b8dabafda SHA512 db5a7ea1149988c2aab4ed634f14e00bb9a8042089350b811f875e295ced7b5add80a11b91cad80ba0ba9801261502644a720021506483c14dfb1bc24a7f54d5
+DIST llvm-project-14.0.5.src.tar.xz.sig 566 BLAKE2B ecf66df5d0acb382c9d441aee053404254fa4087d57130b04bb496af9cbb71c59e82f0938f44953d7fd777524781d13d1327b6c64065cf45b177bc3ea0e5c3f2 SHA512 a785e38f11863a46de8766ff4495a73173479cdbd95dc539804b0381a7a834a409713dbaf441272a9cc2963a3c7015c95dc6f0dcfa745e8d6047b1ad5feacff7
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2

diff --git a/sys-libs/libcxx/libcxx-14.0.5.ebuild b/sys-libs/libcxx/libcxx-14.0.5.ebuild
new file mode 100644
index 000000000000..4d6be5bcc7f2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.5.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="+libcxxabi +libunwind static-libs test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+
+RDEPEND="
+	libcxxabi? (
+		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
+	)
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV}
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-06-25 13:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-06-25 13:08 UTC (permalink / raw
  To: gentoo-commits

commit:     479d0faa2e053c08126c400975061ec1a1c190ae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 25 11:19:25 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 25 13:07:31 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=479d0faa

sys-libs/libcxx: Bump to 14.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   3 +
 sys-libs/libcxx/libcxx-14.0.6.ebuild | 228 +++++++++++++++++++++++++++++++++++
 2 files changed, 231 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6281aaebc7d4..9688cf1bc0bb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,9 +4,12 @@ DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc
 DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6
 DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
 DIST llvm-gentoo-patchset-14.0.5.tar.xz 4072 BLAKE2B c35072f70831d5e3c9f7236f8473b098e6b8da4f27ce6a382ff4d3cd235837b25b9a1bc1e406ce0d3feb05e4d1e1c8bf141ff8f218568d5a5339fd1092f86b62 SHA512 646e0515a6cf1aae86f05db4797d7af6e3c9b8a6070f41cbd36535944029e0e5888128e33d8c44af22b5bb9ccba392b9dfeabc7708e5eab11858edefced6b68d
+DIST llvm-gentoo-patchset-14.0.6.tar.xz 4544 BLAKE2B b613582fa048837303168a2d62835688128621236022ca6c232293cb2e4549174ef256e7dcd8303bfef6d5456d0459ddb2cbda4a4d323b82901da4c16f15dcc4 SHA512 fb89a3186c5bffdc6245ed103d79fe6802a86986bd43891b7e128955bd546dffcb5b4083ac9e7966f67ce8dd82322756a11428ab4c62d21f012d614062adab35
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.5.src.tar.xz 105617748 BLAKE2B a68a6eb58302702f560d1204eb97d34b695eb5df417ccefb50117dbd641ba3c3dda9e64c04506e646dd40c1151eb60b12843e206996ef74b35b2841b8dabafda SHA512 db5a7ea1149988c2aab4ed634f14e00bb9a8042089350b811f875e295ced7b5add80a11b91cad80ba0ba9801261502644a720021506483c14dfb1bc24a7f54d5
 DIST llvm-project-14.0.5.src.tar.xz.sig 566 BLAKE2B ecf66df5d0acb382c9d441aee053404254fa4087d57130b04bb496af9cbb71c59e82f0938f44953d7fd777524781d13d1327b6c64065cf45b177bc3ea0e5c3f2 SHA512 a785e38f11863a46de8766ff4495a73173479cdbd95dc539804b0381a7a834a409713dbaf441272a9cc2963a3c7015c95dc6f0dcfa745e8d6047b1ad5feacff7
+DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
+DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
new file mode 100644
index 000000000000..4d6be5bcc7f2
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake-multilib 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="+libcxxabi +libunwind static-libs test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="libunwind? ( libcxxabi )"
+
+RDEPEND="
+	libcxxabi? (
+		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
+	)
+	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		>=sys-devel/clang-3.9.0
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV}
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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/libcxxabi"
+	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() {
+	# we want -lgcc_s for unwinder, and for compiler runtime when using
+	# gcc, clang with gcc runtime (or any unknown compiler)
+	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
+	if use libunwind; then
+		# work-around missing -lunwind upstream
+		extra_libs+=( -lunwind )
+		# if we're using libunwind and clang with compiler-rt, we want
+		# to link to compiler-rt instead of -lgcc_s
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
+		fi
+	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
+		# clang-based darwin prefix disables libunwind useflag during
+		# bootstrap, because libunwind is not in the prefix yet.
+		# override the default, though, because clang based libcxx
+		# should never use gcc_s on Darwin.
+		want_gcc_s=OFF
+		# compiler_rt is not available in EPREFIX during bootstrap,
+		# so we cannot link to it yet anyway, so keep the defaults
+		# of want_compiler_rt=OFF and extra_libs=()
+	fi
+
+	# 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=(
+		-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_HAS_GCC_S_LIB=${want_gcc_s}
+		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
+		-DLIBCXX_INCLUDE_TESTS=$(usex test)
+		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
+		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
+		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
+	)
+
+	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}"
+			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DPython3_EXECUTABLE="${PYTHON}"
+		)
+	fi
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	local -x LIT_PRESERVES_TMP=1
+	cmake_build check-cxx
+}
+
+# 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() {
+	local libdir=$(get_libdir)
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
+
+	# Move it first.
+	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
+}
+
+gen_shared_ldscript() {
+	local libdir=$(get_libdir)
+	# libsupc++ doesn't have a shared version
+	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
+
+	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
+	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
+
+	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
+}
+
+multilib_src_install() {
+	cmake_src_install
+	if [[ ${CHOST} != *-darwin* ]] ; then
+		gen_shared_ldscript
+		use static-libs && gen_static_ldscript
+	fi
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-18 16:05 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-07-18 16:05 UTC (permalink / raw
  To: gentoo-commits

commit:     6fcb8ed29de3483730c708dca2bfc17bd0a6177e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 18 16:04:58 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jul 18 16:04:58 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6fcb8ed2

sys-libs/libcxx: Stabilize 14.0.4 arm, #849464

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.4.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
index b9c4cd77b5b1..31c29cb92bbb 100644
--- a/sys-libs/libcxx/libcxx-14.0.4.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.4.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-19  6:33 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-19  6:33 UTC (permalink / raw
  To: gentoo-commits

commit:     cdbd481e72f1e686837d8ef1d3442ec79823c181
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 19 05:51:24 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 19 06:33:11 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdbd481e

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   7 --
 sys-libs/libcxx/libcxx-14.0.1.ebuild | 220 ---------------------------------
 sys-libs/libcxx/libcxx-14.0.3.ebuild | 228 -----------------------------------
 sys-libs/libcxx/libcxx-14.0.5.ebuild | 228 -----------------------------------
 4 files changed, 683 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9688cf1bc0bb..b22f928b57df 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,17 +1,10 @@
 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
-DIST llvm-gentoo-patchset-14.0.1.tar.xz 4724 BLAKE2B 2689298c687fa8b5fa2545afccc248c00ff6778f1a14e3e7999e5d52a1b0b9c3b2e66e8c008e27c62c6c3c08009dc7d9d083ca53698138258ac972e4ad03c042 SHA512 a9f071ad0a792f558105a64790f9e470d8aaed05bd1baabbe86539760c881f772602a03265e0962d8599f991f7fd44d14a49e2ef9d74bb5eb283f473f4084d32
-DIST llvm-gentoo-patchset-14.0.3.tar.xz 5492 BLAKE2B 48a46d50a81c5572d1573c6923bc404b198f74ee8587a928e0858553dac37f7fa39cc969d72b938ef3d2f04f6872f9e2e2478821ab90c657ecbbacb3f7d99d7a SHA512 b917b549de6d46cd7aab3e59b888b5e5ffb955435b33d6538be2f31dc30217a24740a673cb6bb661087c245121edb079052b179badaf70b86b985ca69b3652a6
 DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
-DIST llvm-gentoo-patchset-14.0.5.tar.xz 4072 BLAKE2B c35072f70831d5e3c9f7236f8473b098e6b8da4f27ce6a382ff4d3cd235837b25b9a1bc1e406ce0d3feb05e4d1e1c8bf141ff8f218568d5a5339fd1092f86b62 SHA512 646e0515a6cf1aae86f05db4797d7af6e3c9b8a6070f41cbd36535944029e0e5888128e33d8c44af22b5bb9ccba392b9dfeabc7708e5eab11858edefced6b68d
 DIST llvm-gentoo-patchset-14.0.6.tar.xz 4544 BLAKE2B b613582fa048837303168a2d62835688128621236022ca6c232293cb2e4549174ef256e7dcd8303bfef6d5456d0459ddb2cbda4a4d323b82901da4c16f15dcc4 SHA512 fb89a3186c5bffdc6245ed103d79fe6802a86986bd43891b7e128955bd546dffcb5b4083ac9e7966f67ce8dd82322756a11428ab4c62d21f012d614062adab35
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
-DIST llvm-project-14.0.5.src.tar.xz 105617748 BLAKE2B a68a6eb58302702f560d1204eb97d34b695eb5df417ccefb50117dbd641ba3c3dda9e64c04506e646dd40c1151eb60b12843e206996ef74b35b2841b8dabafda SHA512 db5a7ea1149988c2aab4ed634f14e00bb9a8042089350b811f875e295ced7b5add80a11b91cad80ba0ba9801261502644a720021506483c14dfb1bc24a7f54d5
-DIST llvm-project-14.0.5.src.tar.xz.sig 566 BLAKE2B ecf66df5d0acb382c9d441aee053404254fa4087d57130b04bb496af9cbb71c59e82f0938f44953d7fd777524781d13d1327b6c64065cf45b177bc3ea0e5c3f2 SHA512 a785e38f11863a46de8766ff4495a73173479cdbd95dc539804b0381a7a834a409713dbaf441272a9cc2963a3c7015c95dc6f0dcfa745e8d6047b1ad5feacff7
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
-DIST llvmorg-14.0.1.tar.gz 158074615 BLAKE2B bf80366461580058494eb101646efcd1a8b55a66818a710c2eb8c649bf88c02fe4552cecf4c1c8637a64e7cee8d644bca31aafc804765ed18f2b5e2975dd6c92 SHA512 0a15aa9cfc978a7b03a1659a2affad65ede66d280f5c12bf0beaaf194cd7bdd57ff438b5f40e64c1e1b88f368de99be349e9d30b544d2bbe4a50f0ebed3307f2
-DIST llvmorg-14.0.3.tar.gz 158092596 BLAKE2B ef901df510ec6bc1242595ec330e9c9ee76e696b077d67a8d62b53608c3d18b2f2d7ea3150864e13d9b37a8ce899ebca946ebe72cbc4538700176e20859ddec2 SHA512 511e93fd9b1c414c38fe9e2649679ac0b16cb04f7f7838569d187b04c542a185e364d6db73e96465026e3b2533649eb75ac95507d12514af32b28bdfb66f2646
 DIST llvmorg-14.0.4.tar.gz 158088617 BLAKE2B 7fb894548dce72593a8639b4d0220d2499577f80d38b97600749c91a498c69dfbbe818cee35e4a76370795e55da7037543ea341ad7567a6f548893c67dce9e64 SHA512 e14e6c3a1915a96e9ddc609f16ca3a398ca6f7fd0a691dadaa24490078a661340e845cb2d18f3679de4f47300bb822c33ae69548af6a0370d55737831a28b959

diff --git a/sys-libs/libcxx/libcxx-14.0.1.ebuild b/sys-libs/libcxx/libcxx-14.0.1.ebuild
deleted file mode 100644
index ddd39dc817b6..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.1.ebuild
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	${PYTHON_DEPS}
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-14.0.3.ebuild b/sys-libs/libcxx/libcxx-14.0.3.ebuild
deleted file mode 100644
index 4d6be5bcc7f2..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.3.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-
-RDEPEND="
-	libcxxabi? (
-		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
-	)
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV}
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-14.0.5.ebuild b/sys-libs/libcxx/libcxx-14.0.5.ebuild
deleted file mode 100644
index 4d6be5bcc7f2..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.5.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-
-RDEPEND="
-	libcxxabi? (
-		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
-	)
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV}
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-19  7:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-19  7:47 UTC (permalink / raw
  To: gentoo-commits

commit:     8be4bdc95c3123a5dd5f91754e1bf8ae2a5bc71b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 19 07:47:11 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 19 07:47:11 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8be4bdc9

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-12.0.1.ebuild | 212 -----------------------------------
 2 files changed, 214 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index b22f928b57df..d225e8271c5a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,10 +1,8 @@
-DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
 DIST llvm-gentoo-patchset-14.0.6.tar.xz 4544 BLAKE2B b613582fa048837303168a2d62835688128621236022ca6c232293cb2e4549174ef256e7dcd8303bfef6d5456d0459ddb2cbda4a4d323b82901da4c16f15dcc4 SHA512 fb89a3186c5bffdc6245ed103d79fe6802a86986bd43891b7e128955bd546dffcb5b4083ac9e7966f67ce8dd82322756a11428ab4c62d21f012d614062adab35
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
-DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
 DIST llvmorg-14.0.4.tar.gz 158088617 BLAKE2B 7fb894548dce72593a8639b4d0220d2499577f80d38b97600749c91a498c69dfbbe818cee35e4a76370795e55da7037543ea341ad7567a6f548893c67dce9e64 SHA512 e14e6c3a1915a96e9ddc609f16ca3a398ca6f7fd0a691dadaa24490078a661340e845cb2d18f3679de4f47300bb822c33ae69548af6a0370d55737831a28b959

diff --git a/sys-libs/libcxx/libcxx-12.0.1.ebuild b/sys-libs/libcxx/libcxx-12.0.1.ebuild
deleted file mode 100644
index 32417c012865..000000000000
--- a/sys-libs/libcxx/libcxx-12.0.1.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake/modules,utils/llvm-lit} )
-LLVM_PATCHSET=12.0.1
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-27  4:14 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-07-27  4:14 UTC (permalink / raw
  To: gentoo-commits

commit:     7a0573689ce21c3506244552dd094f71d737ea77
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 27 04:05:06 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jul 27 04:07:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a057368

sys-libs/libcxx: keyword ~sparc

List of test failures isn't bad at all:
FAIL: libc++ :: libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.pass.cpp (1001 of 7627)
FAIL: libc++ :: std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp (3311 of 7627)
FAIL: libc++ :: std/language.support/cmp/cmp.alg/weak_order.pass.cpp (4013 of 7627)
FAIL: libc++ :: std/language.support/cmp/cmp.alg/compare_weak_order_fallback.pass.cpp (4029 of 7627)
FAIL: libc++ :: std/re/re.traits/isctype.pass.cpp (5593 of 7627)

Bug: https://bugs.gentoo.org/753221
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.4.ebuild | 2 +-
 sys-libs/libcxx/libcxx-14.0.6.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
index 31c29cb92bbb..ab160d11abdc 100644
--- a/sys-libs/libcxx/libcxx-14.0.4.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.4.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 4d6be5bcc7f2..b27bffec9276 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-28 12:57 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-28 12:57 UTC (permalink / raw
  To: gentoo-commits

commit:     f4f55eea7eeaa2c756d9d1a386d80161a5da6165
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 28 12:36:47 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jul 28 12:57:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4f55eea

sys-libs/libcxx: Fix 15.x with USE=-libunwind

Still need to figure out USE=libunwind and tests.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index dcdce79b90b2..b65a070744cd 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -79,7 +79,7 @@ src_configure() {
 	local cxxabi cxxabi_incs
 	if use libcxxabi; then
 		cxxabi=system-libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/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++
@@ -146,7 +146,6 @@ multilib_src_configure() {
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
 		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
 		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-28 13:20 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-07-28 13:20 UTC (permalink / raw
  To: gentoo-commits

commit:     cba2320f60739ad1345d717a87f52ad0579cf731
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 28 12:14:15 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jul 28 13:19:07 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cba2320f

sys-libs/libcxx: add github upstream metadata

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/metadata.xml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index 437ced3c45e3..88b259915838 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -13,4 +13,7 @@
 		<flag name="libcxxabi">Build on top of <pkg>sys-libs/libcxxabi</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
 		<flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>
 	</use>
+	<upstream>
+		<remote-id type="github">llvm/llvm-project</remote-id>
+	</upstream>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-28 13:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-28 13:58 UTC (permalink / raw
  To: gentoo-commits

commit:     20dbb4082fb980c0b89165d0186aa17c10fcb2c9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 28 13:57:07 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jul 28 13:58:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20dbb408

sys-libs/libcxx: Default to building w/ clang, part. fix tests

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 23 ++++++++++++++++++-----
 sys-libs/libcxx/metadata.xml              |  2 ++
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index b65a070744cd..25841a822b4c 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -13,9 +13,12 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="+libcxxabi +libunwind static-libs test"
+IUSE="+clang +libcxxabi +libunwind static-libs test"
+REQUIRED_USE="
+	libunwind? ( libcxxabi )
+	test? ( clang )
+"
 RESTRICT="!test? ( test )"
-REQUIRED_USE="libunwind? ( libcxxabi )"
 
 RDEPEND="
 	libcxxabi? (
@@ -31,12 +34,14 @@ DEPEND="
 	>=sys-devel/llvm-6
 "
 BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
 	!test? (
 		${PYTHON_DEPS}
 	)
 	test? (
 		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
 		sys-devel/gdb[python]
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)
@@ -90,6 +95,14 @@ src_configure() {
 }
 
 multilib_src_configure() {
+	if use clang && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
 	# we want -lgcc_s for unwinder, and for compiler runtime when using
 	# gcc, clang with gcc runtime (or any unknown compiler)
 	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
@@ -129,6 +142,7 @@ multilib_src_configure() {
 
 	local libdir=$(get_libdir)
 	local mycmakeargs=(
+		-DCMAKE_CXX_COMPILER_TARGET="${CHOST}"
 		-DPython3_EXECUTABLE="${PYTHON}"
 		-DLLVM_ENABLE_RUNTIMES=libcxx
 		-DLLVM_INCLUDE_TESTS=OFF
@@ -155,8 +169,7 @@ multilib_src_configure() {
 
 		mycmakeargs+=(
 			-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-			-DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
+			-DLLVM_LIT_ARGS="$(get_lit_flags)"
 			-DPython3_EXECUTABLE="${PYTHON}"
 		)
 	fi

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index 88b259915838..81bfc59aae3f 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -10,6 +10,8 @@
 		<name>LLVM Project</name>
 	</maintainer>
 	<use>
+		<flag name="clang">Force building using installed clang (rather
+			than the default CC/CXX; required for testing).</flag>
 		<flag name="libcxxabi">Build on top of <pkg>sys-libs/libcxxabi</pkg> instead of gcc's libsupc++ (avoids depending on gcc).</flag>
 		<flag name="libunwind">Use libunwind instead of libgcc_s for stack unwinding, thus avoiding dependence on gcc.</flag>
 	</use>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-29 10:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-29 10:09 UTC (permalink / raw
  To: gentoo-commits

commit:     df85e163da451f4d9d2a9f68b39fd069edea2143
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 29 10:01:55 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 29 10:09:40 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=df85e163

sys-libs/libcxx: Use newest patchset (NFC)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             | 2 +-
 sys-libs/libcxx/libcxx-14.0.6.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d225e8271c5a..a2cdecbccc10 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,6 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
-DIST llvm-gentoo-patchset-14.0.6.tar.xz 4544 BLAKE2B b613582fa048837303168a2d62835688128621236022ca6c232293cb2e4549174ef256e7dcd8303bfef6d5456d0459ddb2cbda4a4d323b82901da4c16f15dcc4 SHA512 fb89a3186c5bffdc6245ed103d79fe6802a86986bd43891b7e128955bd546dffcb5b4083ac9e7966f67ce8dd82322756a11428ab4c62d21f012d614062adab35
+DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index b27bffec9276..12fe089eac6f 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -43,7 +43,7 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV}
+LLVM_PATCHSET=${PV}-r2
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-29 10:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-29 10:09 UTC (permalink / raw
  To: gentoo-commits

commit:     deae6a3723c465053f364e2d05891f969c7bf04d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 29 10:06:30 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 29 10:09:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=deae6a37

sys-libs/libcxx: Fix IndirectInherits

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index 25841a822b4c..22e74228d61a 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -5,7 +5,8 @@ EAPI=8
 
 CMAKE_ECLASS=cmake
 PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
+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/"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-30  8:59 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-07-30  8:59 UTC (permalink / raw
  To: gentoo-commits

commit:     f6f33d7b965cbeb5926658d83e410efb8d1af7ff
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 30 08:58:22 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sat Jul 30 08:58:56 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f6f33d7b

sys-libs/libcxx: amd64 stable wrt bug #861950

Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 12fe089eac6f..3b070389aa9f 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-30 17:55 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-07-30 17:55 UTC (permalink / raw
  To: gentoo-commits

commit:     0a3f9c1d25095406aba205256cb3384459dadf89
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 30 17:54:59 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Jul 30 17:54:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a3f9c1d

sys-libs/libcxx: Stabilize 14.0.6 arm64, #861950

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index af616dfda2f4..c30f5e9a7ade 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-31 11:13 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-07-31 11:13 UTC (permalink / raw
  To: gentoo-commits

commit:     1b2228c2c57d93d8b547583165e01c18006d2e0f
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 31 11:12:21 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sun Jul 31 11:12:21 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b2228c2

sys-libs/libcxx: x86 stable wrt bug #861950

Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index c30f5e9a7ade..3b379bb31495 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-31 13:56 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-31 13:56 UTC (permalink / raw
  To: gentoo-commits

commit:     ca8f5b8a1452e77cbde2c85c93f4b32d64412556
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 31 09:58:20 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 31 13:56:38 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ca8f5b8a

sys-libs/libcxx: Fix testing against shared libc++abi.so

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 57 +++++++++++++++++++------------
 1 file changed, 35 insertions(+), 22 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index 22e74228d61a..ee78990d53b4 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -177,11 +177,29 @@ multilib_src_configure() {
 	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
@@ -198,38 +216,33 @@ END_LDSCRIPT
 }
 
 gen_static_ldscript() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
 	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
+	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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)"
+	local deps=(
+		libc++_static.a
+		$(usex libcxxabi libc++abi.a libsupc++.a)
+		$(usex libunwind libunwind.a libgcc_eh.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"
+	use elibc_glibc && deps+=( libpthread.a libdl.a )
 
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die
+	gen_ldscript "${deps[*]}" > lib/libc++.a || die
 }
 
 gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
+	# 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)
+		$(usex libunwind libunwind.so libgcc_s.so)
+	)
 
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
+	gen_ldscript "${deps[*]}" > lib/libc++.so || die
 }
 
 pkg_postinst() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-31 13:56 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-31 13:56 UTC (permalink / raw
  To: gentoo-commits

commit:     5494ed1262b059feadcb88201da6165f39b0c6be
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 31 13:46:26 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 31 13:56:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5494ed12

sys-libs/libcxx: Enable py3.11

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index ee78990d53b4..3acf567e062b 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -4,7 +4,7 @@
 EAPI=8
 
 CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{8..11} )
 inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-07-31 19:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-07-31 19:44 UTC (permalink / raw
  To: gentoo-commits

commit:     e003b23e8ea781f52a1ffeefb00d1fbd49488335
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 31 18:18:44 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 31 19:44:15 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e003b23e

sys-libs/libcxx: Remove USE=libunwind

Following sys-libs/libcxxabi.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 46 +++++++------------------------
 1 file changed, 10 insertions(+), 36 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index 3acf567e062b..d95f996ca33b 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -14,16 +14,13 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="+clang +libcxxabi +libunwind static-libs test"
-REQUIRED_USE="
-	libunwind? ( libcxxabi )
-	test? ( clang )
-"
+IUSE="+clang +libcxxabi static-libs test"
+REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"
 
 RDEPEND="
 	libcxxabi? (
-		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
+		~sys-libs/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
@@ -104,32 +101,14 @@ multilib_src_configure() {
 		strip-unsupported-flags
 	fi
 
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
 		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
 	fi
 
 	# bootstrap: cmake is unhappy if compiler can't link to stdlib
@@ -156,12 +135,9 @@ multilib_src_configure() {
 		# we're using our own mechanism for generating linker scripts
 		-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
-		-DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
 		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
 		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
 	)
 
 	if use test; then
@@ -223,7 +199,6 @@ gen_static_ldscript() {
 	local deps=(
 		libc++_static.a
 		$(usex libcxxabi libc++abi.a libsupc++.a)
-		$(usex libunwind libunwind.a libgcc_eh.a)
 	)
 	# On Linux/glibc it does not link without libpthread or libdl. It is
 	# fine on FreeBSD.
@@ -239,7 +214,6 @@ gen_shared_ldscript() {
 		libc++_shared.so
 		# libsupc++ doesn't have a shared version
 		$(usex libcxxabi libc++abi.so libsupc++.a)
-		$(usex libunwind libunwind.so libgcc_s.so)
 	)
 
 	gen_ldscript "${deps[*]}" > lib/libc++.so || die


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-08-02 19:50 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-08-02 19:50 UTC (permalink / raw
  To: gentoo-commits

commit:     2bac3de96c3b5ab4fb70955da01d2c5298ad383b
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  2 19:50:02 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Tue Aug  2 19:50:02 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2bac3de9

sys-libs/libcxx: Stabilize 14.0.6 sparc, #862999

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 3b379bb31495..09ef1beb4a22 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+libcxxabi +libunwind static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-08-03  7:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-08-03  7:02 UTC (permalink / raw
  To: gentoo-commits

commit:     cf46cd5da770009b6936cd8ada836fb5e387406b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  3 06:55:06 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug  3 06:55:24 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf46cd5d

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-14.0.4.ebuild | 228 -----------------------------------
 2 files changed, 230 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a2cdecbccc10..3c063a38941d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,8 +1,6 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
-DIST llvm-gentoo-patchset-14.0.4.tar.xz 4072 BLAKE2B cbd8804e33069ca2709503931545a57cfd33c06f28696d876d499285e9add9487a069495b756bbb94d29a162c39ece651defddd302e3ac523c5484c09fb3d2ea SHA512 db00268d01e7ec99b907321384c02468a53020386ee4fc819fabfc1cd0784323044931dac42437968d5fd37190da1b9f8f847af553a65a0595c33cecfd82c293
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
-DIST llvmorg-14.0.4.tar.gz 158088617 BLAKE2B 7fb894548dce72593a8639b4d0220d2499577f80d38b97600749c91a498c69dfbbe818cee35e4a76370795e55da7037543ea341ad7567a6f548893c67dce9e64 SHA512 e14e6c3a1915a96e9ddc609f16ca3a398ca6f7fd0a691dadaa24490078a661340e845cb2d18f3679de4f47300bb822c33ae69548af6a0370d55737831a28b959

diff --git a/sys-libs/libcxx/libcxx-14.0.4.ebuild b/sys-libs/libcxx/libcxx-14.0.4.ebuild
deleted file mode 100644
index ab160d11abdc..000000000000
--- a/sys-libs/libcxx/libcxx-14.0.4.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CMAKE_ECLASS=cmake
-PYTHON_COMPAT=( python3_{8..10} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-
-RDEPEND="
-	libcxxabi? (
-		~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}]
-	)
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV}
-llvm.org_set_globals
-
-python_check_deps() {
-	use test || return 0
-	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 dev-lang/llvm; then
-		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
-}
-
-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/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-08-05 19:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-08-05 19:50 UTC (permalink / raw
  To: gentoo-commits

commit:     9d299a398903a01b82022a880360d0a4b7b1e791
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  5 19:48:45 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug  5 19:50:00 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d299a39

sys-libs/libcxx: Add 16.* live ebuilds

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild | 228 ++++++++++++++++++++++++++++++
 1 file changed, 228 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
new file mode 100644
index 000000000000..d95f996ca33b
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=9999-1
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-08-09 17:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-08-09 17:36 UTC (permalink / raw
  To: gentoo-commits

commit:     a8df9d79f2a0a6e6912ba53313f5f441267d615f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  9 13:32:06 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug  9 17:36:45 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8df9d79

sys-libs/libcxx: Bump to 15.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   3 +
 sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild | 228 +++++++++++++++++++++++++++++++
 2 files changed, 231 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3c063a38941d..6fd071d8cb28 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,9 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
+DIST llvm-gentoo-patchset-15.0.0-rc2.tar.xz 5768 BLAKE2B 03822c4dfbe3157d9131a3524beeda22fbc6adc937af052fd0fbcc23fb6ea86e1a5e015c316b53019820de5b81b1b065bfcbc31608598307f03af39f215fb12e SHA512 b9d7adb9b738a565c2142360c5ff7a7aa8405ce78af8767867203dd003e5bdb2b8a7f14179fdb7dc0c5cdc696cfff55c4886cfcd0894672284b453943e4e7269
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
+DIST llvm-project-15.0.0rc2.src.tar.xz 112110968 BLAKE2B 98c3769f17f1958fbec771409eef781f5ca845363656c70fe5cd20bca1b8471e7a8773a7d4e395700c297a5f3f208fe1303cf18e2a73b45388b782fb7484106b SHA512 eee1bee1f83cc468fb4bb6839acbd5c1618dc35f35e51cd078288b91bad95d52edaadd05c88f2d72d51c1c338ba08b3346c070a28693b1224639eb7a1ef4a4d9
+DIST llvm-project-15.0.0rc2.src.tar.xz.sig 438 BLAKE2B 09f260b30724b41b27ef621929c086fd6c13bde51c4adb880897b549b2d336682f617faf3dd636ceb795e329b664972cf50745ab49f84e7540658d53074510da SHA512 9f695a309fbb15026dc133eb17d33abd26831eb036fad79dd8df37d4f4d9eeae1ca463acd037d2a1882bc2cff763e4bda507d1d827d845613bfd62d0f9fbd4ca
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
new file mode 100644
index 000000000000..e6120dc78ebd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV/_/-}
+llvm.org_set_globals
+
+python_check_deps() {
+	use test || return 0
+	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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-08-11 10:38 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-08-11 10:38 UTC (permalink / raw
  To: gentoo-commits

commit:     d930dfd04a6c306c0cb52a06856533c3c63417fc
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 11 10:36:46 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Aug 11 10:36:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d930dfd0

sys-libs/libcxx: fix PythonHasVersionUsage

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.ebuild      | 2 +-
 sys-libs/libcxx/libcxx-14.0.6.ebuild      | 2 +-
 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 2 +-
 sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild  | 2 +-
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
index 9720629f1aff..f7e237c7af45 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild
@@ -40,7 +40,7 @@ LLVM_PATCHSET=${PV/_/-}
 llvm.org_set_globals
 
 python_check_deps() {
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
 pkg_setup() {

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 09ef1beb4a22..b32a3fd02e55 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -48,7 +48,7 @@ llvm.org_set_globals
 
 python_check_deps() {
 	use test || return 0
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
 pkg_setup() {

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index d95f996ca33b..9dc33c6e6120 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -51,7 +51,7 @@ llvm.org_set_globals
 
 python_check_deps() {
 	use test || return 0
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
 pkg_setup() {

diff --git a/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
index e6120dc78ebd..d4df61d8cca7 100644
--- a/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
@@ -51,7 +51,7 @@ llvm.org_set_globals
 
 python_check_deps() {
 	use test || return 0
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
 pkg_setup() {

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index d95f996ca33b..9dc33c6e6120 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -51,7 +51,7 @@ llvm.org_set_globals
 
 python_check_deps() {
 	use test || return 0
-	has_version "dev-python/lit[${PYTHON_USEDEP}]"
+	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
 pkg_setup() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-08-26  8:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-08-26  8:43 UTC (permalink / raw
  To: gentoo-commits

commit:     4c1412dfeedee6ba42095dd4b37b2ba9bf69db1e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 26 07:21:44 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 26 08:42:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c1412df

sys-libs/libcxx: Bump to 15.0.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   3 +
 sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild | 227 +++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6fd071d8cb28..f413e8d04bcc 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,9 +1,12 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.0-rc2.tar.xz 5768 BLAKE2B 03822c4dfbe3157d9131a3524beeda22fbc6adc937af052fd0fbcc23fb6ea86e1a5e015c316b53019820de5b81b1b065bfcbc31608598307f03af39f215fb12e SHA512 b9d7adb9b738a565c2142360c5ff7a7aa8405ce78af8767867203dd003e5bdb2b8a7f14179fdb7dc0c5cdc696cfff55c4886cfcd0894672284b453943e4e7269
+DIST llvm-gentoo-patchset-15.0.0-rc3.tar.xz 4036 BLAKE2B 0f8172f1d9ac674b7c888781138dcb1f55c7f73a98ee78d04e4e26442ac91ae2a6c6d6aaa45982a344e174e1d080247ab9c62bbb9adaa7fd20c5a481e0e8bfed SHA512 ebdf8d1d4f52150c99015e6dea4f3fd67f0a54284d52e946d104ff6c0f60efc716a1b39d3cdecf7b353cf139d8306793d37c10fe9269376d9846896fcf6415ad
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0rc2.src.tar.xz 112110968 BLAKE2B 98c3769f17f1958fbec771409eef781f5ca845363656c70fe5cd20bca1b8471e7a8773a7d4e395700c297a5f3f208fe1303cf18e2a73b45388b782fb7484106b SHA512 eee1bee1f83cc468fb4bb6839acbd5c1618dc35f35e51cd078288b91bad95d52edaadd05c88f2d72d51c1c338ba08b3346c070a28693b1224639eb7a1ef4a4d9
 DIST llvm-project-15.0.0rc2.src.tar.xz.sig 438 BLAKE2B 09f260b30724b41b27ef621929c086fd6c13bde51c4adb880897b549b2d336682f617faf3dd636ceb795e329b664972cf50745ab49f84e7540658d53074510da SHA512 9f695a309fbb15026dc133eb17d33abd26831eb036fad79dd8df37d4f4d9eeae1ca463acd037d2a1882bc2cff763e4bda507d1d827d845613bfd62d0f9fbd4ca
+DIST llvm-project-15.0.0rc3.src.tar.xz 112081940 BLAKE2B 659359f8366ad09051fa2256c1aae8cea2049ab6428ce6b15a6845f7ee01a27bc2be2ab612adf8364cb2d699f19d09a7ea01eda74b266f14cc844662bcc833e0 SHA512 e4ac310c19fd6b710d372b9a53dffaf6736d4b5c23190fa98536be40f7c4e45670957dcbfb337e9d1dd44398df43d1ae736063eff2b2fd3d6fc752fae286d3bb
+DIST llvm-project-15.0.0rc3.src.tar.xz.sig 438 BLAKE2B 455181d3845ff1766f463d0e02caf72df8106dad16b8d54234f7f2fa0fcb5636abb06b2d35b5fdb8a3ed5c92a41a47d413d1bb76013cb914ce79913479a786e2 SHA512 80a67cf48186d2fbde997707e5d3d7a2dc3097f07e32ff45277e5185eb358d6b292821d8eaf8570fcc45560340663d62adb0380c675909c4c9c713e52704c800
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild
new file mode 100644
index 000000000000..bfc8c058aead
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV/_/-}
+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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-06  7:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-06  7:59 UTC (permalink / raw
  To: gentoo-commits

commit:     5a60131f0d171875953dd245c931573381e0b05e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  6 07:58:13 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  6 07:58:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a60131f

sys-libs/libcxx: Bump to 15.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   3 +
 sys-libs/libcxx/libcxx-15.0.0.ebuild | 227 +++++++++++++++++++++++++++++++++++
 2 files changed, 230 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f413e8d04bcc..ff47886fe7d8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,9 +2,12 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.0-rc2.tar.xz 5768 BLAKE2B 03822c4dfbe3157d9131a3524beeda22fbc6adc937af052fd0fbcc23fb6ea86e1a5e015c316b53019820de5b81b1b065bfcbc31608598307f03af39f215fb12e SHA512 b9d7adb9b738a565c2142360c5ff7a7aa8405ce78af8767867203dd003e5bdb2b8a7f14179fdb7dc0c5cdc696cfff55c4886cfcd0894672284b453943e4e7269
 DIST llvm-gentoo-patchset-15.0.0-rc3.tar.xz 4036 BLAKE2B 0f8172f1d9ac674b7c888781138dcb1f55c7f73a98ee78d04e4e26442ac91ae2a6c6d6aaa45982a344e174e1d080247ab9c62bbb9adaa7fd20c5a481e0e8bfed SHA512 ebdf8d1d4f52150c99015e6dea4f3fd67f0a54284d52e946d104ff6c0f60efc716a1b39d3cdecf7b353cf139d8306793d37c10fe9269376d9846896fcf6415ad
+DIST llvm-gentoo-patchset-15.0.0.tar.xz 4032 BLAKE2B 99c959eff6c8164147952aa5dc0621d1804b1e460c71bbfcf0c2a971f82e8405bc0c4dac327c27b6b459c4f45381466e883e502df14c84d8ba98495a437bfd47 SHA512 ce516b3401bd45696cf9ed0003de2f536695b8554fa3c2c35f14f1f1e2f0f115c20ef2b1d5319369cc536db4cb95cb508d34e7a6f8ef60f242547179e9d338a6
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
+DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc
+DIST llvm-project-15.0.0.src.tar.xz.sig 438 BLAKE2B 8eb12c259f94d8f867a31dbe05128adc1f9cc7ec8bcbdbe1738d2fad461f5d214e674f080f7f29b639a7a75f9c5b56c0f959f538697d647b94b97dc56b036e5f SHA512 4096464a46e07575b7cff448ff8bbc38fe972505f366b744419a06339cf32b93266b0fae5390879859041ce6710e4b675ed3ea7561d6a817623d7ece0e969661
 DIST llvm-project-15.0.0rc2.src.tar.xz 112110968 BLAKE2B 98c3769f17f1958fbec771409eef781f5ca845363656c70fe5cd20bca1b8471e7a8773a7d4e395700c297a5f3f208fe1303cf18e2a73b45388b782fb7484106b SHA512 eee1bee1f83cc468fb4bb6839acbd5c1618dc35f35e51cd078288b91bad95d52edaadd05c88f2d72d51c1c338ba08b3346c070a28693b1224639eb7a1ef4a4d9
 DIST llvm-project-15.0.0rc2.src.tar.xz.sig 438 BLAKE2B 09f260b30724b41b27ef621929c086fd6c13bde51c4adb880897b549b2d336682f617faf3dd636ceb795e329b664972cf50745ab49f84e7540658d53074510da SHA512 9f695a309fbb15026dc133eb17d33abd26831eb036fad79dd8df37d4f4d9eeae1ca463acd037d2a1882bc2cff763e4bda507d1d827d845613bfd62d0f9fbd4ca
 DIST llvm-project-15.0.0rc3.src.tar.xz 112081940 BLAKE2B 659359f8366ad09051fa2256c1aae8cea2049ab6428ce6b15a6845f7ee01a27bc2be2ab612adf8364cb2d699f19d09a7ea01eda74b266f14cc844662bcc833e0 SHA512 e4ac310c19fd6b710d372b9a53dffaf6736d4b5c23190fa98536be40f7c4e45670957dcbfb337e9d1dd44398df43d1ae736063eff2b2fd3d6fc752fae286d3bb

diff --git a/sys-libs/libcxx/libcxx-15.0.0.ebuild b/sys-libs/libcxx/libcxx-15.0.0.ebuild
new file mode 100644
index 000000000000..bfc8c058aead
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.0.ebuild
@@ -0,0 +1,227 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV/_/-}
+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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-06  8:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-06  8:01 UTC (permalink / raw
  To: gentoo-commits

commit:     8f8f51791ef2a0d31111352d45a90a6d833f51c1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  6 08:00:10 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  6 08:00:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f8f5179

sys-libs/libcxx: Remove 15.0.0 RCs

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   6 -
 sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild | 227 -------------------------------
 sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild | 227 -------------------------------
 3 files changed, 460 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ff47886fe7d8..230179399ada 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,15 +1,9 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
-DIST llvm-gentoo-patchset-15.0.0-rc2.tar.xz 5768 BLAKE2B 03822c4dfbe3157d9131a3524beeda22fbc6adc937af052fd0fbcc23fb6ea86e1a5e015c316b53019820de5b81b1b065bfcbc31608598307f03af39f215fb12e SHA512 b9d7adb9b738a565c2142360c5ff7a7aa8405ce78af8767867203dd003e5bdb2b8a7f14179fdb7dc0c5cdc696cfff55c4886cfcd0894672284b453943e4e7269
-DIST llvm-gentoo-patchset-15.0.0-rc3.tar.xz 4036 BLAKE2B 0f8172f1d9ac674b7c888781138dcb1f55c7f73a98ee78d04e4e26442ac91ae2a6c6d6aaa45982a344e174e1d080247ab9c62bbb9adaa7fd20c5a481e0e8bfed SHA512 ebdf8d1d4f52150c99015e6dea4f3fd67f0a54284d52e946d104ff6c0f60efc716a1b39d3cdecf7b353cf139d8306793d37c10fe9269376d9846896fcf6415ad
 DIST llvm-gentoo-patchset-15.0.0.tar.xz 4032 BLAKE2B 99c959eff6c8164147952aa5dc0621d1804b1e460c71bbfcf0c2a971f82e8405bc0c4dac327c27b6b459c4f45381466e883e502df14c84d8ba98495a437bfd47 SHA512 ce516b3401bd45696cf9ed0003de2f536695b8554fa3c2c35f14f1f1e2f0f115c20ef2b1d5319369cc536db4cb95cb508d34e7a6f8ef60f242547179e9d338a6
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc
 DIST llvm-project-15.0.0.src.tar.xz.sig 438 BLAKE2B 8eb12c259f94d8f867a31dbe05128adc1f9cc7ec8bcbdbe1738d2fad461f5d214e674f080f7f29b639a7a75f9c5b56c0f959f538697d647b94b97dc56b036e5f SHA512 4096464a46e07575b7cff448ff8bbc38fe972505f366b744419a06339cf32b93266b0fae5390879859041ce6710e4b675ed3ea7561d6a817623d7ece0e969661
-DIST llvm-project-15.0.0rc2.src.tar.xz 112110968 BLAKE2B 98c3769f17f1958fbec771409eef781f5ca845363656c70fe5cd20bca1b8471e7a8773a7d4e395700c297a5f3f208fe1303cf18e2a73b45388b782fb7484106b SHA512 eee1bee1f83cc468fb4bb6839acbd5c1618dc35f35e51cd078288b91bad95d52edaadd05c88f2d72d51c1c338ba08b3346c070a28693b1224639eb7a1ef4a4d9
-DIST llvm-project-15.0.0rc2.src.tar.xz.sig 438 BLAKE2B 09f260b30724b41b27ef621929c086fd6c13bde51c4adb880897b549b2d336682f617faf3dd636ceb795e329b664972cf50745ab49f84e7540658d53074510da SHA512 9f695a309fbb15026dc133eb17d33abd26831eb036fad79dd8df37d4f4d9eeae1ca463acd037d2a1882bc2cff763e4bda507d1d827d845613bfd62d0f9fbd4ca
-DIST llvm-project-15.0.0rc3.src.tar.xz 112081940 BLAKE2B 659359f8366ad09051fa2256c1aae8cea2049ab6428ce6b15a6845f7ee01a27bc2be2ab612adf8364cb2d699f19d09a7ea01eda74b266f14cc844662bcc833e0 SHA512 e4ac310c19fd6b710d372b9a53dffaf6736d4b5c23190fa98536be40f7c4e45670957dcbfb337e9d1dd44398df43d1ae736063eff2b2fd3d6fc752fae286d3bb
-DIST llvm-project-15.0.0rc3.src.tar.xz.sig 438 BLAKE2B 455181d3845ff1766f463d0e02caf72df8106dad16b8d54234f7f2fa0fcb5636abb06b2d35b5fdb8a3ed5c92a41a47d413d1bb76013cb914ce79913479a786e2 SHA512 80a67cf48186d2fbde997707e5d3d7a2dc3097f07e32ff45277e5185eb358d6b292821d8eaf8570fcc45560340663d62adb0380c675909c4c9c713e52704c800
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
deleted file mode 100644
index bfc8c058aead..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.0_rc2.ebuild
+++ /dev/null
@@ -1,227 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV/_/-}
-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 dev-lang/llvm; then
-		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
-}
-
-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 && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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)"
-			-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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild
deleted file mode 100644
index bfc8c058aead..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.0_rc3.ebuild
+++ /dev/null
@@ -1,227 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)
-"
-
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV/_/-}
-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 dev-lang/llvm; then
-		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
-}
-
-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 && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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)"
-			-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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-06 17:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-06 17:34 UTC (permalink / raw
  To: gentoo-commits

commit:     1abe478238dad40c1a88fecfac68841f8167d69b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  6 17:09:46 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  6 17:34:42 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1abe4782

sys-libs/libcxx: Bump 15.0.0 patchset

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             | 2 +-
 sys-libs/libcxx/libcxx-15.0.0.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 230179399ada..661c521eb9cd 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,6 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
-DIST llvm-gentoo-patchset-15.0.0.tar.xz 4032 BLAKE2B 99c959eff6c8164147952aa5dc0621d1804b1e460c71bbfcf0c2a971f82e8405bc0c4dac327c27b6b459c4f45381466e883e502df14c84d8ba98495a437bfd47 SHA512 ce516b3401bd45696cf9ed0003de2f536695b8554fa3c2c35f14f1f1e2f0f115c20ef2b1d5319369cc536db4cb95cb508d34e7a6f8ef60f242547179e9d338a6
+DIST llvm-gentoo-patchset-15.0.0-r1.tar.xz 4952 BLAKE2B 915aa1db9b16c3a6b7ae26c9935d862e4bda1d11595eee16475ca372beef0ae9a853e64e39bd82f80e95fa7eff18d415c6683b8f6def9734cd7cb9da04caaa7a SHA512 98b2d9dbc1d66e9f1447a121ffe0dd04e6dbccea734ba68e2495cf572314e3faf42645b65cc3906abb49e59ec1007b0b12fd7a78216b447b154d8ec2abbdb6f8
 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6

diff --git a/sys-libs/libcxx/libcxx-15.0.0.ebuild b/sys-libs/libcxx/libcxx-15.0.0.ebuild
index bfc8c058aead..83a70f46420e 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.ebuild
@@ -45,7 +45,7 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV/_/-}
+LLVM_PATCHSET=${PV/_/-}-r1
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-06 19:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-06 19:18 UTC (permalink / raw
  To: gentoo-commits

commit:     d6d03eebe9789f0aa909c16a46c470fb85cc61cc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  6 19:17:48 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  6 19:18:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6d03eeb

sys-libs/libcxx: Add keywords to 15.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.0.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.ebuild b/sys-libs/libcxx/libcxx-15.0.0.ebuild
index 83a70f46420e..166a6a421c4e 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-14  6:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-14  6:01 UTC (permalink / raw
  To: gentoo-commits

commit:     06c0ab4a2faf5ea3e8c00c1de4fe2bf8ed52f580
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 14 06:00:41 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 14 06:00:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06c0ab4a

sys-libs/libcxx: Remove redundant patch in 15+

Apparently -Wl,-z,defs happens without it now, so we can finally
skip it.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                  | 2 --
 sys-libs/libcxx/libcxx-15.0.0.9999.ebuild | 1 -
 sys-libs/libcxx/libcxx-15.0.0.ebuild      | 1 -
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild | 1 -
 4 files changed, 5 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 661c521eb9cd..ecb1d2da70fb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,5 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
-DIST llvm-gentoo-patchset-15.0.0-r1.tar.xz 4952 BLAKE2B 915aa1db9b16c3a6b7ae26c9935d862e4bda1d11595eee16475ca372beef0ae9a853e64e39bd82f80e95fa7eff18d415c6683b8f6def9734cd7cb9da04caaa7a SHA512 98b2d9dbc1d66e9f1447a121ffe0dd04e6dbccea734ba68e2495cf572314e3faf42645b65cc3906abb49e59ec1007b0b12fd7a78216b447b154d8ec2abbdb6f8
-DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
index df079830b59e..07049e01ed34 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
@@ -45,7 +45,6 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 
 python_check_deps() {

diff --git a/sys-libs/libcxx/libcxx-15.0.0.ebuild b/sys-libs/libcxx/libcxx-15.0.0.ebuild
index 166a6a421c4e..838aac063945 100644
--- a/sys-libs/libcxx/libcxx-15.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.0.ebuild
@@ -45,7 +45,6 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=${PV/_/-}-r1
 llvm.org_set_globals
 
 python_check_deps() {

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index df079830b59e..07049e01ed34 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -45,7 +45,6 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
-LLVM_PATCHSET=9999-1
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-16 12:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-16 12:14 UTC (permalink / raw
  To: gentoo-commits

commit:     202afce4cb2ec03cc0c67bbe75c029dab5bb2321
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 16 09:00:01 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep 16 12:14:40 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=202afce4

sys-libs/libcxx: Add 16.0.0_pre20220915 snap

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild | 226 +++++++++++++++++++++++
 2 files changed, 227 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ecb1d2da70fb..dc07bca79905 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
+DIST llvm-project-02a27b38909edc46c41732f79a837c95c9992d5a.tar.gz 167414990 BLAKE2B cd9c4be6d3155a4cbf1abff9d8246b9d6fea98e29459c226bda36df250cc22883f08175514fce037d146866d521a56669678b5c35b5163b38532b8c2920b25a6 SHA512 e862e148b8f053d8f4d40de8db9a4db587cb0c7b4120fe433d769aa2772a1aabd697c3c3f8ee34f547ee12c4bc4355116d5694d5f451264f8719d4af0fb32cb0
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild
new file mode 100644
index 000000000000..07049e01ed34
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild
@@ -0,0 +1,226 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-19 10:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-19 10:40 UTC (permalink / raw
  To: gentoo-commits

commit:     4312ad1b2575a5d1c8bd191e957fb6e2b6223426
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 19 08:40:52 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Sep 19 10:39:55 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4312ad1b

sys-libs/libcxx: Add 16.0.0_pre20220918 snap

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild | 226 +++++++++++++++++++++++
 2 files changed, 227 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index dc07bca79905..764184dae66e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,4 +5,5 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc
 DIST llvm-project-15.0.0.src.tar.xz.sig 438 BLAKE2B 8eb12c259f94d8f867a31dbe05128adc1f9cc7ec8bcbdbe1738d2fad461f5d214e674f080f7f29b639a7a75f9c5b56c0f959f538697d647b94b97dc56b036e5f SHA512 4096464a46e07575b7cff448ff8bbc38fe972505f366b744419a06339cf32b93266b0fae5390879859041ce6710e4b675ed3ea7561d6a817623d7ece0e969661
+DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
new file mode 100644
index 000000000000..07049e01ed34
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
@@ -0,0 +1,226 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-20  6:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-20  6:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ffd129ca71497d3c7889dcbf28da168fc8023448
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 20 06:33:26 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 20 06:38:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ffd129ca

sys-libs/libcxx: Bump live to 15.0.1.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-15.0.0.9999.ebuild => libcxx-15.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-15.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-15.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-20 11:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-20 11:04 UTC (permalink / raw
  To: gentoo-commits

commit:     53aec90f1dacd64d639da1d052e02877ab9cd497
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 20 06:44:14 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 20 11:01:32 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=53aec90f

sys-libs/libcxx: Bump to 15.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.1.ebuild | 226 +++++++++++++++++++++++++++++++++++
 2 files changed, 228 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 764184dae66e..90b8f599a5c2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,7 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc
 DIST llvm-project-15.0.0.src.tar.xz.sig 438 BLAKE2B 8eb12c259f94d8f867a31dbe05128adc1f9cc7ec8bcbdbe1738d2fad461f5d214e674f080f7f29b639a7a75f9c5b56c0f959f538697d647b94b97dc56b036e5f SHA512 4096464a46e07575b7cff448ff8bbc38fe972505f366b744419a06339cf32b93266b0fae5390879859041ce6710e4b675ed3ea7561d6a817623d7ece0e969661
+DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
+DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
 DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.1.ebuild b/sys-libs/libcxx/libcxx-15.0.1.ebuild
new file mode 100644
index 000000000000..838aac063945
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.1.ebuild
@@ -0,0 +1,226 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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] )
+"
+# llvm-6 for new lit options
+# clang-3.9.0 installs necessary target symlinks unconditionally
+# which removes the need for MULTILIB_USEDEP
+DEPEND="
+	${RDEPEND}
+	>=sys-devel/llvm-6
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 && ! tc-is-clang; then
+		# Only do this conditionally to allow overriding with
+		# e.g. CC=clang-13 in case of breakage
+		local -x CC=${CHOST}-clang
+		local -x CXX=${CHOST}-clang++
+		strip-unsupported-flags
+	fi
+
+	# link against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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)"
+			-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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-20 11:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-20 11:12 UTC (permalink / raw
  To: gentoo-commits

commit:     91acd0670eae6a0406c6bf196a1b32af3d77e396
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 20 11:08:36 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 20 11:08:36 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91acd067

sys-libs/libcxx: Remove 16.0.0_pre20220915

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild | 226 -----------------------
 2 files changed, 227 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 90b8f599a5c2..dac81fd3a607 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,5 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
-DIST llvm-project-02a27b38909edc46c41732f79a837c95c9992d5a.tar.gz 167414990 BLAKE2B cd9c4be6d3155a4cbf1abff9d8246b9d6fea98e29459c226bda36df250cc22883f08175514fce037d146866d521a56669678b5c35b5163b38532b8c2920b25a6 SHA512 e862e148b8f053d8f4d40de8db9a4db587cb0c7b4120fe433d769aa2772a1aabd697c3c3f8ee34f547ee12c4bc4355116d5694d5f451264f8719d4af0fb32cb0
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild
deleted file mode 100644
index 07049e01ed34..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20220915.ebuild
+++ /dev/null
@@ -1,226 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/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 dev-lang/llvm; then
-		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
-}
-
-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 && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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)"
-			-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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-21  8:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-21  8:23 UTC (permalink / raw
  To: gentoo-commits

commit:     2a7f33b4ea73c1d355438653529b633ec2240f9a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 21 08:11:42 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 21 08:23:20 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a7f33b4

sys-libs/libcxx: Force matchling LLVM/Clang version

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.1.9999.ebuild        | 15 ++++-----------
 sys-libs/libcxx/libcxx-15.0.1.ebuild             | 15 ++++-----------
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild        | 15 ++++-----------
 sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild | 15 ++++-----------
 4 files changed, 16 insertions(+), 44 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.1.9999.ebuild
index 07049e01ed34..28c4cca66346 100644
--- a/sys-libs/libcxx/libcxx-15.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.1.9999.ebuild
@@ -23,16 +23,14 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
+LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	>=sys-devel/llvm-6
+	sys-devel/llvm:${LLVM_MAX_SLOT}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang
+		sys-devel/clang:${LLVM_MAX_SLOT}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -91,9 +89,7 @@ src_configure() {
 }
 
 multilib_src_configure() {
-	if use clang && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
+	if use clang; then
 		local -x CC=${CHOST}-clang
 		local -x CXX=${CHOST}-clang++
 		strip-unsupported-flags
@@ -139,9 +135,6 @@ multilib_src_configure() {
 	)
 
 	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)"

diff --git a/sys-libs/libcxx/libcxx-15.0.1.ebuild b/sys-libs/libcxx/libcxx-15.0.1.ebuild
index 838aac063945..79e6aec88593 100644
--- a/sys-libs/libcxx/libcxx-15.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.1.ebuild
@@ -23,16 +23,14 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
+LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	>=sys-devel/llvm-6
+	sys-devel/llvm:${LLVM_MAX_SLOT}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang
+		sys-devel/clang:${LLVM_MAX_SLOT}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -91,9 +89,7 @@ src_configure() {
 }
 
 multilib_src_configure() {
-	if use clang && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
+	if use clang; then
 		local -x CC=${CHOST}-clang
 		local -x CXX=${CHOST}-clang++
 		strip-unsupported-flags
@@ -139,9 +135,6 @@ multilib_src_configure() {
 	)
 
 	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)"

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index 07049e01ed34..28c4cca66346 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -23,16 +23,14 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
+LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	>=sys-devel/llvm-6
+	sys-devel/llvm:${LLVM_MAX_SLOT}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang
+		sys-devel/clang:${LLVM_MAX_SLOT}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -91,9 +89,7 @@ src_configure() {
 }
 
 multilib_src_configure() {
-	if use clang && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
+	if use clang; then
 		local -x CC=${CHOST}-clang
 		local -x CXX=${CHOST}-clang++
 		strip-unsupported-flags
@@ -139,9 +135,6 @@ multilib_src_configure() {
 	)
 
 	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)"

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
index 07049e01ed34..28c4cca66346 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
@@ -23,16 +23,14 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
+LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	>=sys-devel/llvm-6
+	sys-devel/llvm:${LLVM_MAX_SLOT}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang
+		sys-devel/clang:${LLVM_MAX_SLOT}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -91,9 +89,7 @@ src_configure() {
 }
 
 multilib_src_configure() {
-	if use clang && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
+	if use clang; then
 		local -x CC=${CHOST}-clang
 		local -x CXX=${CHOST}-clang++
 		strip-unsupported-flags
@@ -139,9 +135,6 @@ multilib_src_configure() {
 	)
 
 	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)"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-21  8:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-21  8:25 UTC (permalink / raw
  To: gentoo-commits

commit:     d1ead7d0f00a7d4c46d7397089cfd55f1576a606
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 21 08:24:21 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 21 08:25:06 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1ead7d0

sys-libs/libcxx: Remove 15.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-15.0.0.ebuild | 226 -----------------------------------
 2 files changed, 228 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index dac81fd3a607..853521d69088 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,6 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
-DIST llvm-project-15.0.0.src.tar.xz 112062796 BLAKE2B 947917b6c75cbd8882133dc01f57013523274962371ac5ae4a22b010f8a7d5d31288c1d9847bf19ba919fa3110fe34a8ff937107fe19bd064ed87bf4d08d8a51 SHA512 e5aacbe7574dcec62017cc03c9fa2ee4cf075125a3d6c3975c38f06e91adcebb1ff92bcf40c6dd67db087813c60b15a04f1424c713d751199518b58025ce87fc
-DIST llvm-project-15.0.0.src.tar.xz.sig 438 BLAKE2B 8eb12c259f94d8f867a31dbe05128adc1f9cc7ec8bcbdbe1738d2fad461f5d214e674f080f7f29b639a7a75f9c5b56c0f959f538697d647b94b97dc56b036e5f SHA512 4096464a46e07575b7cff448ff8bbc38fe972505f366b744419a06339cf32b93266b0fae5390879859041ce6710e4b675ed3ea7561d6a817623d7ece0e969661
 DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
 DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
 DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0

diff --git a/sys-libs/libcxx/libcxx-15.0.0.ebuild b/sys-libs/libcxx/libcxx-15.0.0.ebuild
deleted file mode 100644
index 838aac063945..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.0.ebuild
+++ /dev/null
@@ -1,226 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
-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] )
-"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="
-	${RDEPEND}
-	>=sys-devel/llvm-6
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/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 dev-lang/llvm; then
-		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
-}
-
-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 && ! tc-is-clang; then
-		# Only do this conditionally to allow overriding with
-		# e.g. CC=clang-13 in case of breakage
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
-		strip-unsupported-flags
-	fi
-
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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)"
-			-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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-26  7:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-26  7:36 UTC (permalink / raw
  To: gentoo-commits

commit:     d505bcc473935480b3d6b926bd6164308bffea10
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 26 06:48:54 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Sep 26 07:35:58 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d505bcc4

sys-libs/libcxx: Bump to 16.0.0_pre20220926

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild | 219 +++++++++++++++++++++++
 2 files changed, 220 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 853521d69088..21859d67a73b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,4 +5,5 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
 DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
 DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0
+DIST llvm-project-4f188ef89ce5a3bee21fd0b4e8fcdf7f030f64b2.tar.gz 168720595 BLAKE2B 10bd3ac4eea674fc171f17414f6892a681529b020a5d513e075920f7792fb31d6d4a3584679ebea24bc839c2a233459b935d368c7ea57c94ad27c7c81da05cff SHA512 77ae7eb57c8c50affb516581dabe3b31e342f7ed899440521b6738aeec3b6e795c50c078bbe0f483a070961c9b5b73a7bbe28e2f109e2ce69d238ddbda8e134f
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild
new file mode 100644
index 000000000000..28c4cca66346
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+LLVM_MAX_SLOT=${PV%%.*}
+DEPEND="
+	${RDEPEND}
+	sys-devel/llvm:${LLVM_MAX_SLOT}
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang:${LLVM_MAX_SLOT}
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-26  7:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-26  7:36 UTC (permalink / raw
  To: gentoo-commits

commit:     32aed9febb41012be5bae5764b6979f1374ae76f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 26 07:03:21 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Sep 26 07:36:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=32aed9fe

sys-libs/libcxx: 15.x live is now 15.0.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-15.0.1.9999.ebuild => libcxx-15.0.2.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.2.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-15.0.1.9999.ebuild
rename to sys-libs/libcxx/libcxx-15.0.2.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-26 15:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-26 15:58 UTC (permalink / raw
  To: gentoo-commits

commit:     426ed4f45a2cbabda11deca56b8156a7b4357406
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 26 15:57:24 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Sep 26 15:57:24 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=426ed4f4

sys-libs/libcxx: Remove 16.0.0_pre20220926, it is too broken

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild | 219 -----------------------
 2 files changed, 220 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 21859d67a73b..853521d69088 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,4 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
 DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
 DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0
-DIST llvm-project-4f188ef89ce5a3bee21fd0b4e8fcdf7f030f64b2.tar.gz 168720595 BLAKE2B 10bd3ac4eea674fc171f17414f6892a681529b020a5d513e075920f7792fb31d6d4a3584679ebea24bc839c2a233459b935d368c7ea57c94ad27c7c81da05cff SHA512 77ae7eb57c8c50affb516581dabe3b31e342f7ed899440521b6738aeec3b6e795c50c078bbe0f483a070961c9b5b73a7bbe28e2f109e2ce69d238ddbda8e134f
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild
deleted file mode 100644
index 28c4cca66346..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20220926.ebuild
+++ /dev/null
@@ -1,219 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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] )
-"
-LLVM_MAX_SLOT=${PV%%.*}
-DEPEND="
-	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/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 dev-lang/llvm; then
-		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
-}
-
-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 against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-09-30 14:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-09-30 14:52 UTC (permalink / raw
  To: gentoo-commits

commit:     124957cbf143bd2a255d1cce55160d276e63541e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 30 08:37:34 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep 30 14:52:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=124957cb

sys-libs/libcxx: Add 16.0.0_pre20220930 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild | 219 +++++++++++++++++++++++
 2 files changed, 220 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 853521d69088..da24472f8b24 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,5 +4,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
 DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
+DIST llvm-project-215c9fa4deac9ec6b4e504843830551f03b60620.tar.gz 168942763 BLAKE2B 545c7c372c38667b7d811753464e91134aae600060d9054979eab8735d535a72d6bbb33a6008dc81f3b14513f58791ca3b8c3068e62ff146ccb14f32abb41a32 SHA512 d0c244357650ef5d56bc7afd836cd747cc2cce92d5f7fb4ddec3414e5bafe4e611acb2a7ff42343c184caad14a30fa9a6ced7e493df3ceb06fe8f9445aeb5a9b
 DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild
new file mode 100644
index 000000000000..28c4cca66346
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+LLVM_MAX_SLOT=${PV%%.*}
+DEPEND="
+	${RDEPEND}
+	sys-devel/llvm:${LLVM_MAX_SLOT}
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang:${LLVM_MAX_SLOT}
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-03 13:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-03 13:04 UTC (permalink / raw
  To: gentoo-commits

commit:     7d3f6da7670c462d054832b745b0a7817f882399
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  3 12:46:07 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  3 12:46:07 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d3f6da7

sys-libs/libcxx: Remove 16.0.0_pre20220918

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild | 219 -----------------------
 2 files changed, 220 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index da24472f8b24..20cdce56fe8a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,4 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
 DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
 DIST llvm-project-215c9fa4deac9ec6b4e504843830551f03b60620.tar.gz 168942763 BLAKE2B 545c7c372c38667b7d811753464e91134aae600060d9054979eab8735d535a72d6bbb33a6008dc81f3b14513f58791ca3b8c3068e62ff146ccb14f32abb41a32 SHA512 d0c244357650ef5d56bc7afd836cd747cc2cce92d5f7fb4ddec3414e5bafe4e611acb2a7ff42343c184caad14a30fa9a6ced7e493df3ceb06fe8f9445aeb5a9b
-DIST llvm-project-303526ef3aa211c1930be2885deae15eeeda3b18.tar.gz 167503164 BLAKE2B 143c72c58517b3e40ee74c1a0df47bfd0d0f9e71926bc8c39a007e674a08df95d0ffe05f523f97e4409b248349e13719cabbc7ac6938feebe702959e84a07243 SHA512 9aa5c86de6c6be1d26c085eb29ea283429e41330e937e5fdbd545bb3f5b996ac82cd6268701fcbbd202e89ee35f2b67e595fc595bb7383778e9ad5fd52ca10a0
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
deleted file mode 100644
index 28c4cca66346..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20220918.ebuild
+++ /dev/null
@@ -1,219 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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] )
-"
-LLVM_MAX_SLOT=${PV%%.*}
-DEPEND="
-	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/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 dev-lang/llvm; then
-		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
-}
-
-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 against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-04 17:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-04 17:14 UTC (permalink / raw
  To: gentoo-commits

commit:     9fadc31ec7287ca61e848e1b4bf3969aa3287830
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  4 11:38:50 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct  4 17:14:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9fadc31e

sys-libs/libcxx: Bump to 15.0.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.2.ebuild | 219 +++++++++++++++++++++++++++++++++++
 2 files changed, 221 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 20cdce56fe8a..ec3c7b7bd5cb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,5 +4,7 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.1.src.tar.xz 112068688 BLAKE2B 8fd6690445f7cbc8b47a7c1dd1f2c4fbc39f9a97f9d4a0015d466726454b090b0d1ff9b0d926eba7065e84782901687f74e6540a36dc6656a93f3c92c7bc7e06 SHA512 cef84bc173118a30db3ece5e5c6f874bf689c77afc40a4792fdcb7556555ac14a8e6de1dc811755405e5d162d63bc69abaecba30d220a42765160d69f0073fda
 DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83b3a90c856e9402dd5af700f9af43813f68d20c21b9112dd95e9f6f10609ee51ed5aaf77edb96ca16fb93136b8aea432affd3 SHA512 cbf2570840d8dc12f6436c495a23cf9d439ee195755c01a6d1d5bcc20133599dc956dc43a0f5016698e3c9a960826f5f3c2840a73f993467e275856a67999fda
+DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
+DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
 DIST llvm-project-215c9fa4deac9ec6b4e504843830551f03b60620.tar.gz 168942763 BLAKE2B 545c7c372c38667b7d811753464e91134aae600060d9054979eab8735d535a72d6bbb33a6008dc81f3b14513f58791ca3b8c3068e62ff146ccb14f32abb41a32 SHA512 d0c244357650ef5d56bc7afd836cd747cc2cce92d5f7fb4ddec3414e5bafe4e611acb2a7ff42343c184caad14a30fa9a6ced7e493df3ceb06fe8f9445aeb5a9b
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.2.ebuild b/sys-libs/libcxx/libcxx-15.0.2.ebuild
new file mode 100644
index 000000000000..79e6aec88593
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.2.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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] )
+"
+LLVM_MAX_SLOT=${PV%%.*}
+DEPEND="
+	${RDEPEND}
+	sys-devel/llvm:${LLVM_MAX_SLOT}
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang:${LLVM_MAX_SLOT}
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-06 20:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-06 20:11 UTC (permalink / raw
  To: gentoo-commits

commit:     2a3bb6c2ec85930f8839cf806a8c430acd255813
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  6 16:18:57 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct  6 20:11:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a3bb6c2

sys-libs/libcxx: Bump to 16.0.0_pre20221006

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild | 219 +++++++++++++++++++++++
 2 files changed, 220 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ec3c7b7bd5cb..36cf07ef7bdd 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,5 @@ DIST llvm-project-15.0.1.src.tar.xz.sig 438 BLAKE2B d8f634adab531bb19178fb27bc83
 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
 DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
 DIST llvm-project-215c9fa4deac9ec6b4e504843830551f03b60620.tar.gz 168942763 BLAKE2B 545c7c372c38667b7d811753464e91134aae600060d9054979eab8735d535a72d6bbb33a6008dc81f3b14513f58791ca3b8c3068e62ff146ccb14f32abb41a32 SHA512 d0c244357650ef5d56bc7afd836cd747cc2cce92d5f7fb4ddec3414e5bafe4e611acb2a7ff42343c184caad14a30fa9a6ced7e493df3ceb06fe8f9445aeb5a9b
+DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
new file mode 100644
index 000000000000..28c4cca66346
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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] )
+"
+LLVM_MAX_SLOT=${PV%%.*}
+DEPEND="
+	${RDEPEND}
+	sys-devel/llvm:${LLVM_MAX_SLOT}
+"
+BDEPEND="
+	clang? (
+		sys-devel/clang:${LLVM_MAX_SLOT}
+	)
+	!test? (
+		${PYTHON_DEPS}
+	)
+	test? (
+		>=dev-util/cmake-3.16
+		sys-devel/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 dev-lang/llvm; then
+		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
+}
+
+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 against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-07  9:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-07  9:01 UTC (permalink / raw
  To: gentoo-commits

commit:     8bebea5114a2743cacd8ad6b76bc287659c36250
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  7 08:56:45 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  7 09:00:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8bebea51

sys-libs/libcxx: Remove 16.0.0_pre20220930

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild | 219 -----------------------
 2 files changed, 220 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index fe03eedb5d7b..8e6f7c40623e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,6 +4,5 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
 DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
-DIST llvm-project-215c9fa4deac9ec6b4e504843830551f03b60620.tar.gz 168942763 BLAKE2B 545c7c372c38667b7d811753464e91134aae600060d9054979eab8735d535a72d6bbb33a6008dc81f3b14513f58791ca3b8c3068e62ff146ccb14f32abb41a32 SHA512 d0c244357650ef5d56bc7afd836cd747cc2cce92d5f7fb4ddec3414e5bafe4e611acb2a7ff42343c184caad14a30fa9a6ced7e493df3ceb06fe8f9445aeb5a9b
 DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild
deleted file mode 100644
index 28c4cca66346..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20220930.ebuild
+++ /dev/null
@@ -1,219 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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] )
-"
-LLVM_MAX_SLOT=${PV%%.*}
-DEPEND="
-	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/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 dev-lang/llvm; then
-		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
-}
-
-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 against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	fi
-
-	# 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=${want_compiler_rt}
-	)
-
-	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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-07 16:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-07 16:41 UTC (permalink / raw
  To: gentoo-commits

commit:     f557f797b99a8eaf2a482a89ec24f64a3e9326b8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  7 16:38:22 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  7 16:41:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f557f797

sys-libs/libcxx: Use the new version vars

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.2.9999.ebuild        | 7 +++----
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild        | 7 +++----
 sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild | 7 +++----
 3 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.2.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.2.9999.ebuild
index 28c4cca66346..c28920c09043 100644
--- a/sys-libs/libcxx/libcxx-15.0.2.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.2.9999.ebuild
@@ -23,14 +23,13 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
+	sys-devel/llvm:${LLVM_MAJOR}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
+		sys-devel/clang:${LLVM_MAJOR}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -55,7 +54,7 @@ pkg_setup() {
 	# bootstrap-prefix to set the appropriate path vars to LLVM instead
 	# of using llvm_pkg_setup.
 	if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
-		llvm_pkg_setup
+		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup
 

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index 28c4cca66346..c28920c09043 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -23,14 +23,13 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
+	sys-devel/llvm:${LLVM_MAJOR}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
+		sys-devel/clang:${LLVM_MAJOR}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -55,7 +54,7 @@ pkg_setup() {
 	# bootstrap-prefix to set the appropriate path vars to LLVM instead
 	# of using llvm_pkg_setup.
 	if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
-		llvm_pkg_setup
+		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup
 

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
index 28c4cca66346..c28920c09043 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
@@ -23,14 +23,13 @@ RDEPEND="
 	)
 	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
 "
-LLVM_MAX_SLOT=${PV%%.*}
 DEPEND="
 	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
+	sys-devel/llvm:${LLVM_MAJOR}
 "
 BDEPEND="
 	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
+		sys-devel/clang:${LLVM_MAJOR}
 	)
 	!test? (
 		${PYTHON_DEPS}
@@ -55,7 +54,7 @@ pkg_setup() {
 	# bootstrap-prefix to set the appropriate path vars to LLVM instead
 	# of using llvm_pkg_setup.
 	if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then
-		llvm_pkg_setup
+		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-10  8:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-10  8:34 UTC (permalink / raw
  To: gentoo-commits

commit:     631ac938b63dd5a4ed0aba486503fe914fe7edc1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 10 08:31:29 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 10 08:34:20 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=631ac938

sys-libs/libcxx: 15.x is now 15.0.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-15.0.2.9999.ebuild => libcxx-15.0.3.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.2.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-15.0.2.9999.ebuild
rename to sys-libs/libcxx/libcxx-15.0.3.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-10 20:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-10 20:10 UTC (permalink / raw
  To: gentoo-commits

commit:     f79d618b3ea9644ba7ab3f5a2a77f59d50336808
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 10 14:42:51 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 10 20:10:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f79d618b

sys-libs/libcxx: Bump to 16.0.0_pre20221010

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild | 218 +++++++++++++++++++++++
 2 files changed, 219 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8e6f7c40623e..a65613492218 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,4 +5,5 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
 DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
 DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243
+DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
new file mode 100644
index 000000000000..c28920c09043
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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 against compiler-rt instead of libgcc if this is what clang does
+	local want_compiler_rt=OFF
+	if tc-is-clang; then
+		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			${LDFLAGS} -print-libgcc-file-name)
+		if [[ ${compiler_rt} == *libclang_rt* ]]; then
+			want_compiler_rt=ON
+		fi
+	fi
+
+	# 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=${want_compiler_rt}
+	)
+
+	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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-10 20:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-10 20:52 UTC (permalink / raw
  To: gentoo-commits

commit:     e968fbf5f2132f5ca82b5889f08bec6c2fb65082
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 10 20:46:03 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 10 20:52:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e968fbf5

sys-libs/libcxx: Use tc-get-c-rtlib

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.ebuild             | 12 ++++--------
 sys-libs/libcxx/libcxx-14.0.6.ebuild             | 12 ++++--------
 sys-libs/libcxx/libcxx-15.0.2.ebuild             | 14 ++++----------
 sys-libs/libcxx/libcxx-15.0.3.9999.ebuild        | 14 ++++----------
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild        | 14 ++++----------
 sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild | 14 ++++----------
 sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild | 14 ++++----------
 7 files changed, 28 insertions(+), 66 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
index f7db45b21571..3021d859b872 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild
@@ -89,14 +89,10 @@ multilib_src_configure() {
 		extra_libs+=( -lunwind )
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
+		if [[ $(tc-get-c-rtlib) == compiler-rt ]]; then
+			want_gcc_s=OFF
+			want_compiler_rt=ON
+			extra_libs+=( "${compiler_rt}" )
 		fi
 	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
 		# clang-based darwin prefix disables libunwind useflag during

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 47501e5ea293..063546f816be 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -97,14 +97,10 @@ multilib_src_configure() {
 		extra_libs+=( -lunwind )
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
+		if [[ $(tc-get-c-rtlib) == compiler-rt ]]; then
+			want_gcc_s=OFF
+			want_compiler_rt=ON
+			extra_libs+=( "${compiler_rt}" )
 		fi
 	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
 		# clang-based darwin prefix disables libunwind useflag during

diff --git a/sys-libs/libcxx/libcxx-15.0.2.ebuild b/sys-libs/libcxx/libcxx-15.0.2.ebuild
index 79e6aec88593..275d229a612a 100644
--- a/sys-libs/libcxx/libcxx-15.0.2.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.2.ebuild
@@ -95,15 +95,9 @@ multilib_src_configure() {
 		strip-unsupported-flags
 	fi
 
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	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 )
@@ -131,7 +125,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
 	)
 
 	if use test; then

diff --git a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
index c28920c09043..6bcf1a20c831 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
@@ -94,15 +94,9 @@ multilib_src_configure() {
 		strip-unsupported-flags
 	fi
 
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	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 )
@@ -130,7 +124,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
 	)
 
 	if use test; then

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index c28920c09043..6bcf1a20c831 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -94,15 +94,9 @@ multilib_src_configure() {
 		strip-unsupported-flags
 	fi
 
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	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 )
@@ -130,7 +124,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
 	)
 
 	if use test; then

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
index c28920c09043..6bcf1a20c831 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
@@ -94,15 +94,9 @@ multilib_src_configure() {
 		strip-unsupported-flags
 	fi
 
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	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 )
@@ -130,7 +124,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
 	)
 
 	if use test; then

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
index c28920c09043..6bcf1a20c831 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
@@ -94,15 +94,9 @@ multilib_src_configure() {
 		strip-unsupported-flags
 	fi
 
-	# link against compiler-rt instead of libgcc if this is what clang does
-	local want_compiler_rt=OFF
-	if tc-is-clang; then
-		local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			${LDFLAGS} -print-libgcc-file-name)
-		if [[ ${compiler_rt} == *libclang_rt* ]]; then
-			want_compiler_rt=ON
-		fi
-	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 )
@@ -130,7 +124,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
 		-DLIBCXX_INCLUDE_BENCHMARKS=OFF
 		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
+		-DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
 	)
 
 	if use test; then


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-11 15:48 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-11 15:48 UTC (permalink / raw
  To: gentoo-commits

commit:     b576af920e4c06b92d124feeefc00b9c9f51d80d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 11 15:39:30 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 11 15:40:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b576af92

sys-libs/libcxx: Partially revert "Use tc-get-c-rtlib"

The older versions require clang_rt path, so restore the old code.

Reverts: e968fbf5f2132f5ca82b5889f08bec6c2fb65082
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-13.0.1.ebuild | 12 ++++++++----
 sys-libs/libcxx/libcxx-14.0.6.ebuild | 12 ++++++++----
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
index 3021d859b872..f7db45b21571 100644
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild
@@ -89,10 +89,14 @@ multilib_src_configure() {
 		extra_libs+=( -lunwind )
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
-		if [[ $(tc-get-c-rtlib) == compiler-rt ]]; then
-			want_gcc_s=OFF
-			want_compiler_rt=ON
-			extra_libs+=( "${compiler_rt}" )
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
 		# clang-based darwin prefix disables libunwind useflag during

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 063546f816be..47501e5ea293 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -97,10 +97,14 @@ multilib_src_configure() {
 		extra_libs+=( -lunwind )
 		# if we're using libunwind and clang with compiler-rt, we want
 		# to link to compiler-rt instead of -lgcc_s
-		if [[ $(tc-get-c-rtlib) == compiler-rt ]]; then
-			want_gcc_s=OFF
-			want_compiler_rt=ON
-			extra_libs+=( "${compiler_rt}" )
+		if tc-is-clang; then
+			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
+			   ${LDFLAGS} -print-libgcc-file-name)
+			if [[ ${compiler_rt} == *libclang_rt* ]]; then
+				want_gcc_s=OFF
+				want_compiler_rt=ON
+				extra_libs+=( "${compiler_rt}" )
+			fi
 		fi
 	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
 		# clang-based darwin prefix disables libunwind useflag during


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-11 16:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-11 16:12 UTC (permalink / raw
  To: gentoo-commits

commit:     7715c5c8152fe9a199badc33d4bc0e65fe978134
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 11 16:11:24 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 11 16:12:00 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7715c5c8

sys-libs/libcxx: Remove 16.0.0_pre20221006

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild | 212 -----------------------
 2 files changed, 213 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a65613492218..e66b4b7be0aa 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,6 +4,5 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
 DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
-DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243
 DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
deleted file mode 100644
index 6bcf1a20c831..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-16 18:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-16 18:59 UTC (permalink / raw
  To: gentoo-commits

commit:     9fbf94d223b5ce8446afd15af087c26b8f53edd6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 16 13:47:46 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 16 18:59:48 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9fbf94d2

sys-libs/libcxx: Add 16.0.0_pre20221016 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild | 212 +++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e66b4b7be0aa..bb50c6334e17 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,6 +2,7 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
+DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
 DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
 DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
new file mode 100644
index 000000000000..6bcf1a20c831
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}
+
+pkg_postinst() {
+	elog "This package (${PN}) is mainly intended as a replacement for the C++"
+	elog "standard library when using clang."
+	elog "To use it, instead of libstdc++, use:"
+	elog "    clang++ -stdlib=libc++"
+	elog "to compile your C++ programs."
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-16 19:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-16 19:35 UTC (permalink / raw
  To: gentoo-commits

commit:     60405fb4c53d859ebe3f3ba3a49d3a0bf56c0196
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 16 19:22:01 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 16 19:35:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60405fb4

sys-libs/libcxx: Remove redundant postinst message

libcxx is not the only runtime installed along with clang, explicitly
passing -stdlib= is not the only (or the best) way of using it, and it
is uncommon for a package to tell users how to use it in postinst
anyway.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.3.9999.ebuild        | 8 --------
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild        | 8 --------
 sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild | 8 --------
 3 files changed, 24 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
index 6bcf1a20c831..9b9bd5a335cb 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
@@ -202,11 +202,3 @@ gen_shared_ldscript() {
 
 	gen_ldscript "${deps[*]}" > lib/libc++.so || die
 }
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index 6bcf1a20c831..9b9bd5a335cb 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -202,11 +202,3 @@ gen_shared_ldscript() {
 
 	gen_ldscript "${deps[*]}" > lib/libc++.so || die
 }
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
index 6bcf1a20c831..9b9bd5a335cb 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
@@ -202,11 +202,3 @@ gen_shared_ldscript() {
 
 	gen_ldscript "${deps[*]}" > lib/libc++.so || die
 }
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-17 15:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-17 15:41 UTC (permalink / raw
  To: gentoo-commits

commit:     fffbaa1bee8586a507f24916842cccb8060c2977
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 17 15:40:34 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 17 15:40:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fffbaa1b

sys-libs/libcxx: Remove inactive maintainer

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/metadata.xml | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/sys-libs/libcxx/metadata.xml b/sys-libs/libcxx/metadata.xml
index 81bfc59aae3f..99ad205f6789 100644
--- a/sys-libs/libcxx/metadata.xml
+++ b/sys-libs/libcxx/metadata.xml
@@ -1,10 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer type="person">
-		<email>aballier@gentoo.org</email>
-		<name>Alexis Ballier</name>
-	</maintainer>
 	<maintainer type="project">
 		<email>llvm@gentoo.org</email>
 		<name>LLVM Project</name>


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-18 15:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-18 15:00 UTC (permalink / raw
  To: gentoo-commits

commit:     95276a9b459901d34fde2807854ebc83182186ca
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 18 10:50:58 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 18 15:00:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95276a9b

sys-libs/libcxx: Bump to 15.0.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.3.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index bb50c6334e17..aa71c78ca1a9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,7 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
 DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
+DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
+DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
 DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.3.ebuild b/sys-libs/libcxx/libcxx-15.0.3.ebuild
new file mode 100644
index 000000000000..8b5e382b8889
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.3.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-23 11:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-23 11:35 UTC (permalink / raw
  To: gentoo-commits

commit:     60dd0f091ed86315e306f9c373ce9a1c0aa431ee
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 23 11:35:01 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 23 11:35:01 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60dd0f09

sys-libs/libcxx: Remove 15.0.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-15.0.2.ebuild | 213 -----------------------------------
 2 files changed, 215 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index aa71c78ca1a9..9b118f1a42a3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,8 +3,6 @@ DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
-DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c
-DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8
 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
 DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20

diff --git a/sys-libs/libcxx/libcxx-15.0.2.ebuild b/sys-libs/libcxx/libcxx-15.0.2.ebuild
deleted file mode 100644
index 275d229a612a..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.2.ebuild
+++ /dev/null
@@ -1,213 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
-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] )
-"
-LLVM_MAX_SLOT=${PV%%.*}
-DEPEND="
-	${RDEPEND}
-	sys-devel/llvm:${LLVM_MAX_SLOT}
-"
-BDEPEND="
-	clang? (
-		sys-devel/clang:${LLVM_MAX_SLOT}
-	)
-	!test? (
-		${PYTHON_DEPS}
-	)
-	test? (
-		>=dev-util/cmake-3.16
-		sys-devel/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 dev-lang/llvm; then
-		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
-}
-
-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}
-	)
-
-	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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-23 11:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-23 11:43 UTC (permalink / raw
  To: gentoo-commits

commit:     bb99f31c3707d22cd7c7bd69730fb31e13763753
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 23 11:40:03 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 23 11:43:13 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb99f31c

sys-libs/libcxx: Remove 16.0.0_pre20221010

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild | 212 -----------------------
 2 files changed, 213 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9b118f1a42a3..99e4d67fc0d0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,4 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
-DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
deleted file mode 100644
index 6bcf1a20c831..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-23 15:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-23 15:17 UTC (permalink / raw
  To: gentoo-commits

commit:     27219de2f3f926e71fd45593eb8bb1a0aef40d88
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 23 14:52:14 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 23 14:56:29 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=27219de2

sys-libs/libcxx: Add 16.0.0_pre20221023 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 99e4d67fc0d0..5925b5932879 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,4 +5,5 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
+DIST llvm-project-b34ea582774c057d9bf5591174d683fd3d8aa02b.tar.gz 169735900 BLAKE2B d3a82a07f855b038071fc8eb3f41a88b4c220a577219985ecddeb9a535ea8b159dbad575699997d90a49db74c074b5f4354ad707e91d6934daaa7319e0d8ee9b SHA512 3f5525c7d893bdac701cff4cf82dafc31608920d788d9b7401654f320b2432528cf4ae8ef013182807b3dc0c5b758c71f1efeedb672dd47fdb8aa6f434dfb583
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-24 13:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-10-24 13:16 UTC (permalink / raw
  To: gentoo-commits

commit:     901c085ef77c1c0d1308fbbf1b4a9ecb3ac2fc9a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 24 11:55:39 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct 24 13:16:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=901c085e

sys-libs/libcxx: Bump to 15.0.4.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-15.0.3.9999.ebuild => libcxx-15.0.4.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.4.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-15.0.3.9999.ebuild
rename to sys-libs/libcxx/libcxx-15.0.4.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-25 10:15 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-10-25 10:15 UTC (permalink / raw
  To: gentoo-commits

commit:     88f6df80cb29de33f3981c95ffe8118fbe73617d
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 25 10:15:01 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Tue Oct 25 10:15:01 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88f6df80

sys-libs/libcxx: Stabilize 15.0.3 sparc, #878087

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.ebuild b/sys-libs/libcxx/libcxx-15.0.3.ebuild
index 8b5e382b8889..92d3ede4f699 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-26 17:10 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-10-26 17:10 UTC (permalink / raw
  To: gentoo-commits

commit:     ed0322e793ec3bd582c779d3862d62d44584c654
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 26 17:10:06 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Wed Oct 26 17:10:06 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed0322e7

sys-libs/libcxx: Stabilize 15.0.3 arm64, #878087

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.ebuild b/sys-libs/libcxx/libcxx-15.0.3.ebuild
index 92d3ede4f699..3dd73c28029b 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-10-29  7:22 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-10-29  7:22 UTC (permalink / raw
  To: gentoo-commits

commit:     ae1d7b933d1d37ad9bac97a37671ce0ef5a33798
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 29 07:22:08 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Sat Oct 29 07:22:08 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae1d7b93

sys-libs/libcxx: Stabilize 15.0.3 arm, #878087

Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.ebuild b/sys-libs/libcxx/libcxx-15.0.3.ebuild
index 3dd73c28029b..2cad4114eeaf 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 arm arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-02 13:50 Agostino Sarubbo
  0 siblings, 0 replies; 608+ messages in thread
From: Agostino Sarubbo @ 2022-11-02 13:50 UTC (permalink / raw
  To: gentoo-commits

commit:     4c2ced73be4b4beddb95854a03bd47ac9ed8205c
Author:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  2 13:49:54 2022 +0000
Commit:     Agostino Sarubbo <ago <AT> gentoo <DOT> org>
CommitDate: Wed Nov  2 13:49:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c2ced73

sys-libs/libcxx: Stabilize 15.0.3 x86, #878087

Signed-off-by: Agostino Sarubbo <ago <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.ebuild b/sys-libs/libcxx/libcxx-15.0.3.ebuild
index 2cad4114eeaf..c7618ab9a1fd 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 arm arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-03 14:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-03 14:50 UTC (permalink / raw
  To: gentoo-commits

commit:     e1cd8e782da8eef55305211e3d3150dfdbc0ef4f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  2 19:55:19 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Nov  3 14:49:58 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1cd8e78

sys-libs/libcxx: Bump to 15.0.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.4.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5925b5932879..5d5f3c1f22c2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,7 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
+DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
+DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
 DIST llvm-project-b34ea582774c057d9bf5591174d683fd3d8aa02b.tar.gz 169735900 BLAKE2B d3a82a07f855b038071fc8eb3f41a88b4c220a577219985ecddeb9a535ea8b159dbad575699997d90a49db74c074b5f4354ad707e91d6934daaa7319e0d8ee9b SHA512 3f5525c7d893bdac701cff4cf82dafc31608920d788d9b7401654f320b2432528cf4ae8ef013182807b3dc0c5b758c71f1efeedb672dd47fdb8aa6f434dfb583
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.4.ebuild b/sys-libs/libcxx/libcxx-15.0.4.ebuild
new file mode 100644
index 000000000000..8b5e382b8889
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.4.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-04 10:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-04 10:31 UTC (permalink / raw
  To: gentoo-commits

commit:     e4d496147157a91cd648abb6ca145b8a571f9a58
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  4 10:30:26 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov  4 10:30:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4d49614

sys-libs/libcxx: Remove 16.0.0_pre20221016

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5d5f3c1f22c2..033554c00113 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,7 +2,6 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
-DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04
 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
 DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221016.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-04 17:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-04 17:14 UTC (permalink / raw
  To: gentoo-commits

commit:     8db0920ce450576cf6193ecef49f06599b9366e5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Nov  4 14:19:54 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Nov  4 17:14:50 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8db0920c

sys-libs/libcxx: Add 16.0.0_pre20221104

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 033554c00113..7b0146eb1a0c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,5 +6,6 @@ DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
 DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
 DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
+DIST llvm-project-1fb186198af5f183dde053c1396f899567755d64.tar.gz 170328817 BLAKE2B c79199044e8d636127d1d163ceea856c1bcb1d59c892e9c72869ab788b4feb23f8c28585ac761764b4e29b883c61e43be9341610a523d8b64471200bb3aecfaa SHA512 8b366dc70506ceb70a5584ad051e100fa1cc620388fc757536ef775d102b4baaac016d4f62dbc8b1d9dd00b587622a25d9da735196d336faf35d611145cf5fdc
 DIST llvm-project-b34ea582774c057d9bf5591174d683fd3d8aa02b.tar.gz 169735900 BLAKE2B d3a82a07f855b038071fc8eb3f41a88b4c220a577219985ecddeb9a535ea8b159dbad575699997d90a49db74c074b5f4354ad707e91d6934daaa7319e0d8ee9b SHA512 3f5525c7d893bdac701cff4cf82dafc31608920d788d9b7401654f320b2432528cf4ae8ef013182807b3dc0c5b758c71f1efeedb672dd47fdb8aa6f434dfb583
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-05 11:33 Joonas Niilola
  0 siblings, 0 replies; 608+ messages in thread
From: Joonas Niilola @ 2022-11-05 11:33 UTC (permalink / raw
  To: gentoo-commits

commit:     2267be9f325fda827a383cd6eeaf2757a7a302e5
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  5 11:31:58 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sat Nov  5 11:33:48 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2267be9f

sys-libs/libcxx: Stabilize 15.0.3 amd64, #878087

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.3.ebuild b/sys-libs/libcxx/libcxx-15.0.3.ebuild
index c7618ab9a1fd..62eab2d1524f 100644
--- a/sys-libs/libcxx/libcxx-15.0.3.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.3.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-10 16:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-10 16:18 UTC (permalink / raw
  To: gentoo-commits

commit:     77219201199b6c6ede5dce9e5804aea7459ad7cf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 10 16:16:45 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Nov 10 16:17:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77219201

sys-libs/libcxx: Remove 16.0.0_pre20221023

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7b0146eb1a0c..e0a0bdcefd6d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,5 +7,4 @@ DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf
 DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
 DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
 DIST llvm-project-1fb186198af5f183dde053c1396f899567755d64.tar.gz 170328817 BLAKE2B c79199044e8d636127d1d163ceea856c1bcb1d59c892e9c72869ab788b4feb23f8c28585ac761764b4e29b883c61e43be9341610a523d8b64471200bb3aecfaa SHA512 8b366dc70506ceb70a5584ad051e100fa1cc620388fc757536ef775d102b4baaac016d4f62dbc8b1d9dd00b587622a25d9da735196d336faf35d611145cf5fdc
-DIST llvm-project-b34ea582774c057d9bf5591174d683fd3d8aa02b.tar.gz 169735900 BLAKE2B d3a82a07f855b038071fc8eb3f41a88b4c220a577219985ecddeb9a535ea8b159dbad575699997d90a49db74c074b5f4354ad707e91d6934daaa7319e0d8ee9b SHA512 3f5525c7d893bdac701cff4cf82dafc31608920d788d9b7401654f320b2432528cf4ae8ef013182807b3dc0c5b758c71f1efeedb672dd47fdb8aa6f434dfb583
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221023.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-13 15:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-13 15:40 UTC (permalink / raw
  To: gentoo-commits

commit:     925d77adc65352a3c4f743b527fb4bccfd2ad219
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 13 13:25:27 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 13 15:38:57 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=925d77ad

sys-libs/libcxx: Add 16.0.0_pre20221113 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221113.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e0a0bdcefd6d..506b734e8db3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,5 @@ DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf
 DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
 DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
 DIST llvm-project-1fb186198af5f183dde053c1396f899567755d64.tar.gz 170328817 BLAKE2B c79199044e8d636127d1d163ceea856c1bcb1d59c892e9c72869ab788b4feb23f8c28585ac761764b4e29b883c61e43be9341610a523d8b64471200bb3aecfaa SHA512 8b366dc70506ceb70a5584ad051e100fa1cc620388fc757536ef775d102b4baaac016d4f62dbc8b1d9dd00b587622a25d9da735196d336faf35d611145cf5fdc
+DIST llvm-project-f6f1fd443f48f417de9dfe23353055f1b20d87ef.tar.gz 170625743 BLAKE2B 3add45d7e2f26659f9602b5ccc034033610921ebeb2d6d69d6f5a3d1e3af224d3f5fd42e411d1fe0d5f8249c2ad995d41a236a87eba5a72ea9b20c112faa4c2f SHA512 2b57132d156f3d6d96802f617fff3eec0df6a3b5077ddcc4f31c87829e617f3065074d80e9d26c8c1c64322e76a09321fdfc8ae1d7a84f5da9f8606125e3b635
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221113.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221113.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221113.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-16  7:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-16  7:16 UTC (permalink / raw
  To: gentoo-commits

commit:     4ee251982512b9067643fa6f4bd0d7a852a8c5ab
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 16 07:16:10 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 16 07:16:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4ee25198

sys-libs/libcxx: Stable-live is now 15.0.5.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-15.0.4.9999.ebuild => libcxx-15.0.5.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.4.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.5.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-15.0.4.9999.ebuild
rename to sys-libs/libcxx/libcxx-15.0.5.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-16 12:05 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-16 12:05 UTC (permalink / raw
  To: gentoo-commits

commit:     16602102eba96509de0c88a5022747a0b0dc9e64
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 16 07:22:58 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 16 12:05:19 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16602102

sys-libs/libcxx: Bump to 15.0.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.5.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 506b734e8db3..846114a95dcd 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,8 @@ DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
 DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
 DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
+DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
+DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-1fb186198af5f183dde053c1396f899567755d64.tar.gz 170328817 BLAKE2B c79199044e8d636127d1d163ceea856c1bcb1d59c892e9c72869ab788b4feb23f8c28585ac761764b4e29b883c61e43be9341610a523d8b64471200bb3aecfaa SHA512 8b366dc70506ceb70a5584ad051e100fa1cc620388fc757536ef775d102b4baaac016d4f62dbc8b1d9dd00b587622a25d9da735196d336faf35d611145cf5fdc
 DIST llvm-project-f6f1fd443f48f417de9dfe23353055f1b20d87ef.tar.gz 170625743 BLAKE2B 3add45d7e2f26659f9602b5ccc034033610921ebeb2d6d69d6f5a3d1e3af224d3f5fd42e411d1fe0d5f8249c2ad995d41a236a87eba5a72ea9b20c112faa4c2f SHA512 2b57132d156f3d6d96802f617fff3eec0df6a3b5077ddcc4f31c87829e617f3065074d80e9d26c8c1c64322e76a09321fdfc8ae1d7a84f5da9f8606125e3b635
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.5.ebuild b/sys-libs/libcxx/libcxx-15.0.5.ebuild
new file mode 100644
index 000000000000..8b5e382b8889
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.5.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-16 12:32 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-16 12:32 UTC (permalink / raw
  To: gentoo-commits

commit:     5ef9dc30494e0e22c37cacb21b19973242817c12
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 16 12:28:54 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 16 12:32:14 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5ef9dc30

sys-libs/libcxx: Remove 16.0.0_pre20221104

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 846114a95dcd..f244a0a88f04 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,6 +8,5 @@ DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baff
 DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
 DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
-DIST llvm-project-1fb186198af5f183dde053c1396f899567755d64.tar.gz 170328817 BLAKE2B c79199044e8d636127d1d163ceea856c1bcb1d59c892e9c72869ab788b4feb23f8c28585ac761764b4e29b883c61e43be9341610a523d8b64471200bb3aecfaa SHA512 8b366dc70506ceb70a5584ad051e100fa1cc620388fc757536ef775d102b4baaac016d4f62dbc8b1d9dd00b587622a25d9da735196d336faf35d611145cf5fdc
 DIST llvm-project-f6f1fd443f48f417de9dfe23353055f1b20d87ef.tar.gz 170625743 BLAKE2B 3add45d7e2f26659f9602b5ccc034033610921ebeb2d6d69d6f5a3d1e3af224d3f5fd42e411d1fe0d5f8249c2ad995d41a236a87eba5a72ea9b20c112faa4c2f SHA512 2b57132d156f3d6d96802f617fff3eec0df6a3b5077ddcc4f31c87829e617f3065074d80e9d26c8c1c64322e76a09321fdfc8ae1d7a84f5da9f8606125e3b635
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221104.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-20 16:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-20 16:43 UTC (permalink / raw
  To: gentoo-commits

commit:     68cd0c380d0da25bc3b89c21336722e3e736a5af
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 20 06:07:37 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 20 16:42:12 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68cd0c38

sys-libs/libcxx: Add 16.0.0_pre20221120 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f244a0a88f04..2558d68a4a3d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,6 @@ DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baff
 DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
 DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
+DIST llvm-project-7b91798a5d3a8432b296778da4efe169012fb7b4.tar.gz 170989337 BLAKE2B 1ab79554a05f8d7a74c0b4bab319c30375475d3fd089764733744fde55c65eb38967cdb19e5b0211a1543549c2bfc3c0f3d43facb7e041f51988e8a65e4448f3 SHA512 4c4d3a748b967cbc75372d0db87ac48d32271a54047ddeeb028d565fa6b7004b2ab3abd82d8ff4621e50c9410fce28c3044550cc94aaf0f6e4f672498f47aba8
 DIST llvm-project-f6f1fd443f48f417de9dfe23353055f1b20d87ef.tar.gz 170625743 BLAKE2B 3add45d7e2f26659f9602b5ccc034033610921ebeb2d6d69d6f5a3d1e3af224d3f5fd42e411d1fe0d5f8249c2ad995d41a236a87eba5a72ea9b20c112faa4c2f SHA512 2b57132d156f3d6d96802f617fff3eec0df6a3b5077ddcc4f31c87829e617f3065074d80e9d26c8c1c64322e76a09321fdfc8ae1d7a84f5da9f8606125e3b635
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-22  7:49 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-11-22  7:49 UTC (permalink / raw
  To: gentoo-commits

commit:     160be5af5841a46db61c0301625964a6b635a393
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 22 07:49:26 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Tue Nov 22 07:49:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=160be5af

sys-libs/libcxx: Stabilize 15.0.5 sparc, #881855

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.5.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.5.ebuild b/sys-libs/libcxx/libcxx-15.0.5.ebuild
index 8b5e382b8889..92d3ede4f699 100644
--- a/sys-libs/libcxx/libcxx-15.0.5.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.5.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-25  9:00 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-11-25  9:00 UTC (permalink / raw
  To: gentoo-commits

commit:     b8b39f930747354079976e9af050f90b1b789812
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 25 09:00:16 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Nov 25 09:00:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8b39f93

sys-libs/libcxx: Stabilize 15.0.5 arm64, #881855

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.5.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.5.ebuild b/sys-libs/libcxx/libcxx-15.0.5.ebuild
index 92d3ede4f699..3dd73c28029b 100644
--- a/sys-libs/libcxx/libcxx-15.0.5.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.5.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-25 17:12 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-11-25 17:12 UTC (permalink / raw
  To: gentoo-commits

commit:     eb47a46d386ee06a53b6cb0359f2152b7f9446e3
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 25 17:11:41 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Nov 25 17:11:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb47a46d

sys-libs/libcxx: Stabilize 15.0.5 arm, #881855

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.5.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.5.ebuild b/sys-libs/libcxx/libcxx-15.0.5.ebuild
index 3dd73c28029b..2cad4114eeaf 100644
--- a/sys-libs/libcxx/libcxx-15.0.5.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.5.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 arm arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-26 11:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-26 11:04 UTC (permalink / raw
  To: gentoo-commits

commit:     1c37fd4c25fd27fcab5bf05a913037c33eae0a81
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 26 06:35:58 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 26 11:03:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c37fd4c

sys-libs/libcxx: Add 16.0.0_pre20221126 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2558d68a4a3d..8f9498229faf 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,6 @@ DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f
 DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-7b91798a5d3a8432b296778da4efe169012fb7b4.tar.gz 170989337 BLAKE2B 1ab79554a05f8d7a74c0b4bab319c30375475d3fd089764733744fde55c65eb38967cdb19e5b0211a1543549c2bfc3c0f3d43facb7e041f51988e8a65e4448f3 SHA512 4c4d3a748b967cbc75372d0db87ac48d32271a54047ddeeb028d565fa6b7004b2ab3abd82d8ff4621e50c9410fce28c3044550cc94aaf0f6e4f672498f47aba8
+DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
 DIST llvm-project-f6f1fd443f48f417de9dfe23353055f1b20d87ef.tar.gz 170625743 BLAKE2B 3add45d7e2f26659f9602b5ccc034033610921ebeb2d6d69d6f5a3d1e3af224d3f5fd42e411d1fe0d5f8249c2ad995d41a236a87eba5a72ea9b20c112faa4c2f SHA512 2b57132d156f3d6d96802f617fff3eec0df6a3b5077ddcc4f31c87829e617f3065074d80e9d26c8c1c64322e76a09321fdfc8ae1d7a84f5da9f8606125e3b635
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-26 11:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-26 11:09 UTC (permalink / raw
  To: gentoo-commits

commit:     d364fca54cd00976d7b9308b99b127d8c5e3cda1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 26 11:08:02 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 26 11:08:02 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d364fca5

sys-libs/libcxx: Remove 15.0.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-15.0.4.ebuild | 204 -----------------------------------
 2 files changed, 206 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9ed63e8badf8..ca3355b320b9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,8 +4,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
-DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
-DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
 DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-7b91798a5d3a8432b296778da4efe169012fb7b4.tar.gz 170989337 BLAKE2B 1ab79554a05f8d7a74c0b4bab319c30375475d3fd089764733744fde55c65eb38967cdb19e5b0211a1543549c2bfc3c0f3d43facb7e041f51988e8a65e4448f3 SHA512 4c4d3a748b967cbc75372d0db87ac48d32271a54047ddeeb028d565fa6b7004b2ab3abd82d8ff4621e50c9410fce28c3044550cc94aaf0f6e4f672498f47aba8

diff --git a/sys-libs/libcxx/libcxx-15.0.4.ebuild b/sys-libs/libcxx/libcxx-15.0.4.ebuild
deleted file mode 100644
index 8b5e382b8889..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.4.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-29 13:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-29 13:52 UTC (permalink / raw
  To: gentoo-commits

commit:     6e602a6965cdbab73f2d98f207683f1143eb5db9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 29 13:51:39 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 29 13:51:39 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e602a69

sys-libs/libcxx: 15.x is now 15.0.6.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-15.0.5.9999.ebuild => libcxx-15.0.6.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.5.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.6.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-15.0.5.9999.ebuild
rename to sys-libs/libcxx/libcxx-15.0.6.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-11-29 19:56 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-11-29 19:56 UTC (permalink / raw
  To: gentoo-commits

commit:     4533fb756fc521d0e7ff3593aee1eea9cb2b225e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 29 14:03:42 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 29 19:56:10 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4533fb75

sys-libs/libcxx: Bump to 15.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.6.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ca3355b320b9..79aea1407ed1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,8 @@ DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76
 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
 DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
+DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
+DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
 DIST llvm-project-7b91798a5d3a8432b296778da4efe169012fb7b4.tar.gz 170989337 BLAKE2B 1ab79554a05f8d7a74c0b4bab319c30375475d3fd089764733744fde55c65eb38967cdb19e5b0211a1543549c2bfc3c0f3d43facb7e041f51988e8a65e4448f3 SHA512 4c4d3a748b967cbc75372d0db87ac48d32271a54047ddeeb028d565fa6b7004b2ab3abd82d8ff4621e50c9410fce28c3044550cc94aaf0f6e4f672498f47aba8
 DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.6.ebuild b/sys-libs/libcxx/libcxx-15.0.6.ebuild
new file mode 100644
index 000000000000..8b5e382b8889
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.6.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-02  8:04 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-12-02  8:04 UTC (permalink / raw
  To: gentoo-commits

commit:     d1562824cdf66d4a75832798f45482fd7728d4d4
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  2 08:03:37 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Dec  2 08:03:37 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1562824

sys-libs/libcxx: Stabilize 15.0.5 x86, #881855

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.5.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.5.ebuild b/sys-libs/libcxx/libcxx-15.0.5.ebuild
index c8fdfd561485..62eab2d1524f 100644
--- a/sys-libs/libcxx/libcxx-15.0.5.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.5.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-02 15:32 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-02 15:32 UTC (permalink / raw
  To: gentoo-commits

commit:     b59174f291c9c4aaa51c8bc892fad81db8dbf5b1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  2 15:27:20 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec  2 15:27:20 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b59174f2

sys-libs/libcxx: Remove 16.0.0_pre20221120

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c5b564b184ed..a9d66437f197 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,5 @@ DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
-DIST llvm-project-7b91798a5d3a8432b296778da4efe169012fb7b4.tar.gz 170989337 BLAKE2B 1ab79554a05f8d7a74c0b4bab319c30375475d3fd089764733744fde55c65eb38967cdb19e5b0211a1543549c2bfc3c0f3d43facb7e041f51988e8a65e4448f3 SHA512 4c4d3a748b967cbc75372d0db87ac48d32271a54047ddeeb028d565fa6b7004b2ab3abd82d8ff4621e50c9410fce28c3044550cc94aaf0f6e4f672498f47aba8
 DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221120.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-06  6:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-06  6:02 UTC (permalink / raw
  To: gentoo-commits

commit:     94625a9b79f96f9b74e62c6735a80142be1e2eb4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Dec  5 19:11:23 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec  6 06:02:06 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94625a9b

sys-libs/libcxx: Add 16.0.0_pre20221205 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a9d66437f197..020c9f317c92 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,5 @@ DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
 DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
+DIST llvm-project-e99edb92356b5ba078b5bc4d5846770414586a1d.tar.gz 171822327 BLAKE2B cdaa704c9f238f34751b92df92f8a767b1204f868dfd8a6f1eb3eeacaaf9c4b63c55a7c0534af124fddb65cf80263f72b79190696c8077e2990984a84a040f2a SHA512 37f45a56d6086df60c9832b75da3b2d78b8ec0fe094f07d41695f0565e4de0c13e460b1fef495864f07300d41f5b32769f0862b0fa5d53c0db9a0ccec1a09072
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-10 20:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-10 20:43 UTC (permalink / raw
  To: gentoo-commits

commit:     c5700510f90198615f19a672d519336dde481ce9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 10 20:19:48 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 10 20:43:07 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c5700510

sys-libs/libcxx: Add 16.0.0_pre20221210 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 020c9f317c92..0d002e43dc68 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,5 +7,6 @@ DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
 DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
+DIST llvm-project-d5987fe324fcaedcea12914d6f9644cc5329f364.tar.gz 172157522 BLAKE2B 3c201380e727f7db53d61ff7c411b85aef8b17f086bca0cf3e758284a92a9ced298584e6f92ac6a35f30231d59c916bb98d41a8939f9b1103996c9e09df32ec2 SHA512 dff559b1518bbf9c469a2f4624ba9e83d81df2f08223afc696fa7f3dc9fe1c0d4a17346db8946fb56806e12aa7cbddda8df05b032ffe29dafd8a66c630de0016
 DIST llvm-project-e99edb92356b5ba078b5bc4d5846770414586a1d.tar.gz 171822327 BLAKE2B cdaa704c9f238f34751b92df92f8a767b1204f868dfd8a6f1eb3eeacaaf9c4b63c55a7c0534af124fddb65cf80263f72b79190696c8077e2990984a84a040f2a SHA512 37f45a56d6086df60c9832b75da3b2d78b8ec0fe094f07d41695f0565e4de0c13e460b1fef495864f07300d41f5b32769f0862b0fa5d53c0db9a0ccec1a09072
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-17 20:49 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2022-12-17 20:49 UTC (permalink / raw
  To: gentoo-commits

commit:     bd8660960070d5460a41f8a9dff0be454208db5b
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 17 20:49:06 2022 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Dec 17 20:49:06 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd866096

sys-libs/libcxx: Stabilize 15.0.6 arm64, #886483

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.6.ebuild b/sys-libs/libcxx/libcxx-15.0.6.ebuild
index 8b5e382b8889..b326c5c5fc12 100644
--- a/sys-libs/libcxx/libcxx-15.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-18  4:58 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2022-12-18  4:58 UTC (permalink / raw
  To: gentoo-commits

commit:     0bd69f2fbccf1fde69ad98574eba4c452b418fe6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 18 04:57:41 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec 18 04:57:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0bd69f2f

sys-libs/libcxx: Stabilize 15.0.6 amd64, #886483

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.6.ebuild b/sys-libs/libcxx/libcxx-15.0.6.ebuild
index b326c5c5fc12..19ba647f3cbe 100644
--- a/sys-libs/libcxx/libcxx-15.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-18  7:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-18  7:27 UTC (permalink / raw
  To: gentoo-commits

commit:     87035560318410fae39de1af6dd55395f6d8a1d1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 17 18:06:24 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Dec 18 07:27:31 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87035560

sys-libs/libcxx: Add 16.0.0_pre20221217 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0d002e43dc68..c1c846a573c1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,5 @@ DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257
 DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
 DIST llvm-project-d5987fe324fcaedcea12914d6f9644cc5329f364.tar.gz 172157522 BLAKE2B 3c201380e727f7db53d61ff7c411b85aef8b17f086bca0cf3e758284a92a9ced298584e6f92ac6a35f30231d59c916bb98d41a8939f9b1103996c9e09df32ec2 SHA512 dff559b1518bbf9c469a2f4624ba9e83d81df2f08223afc696fa7f3dc9fe1c0d4a17346db8946fb56806e12aa7cbddda8df05b032ffe29dafd8a66c630de0016
 DIST llvm-project-e99edb92356b5ba078b5bc4d5846770414586a1d.tar.gz 171822327 BLAKE2B cdaa704c9f238f34751b92df92f8a767b1204f868dfd8a6f1eb3eeacaaf9c4b63c55a7c0534af124fddb65cf80263f72b79190696c8077e2990984a84a040f2a SHA512 37f45a56d6086df60c9832b75da3b2d78b8ec0fe094f07d41695f0565e4de0c13e460b1fef495864f07300d41f5b32769f0862b0fa5d53c0db9a0ccec1a09072
+DIST llvm-project-fb792ebaf2114ad11d673cf891ae560e2e604711.tar.gz 174312496 BLAKE2B dd7f30b911ef5049e9e2bff7b2768e31b48b1f4c7acaf159f535fe3deb5aa6630fdf7857c83fffcda1119a38a52101490d2b6cb41cb295bb7dd85cde0445b7ee SHA512 bef15e7d82a2faf8be24f784d3d34ff9b21c8f17256879587ea5471011a32a1eb885e1b020da55aa096f2e0b5fe4bcf9fe8f0f5b5d34f5f386c48899c68fb7d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-19  5:41 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2022-12-19  5:41 UTC (permalink / raw
  To: gentoo-commits

commit:     98b67dc8691e4338b9ebdfa87b5fd4459712a0a2
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 19 05:38:39 2022 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Mon Dec 19 05:40:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98b67dc8

sys-libs/libcxx: keyword 16.0.0_pre20221217 for ~loong

https://reviews.llvm.org/D139297 is yet to be merged but it only affects
tests, functionality is already working.

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
index 9b9bd5a335cb..d48fac4055ab 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-19  5:55 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-19  5:55 UTC (permalink / raw
  To: gentoo-commits

commit:     7fdbb296eee706c88ffb373ec35e8d1e7d9f71bc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 19 05:49:10 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Dec 19 05:55:38 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7fdbb296

sys-libs/libcxx: Remove old snapshots

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild | 204 -----------------------
 3 files changed, 410 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c1c846a573c1..7acb15a7d4fb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,8 +6,6 @@ DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
-DIST llvm-project-959c9cc7acf4d0aa433f2436e2a45b782e18022a.tar.gz 171575300 BLAKE2B 090d41a8913f8e061d297e66ca653d95e18b8da744464d7085d7a199c0a444753a82b6ff6503e142aec81be01b419323cdbe3709497738df74afa886d69fd63d SHA512 fc3b26e148ead7a07b4d1509909a42712a43b179da435b052c26a237b0d2ae88c3c8d76eaa93c415be1ed0f0b5fb55e0ad92f427a18d70bc9634a6e7d1b6a4d9
 DIST llvm-project-d5987fe324fcaedcea12914d6f9644cc5329f364.tar.gz 172157522 BLAKE2B 3c201380e727f7db53d61ff7c411b85aef8b17f086bca0cf3e758284a92a9ced298584e6f92ac6a35f30231d59c916bb98d41a8939f9b1103996c9e09df32ec2 SHA512 dff559b1518bbf9c469a2f4624ba9e83d81df2f08223afc696fa7f3dc9fe1c0d4a17346db8946fb56806e12aa7cbddda8df05b032ffe29dafd8a66c630de0016
-DIST llvm-project-e99edb92356b5ba078b5bc4d5846770414586a1d.tar.gz 171822327 BLAKE2B cdaa704c9f238f34751b92df92f8a767b1204f868dfd8a6f1eb3eeacaaf9c4b63c55a7c0534af124fddb65cf80263f72b79190696c8077e2990984a84a040f2a SHA512 37f45a56d6086df60c9832b75da3b2d78b8ec0fe094f07d41695f0565e4de0c13e460b1fef495864f07300d41f5b32769f0862b0fa5d53c0db9a0ccec1a09072
 DIST llvm-project-fb792ebaf2114ad11d673cf891ae560e2e604711.tar.gz 174312496 BLAKE2B dd7f30b911ef5049e9e2bff7b2768e31b48b1f4c7acaf159f535fe3deb5aa6630fdf7857c83fffcda1119a38a52101490d2b6cb41cb295bb7dd85cde0445b7ee SHA512 bef15e7d82a2faf8be24f784d3d34ff9b21c8f17256879587ea5471011a32a1eb885e1b020da55aa096f2e0b5fe4bcf9fe8f0f5b5d34f5f386c48899c68fb7d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221126.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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-16.0.0_pre20221205.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221205.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-25  9:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-25  9:45 UTC (permalink / raw
  To: gentoo-commits

commit:     1e9e97e7562557db55230b6d2c7e0b76eec83ec1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 25 09:44:55 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Dec 25 09:44:55 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1e9e97e7

sys-libs/libcxx: Remove 16.0.0_pre20221210

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7acb15a7d4fb..83a073f772d9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,5 @@ DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
-DIST llvm-project-d5987fe324fcaedcea12914d6f9644cc5329f364.tar.gz 172157522 BLAKE2B 3c201380e727f7db53d61ff7c411b85aef8b17f086bca0cf3e758284a92a9ced298584e6f92ac6a35f30231d59c916bb98d41a8939f9b1103996c9e09df32ec2 SHA512 dff559b1518bbf9c469a2f4624ba9e83d81df2f08223afc696fa7f3dc9fe1c0d4a17346db8946fb56806e12aa7cbddda8df05b032ffe29dafd8a66c630de0016
 DIST llvm-project-fb792ebaf2114ad11d673cf891ae560e2e604711.tar.gz 174312496 BLAKE2B dd7f30b911ef5049e9e2bff7b2768e31b48b1f4c7acaf159f535fe3deb5aa6630fdf7857c83fffcda1119a38a52101490d2b6cb41cb295bb7dd85cde0445b7ee SHA512 bef15e7d82a2faf8be24f784d3d34ff9b21c8f17256879587ea5471011a32a1eb885e1b020da55aa096f2e0b5fe4bcf9fe8f0f5b5d34f5f386c48899c68fb7d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221210.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2022-12-27 11:29 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2022-12-27 11:29 UTC (permalink / raw
  To: gentoo-commits

commit:     d1a6d59ae71082e301fb386227588359ac3b371c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 26 19:58:15 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec 27 11:29:52 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1a6d59a

sys-libs/libcxx: Add 16.0.0_pre20221226 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 83a073f772d9..60638138ce61 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,5 +6,6 @@ DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
+DIST llvm-project-dfc20708bcdf7b4c4bea8595fc4ac8674634d5e6.tar.gz 174878013 BLAKE2B 9c37423ae2a85a9d4a17fba97733cf808ebc98fa1488fb02e8c3e23039511154a220184af1bc6950c857b7d3c528d01e3dde5441c18903f25a7d7b7781e08f9b SHA512 146d6ab53cce257c21ae202b887bbb77b017f883cf26337bd3af29289cd828aabf95c528c6c192473c3cafb7e803940261f32a8fab6130deca01ccd5576c78eb
 DIST llvm-project-fb792ebaf2114ad11d673cf891ae560e2e604711.tar.gz 174312496 BLAKE2B dd7f30b911ef5049e9e2bff7b2768e31b48b1f4c7acaf159f535fe3deb5aa6630fdf7857c83fffcda1119a38a52101490d2b6cb41cb295bb7dd85cde0445b7ee SHA512 bef15e7d82a2faf8be24f784d3d34ff9b21c8f17256879587ea5471011a32a1eb885e1b020da55aa096f2e0b5fe4bcf9fe8f0f5b5d34f5f386c48899c68fb7d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild
new file mode 100644
index 000000000000..9b9bd5a335cb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-01 21:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-01 21:00 UTC (permalink / raw
  To: gentoo-commits

commit:     9e934604db6d32b00c4cf11539d1d9acc293791e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jan  1 11:58:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jan  1 20:59:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9e934604

sys-libs/libcxx: Add 16.0.0_pre20230101 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 60638138ce61..90966698a634 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,7 @@ DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6
 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
+DIST llvm-project-b20dd2b186fdc76828219b705a2b58f5830f4b9d.tar.gz 175044630 BLAKE2B f9a955e8413b57067fb697792316fb0c1e3eac00b1af208ba5d29db01a9acc96b88c7edca12c43762b1425c71a716a7c74d5d7edad45a442f32ba73f88f548b6 SHA512 5133c32d7856c8280bfeb47c3e5a9c0d8c1c291aad29af93586523110f95b08e582ff416fc6be02241eabfe80c35ad4f0334de5ead2a41bc6504616b1c6fd15a
 DIST llvm-project-dfc20708bcdf7b4c4bea8595fc4ac8674634d5e6.tar.gz 174878013 BLAKE2B 9c37423ae2a85a9d4a17fba97733cf808ebc98fa1488fb02e8c3e23039511154a220184af1bc6950c857b7d3c528d01e3dde5441c18903f25a7d7b7781e08f9b SHA512 146d6ab53cce257c21ae202b887bbb77b017f883cf26337bd3af29289cd828aabf95c528c6c192473c3cafb7e803940261f32a8fab6130deca01ccd5576c78eb
 DIST llvm-project-fb792ebaf2114ad11d673cf891ae560e2e604711.tar.gz 174312496 BLAKE2B dd7f30b911ef5049e9e2bff7b2768e31b48b1f4c7acaf159f535fe3deb5aa6630fdf7857c83fffcda1119a38a52101490d2b6cb41cb295bb7dd85cde0445b7ee SHA512 bef15e7d82a2faf8be24f784d3d34ff9b21c8f17256879587ea5471011a32a1eb885e1b020da55aa096f2e0b5fe4bcf9fe8f0f5b5d34f5f386c48899c68fb7d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
new file mode 100644
index 000000000000..1b03c27cafcf
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-03  4:10 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2023-01-03  4:10 UTC (permalink / raw
  To: gentoo-commits

commit:     4a42834f1ddcaecd95a3ea5a4698119c17016d78
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Tue Jan  3 04:07:50 2023 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Tue Jan  3 04:09:28 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a42834f

sys-libs/libcxx: keyword 16.0.0_pre20230101 for ~loong

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
index 1b03c27cafcf..113450e24312 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-07  6:48 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-01-07  6:48 UTC (permalink / raw
  To: gentoo-commits

commit:     cdde88d43b6b2ece712f1595c5630a0a58f4864e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  7 04:15:00 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan  7 06:47:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdde88d4

sys-libs/libcxx: Stabilize 15.0.6 x86, #886483

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.6.ebuild b/sys-libs/libcxx/libcxx-15.0.6.ebuild
index 6df47b920185..da0386308af9 100644
--- a/sys-libs/libcxx/libcxx-15.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-07  6:50 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-01-07  6:50 UTC (permalink / raw
  To: gentoo-commits

commit:     723747f2530945cab885bcd59c130fffd1341da7
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  7 06:50:07 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan  7 06:50:07 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=723747f2

sys-libs/libcxx: Stabilize 15.0.6 sparc, #886483

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.6.ebuild b/sys-libs/libcxx/libcxx-15.0.6.ebuild
index da0386308af9..7e8a9b67c194 100644
--- a/sys-libs/libcxx/libcxx-15.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~sparc x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-07 14:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-07 14:38 UTC (permalink / raw
  To: gentoo-commits

commit:     25f05ebbcbf583eadd782e11a7dc89feccc48d18
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  7 14:37:05 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan  7 14:37:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25f05ebb

sys-libs/libcxx: Remove 15.0.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-15.0.5.ebuild | 204 -----------------------------------
 2 files changed, 206 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 90966698a634..1ac52092eec1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -2,8 +2,6 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
-DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
-DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
 DIST llvm-project-b20dd2b186fdc76828219b705a2b58f5830f4b9d.tar.gz 175044630 BLAKE2B f9a955e8413b57067fb697792316fb0c1e3eac00b1af208ba5d29db01a9acc96b88c7edca12c43762b1425c71a716a7c74d5d7edad45a442f32ba73f88f548b6 SHA512 5133c32d7856c8280bfeb47c3e5a9c0d8c1c291aad29af93586523110f95b08e582ff416fc6be02241eabfe80c35ad4f0334de5ead2a41bc6504616b1c6fd15a

diff --git a/sys-libs/libcxx/libcxx-15.0.5.ebuild b/sys-libs/libcxx/libcxx-15.0.5.ebuild
deleted file mode 100644
index 62eab2d1524f..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.5.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-07 14:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-07 14:43 UTC (permalink / raw
  To: gentoo-commits

commit:     9feeb03d844e14d9144179513f563ca8179d83d1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  7 14:41:56 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan  7 14:41:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9feeb03d

sys-libs/libcxx: Remove 16.0.0_pre2022* snapshots

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild | 204 -----------------------
 3 files changed, 410 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1ac52092eec1..54ab857bc21e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,6 +5,4 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
 DIST llvm-project-b20dd2b186fdc76828219b705a2b58f5830f4b9d.tar.gz 175044630 BLAKE2B f9a955e8413b57067fb697792316fb0c1e3eac00b1af208ba5d29db01a9acc96b88c7edca12c43762b1425c71a716a7c74d5d7edad45a442f32ba73f88f548b6 SHA512 5133c32d7856c8280bfeb47c3e5a9c0d8c1c291aad29af93586523110f95b08e582ff416fc6be02241eabfe80c35ad4f0334de5ead2a41bc6504616b1c6fd15a
-DIST llvm-project-dfc20708bcdf7b4c4bea8595fc4ac8674634d5e6.tar.gz 174878013 BLAKE2B 9c37423ae2a85a9d4a17fba97733cf808ebc98fa1488fb02e8c3e23039511154a220184af1bc6950c857b7d3c528d01e3dde5441c18903f25a7d7b7781e08f9b SHA512 146d6ab53cce257c21ae202b887bbb77b017f883cf26337bd3af29289cd828aabf95c528c6c192473c3cafb7e803940261f32a8fab6130deca01ccd5576c78eb
-DIST llvm-project-fb792ebaf2114ad11d673cf891ae560e2e604711.tar.gz 174312496 BLAKE2B dd7f30b911ef5049e9e2bff7b2768e31b48b1f4c7acaf159f535fe3deb5aa6630fdf7857c83fffcda1119a38a52101490d2b6cb41cb295bb7dd85cde0445b7ee SHA512 bef15e7d82a2faf8be24f784d3d34ff9b21c8f17256879587ea5471011a32a1eb885e1b020da55aa096f2e0b5fe4bcf9fe8f0f5b5d34f5f386c48899c68fb7d1
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
deleted file mode 100644
index d48fac4055ab..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221217.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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-16.0.0_pre20221226.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20221226.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-08  5:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-08  5:46 UTC (permalink / raw
  To: gentoo-commits

commit:     9b280a86b453ca9e546c0527598a9a7ed703840c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  7 17:34:03 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jan  8 05:46:45 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b280a86

sys-libs/libcxx: Add 16.0.0_pre20230107 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 54ab857bc21e..6cac0e3ebcac 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,5 +4,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
+DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
 DIST llvm-project-b20dd2b186fdc76828219b705a2b58f5830f4b9d.tar.gz 175044630 BLAKE2B f9a955e8413b57067fb697792316fb0c1e3eac00b1af208ba5d29db01a9acc96b88c7edca12c43762b1425c71a716a7c74d5d7edad45a442f32ba73f88f548b6 SHA512 5133c32d7856c8280bfeb47c3e5a9c0d8c1c291aad29af93586523110f95b08e582ff416fc6be02241eabfe80c35ad4f0334de5ead2a41bc6504616b1c6fd15a
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
new file mode 100644
index 000000000000..1b03c27cafcf
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-10  7:29 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2023-01-10  7:29 UTC (permalink / raw
  To: gentoo-commits

commit:     1a7b498d09fccf25c9aaa2d2b9d479fe738d3773
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 10 07:24:56 2023 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Tue Jan 10 07:27:26 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a7b498d

sys-libs/libcxx: keyword 16.0.0_pre20230107 for ~loong

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
index 1b03c27cafcf..113450e24312 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-13  8:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-13  8:08 UTC (permalink / raw
  To: gentoo-commits

commit:     b1e25e874e138267fcbd400e782d4e318269ec3f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 13 08:01:09 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 13 08:08:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1e25e87

sys-libs/libcxx: Remove 15.x live ebuild

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.6.9999.ebuild | 204 ------------------------------
 1 file changed, 204 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.6.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.6.9999.ebuild
deleted file mode 100644
index 9b9bd5a335cb..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.6.9999.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-13 13:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-13 13:21 UTC (permalink / raw
  To: gentoo-commits

commit:     90aff95e9b8140977bb5fd862e843f6cf4aad4ac
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 13 08:56:18 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 13 13:20:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90aff95e

sys-libs/libcxx: Bump to 15.0.7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-15.0.7.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6cac0e3ebcac..c553f6d6dd11 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,6 +4,8 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
 DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
+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-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
 DIST llvm-project-b20dd2b186fdc76828219b705a2b58f5830f4b9d.tar.gz 175044630 BLAKE2B f9a955e8413b57067fb697792316fb0c1e3eac00b1af208ba5d29db01a9acc96b88c7edca12c43762b1425c71a716a7c74d5d7edad45a442f32ba73f88f548b6 SHA512 5133c32d7856c8280bfeb47c3e5a9c0d8c1c291aad29af93586523110f95b08e582ff416fc6be02241eabfe80c35ad4f0334de5ead2a41bc6504616b1c6fd15a
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
new file mode 100644
index 000000000000..f9c12b0b1970
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.7.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-24  8:53 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-24  8:53 UTC (permalink / raw
  To: gentoo-commits

commit:     460b321d540a3ee1a9c384ce49688502506c5b89
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 24 07:10:56 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 24 08:52:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=460b321d

sys-libs/libcxx: Remove 16.0.0_pre20230101

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c553f6d6dd11..3ca8ad4d2446 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,5 +7,4 @@ DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257
 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-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
-DIST llvm-project-b20dd2b186fdc76828219b705a2b58f5830f4b9d.tar.gz 175044630 BLAKE2B f9a955e8413b57067fb697792316fb0c1e3eac00b1af208ba5d29db01a9acc96b88c7edca12c43762b1425c71a716a7c74d5d7edad45a442f32ba73f88f548b6 SHA512 5133c32d7856c8280bfeb47c3e5a9c0d8c1c291aad29af93586523110f95b08e582ff416fc6be02241eabfe80c35ad4f0334de5ead2a41bc6504616b1c6fd15a
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
deleted file mode 100644
index bd6f3db60c4b..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20230101.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-25  8:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-25  8:12 UTC (permalink / raw
  To: gentoo-commits

commit:     cb415655bd11eec3802ff88d723105da9e524fd2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 25 08:04:14 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 25 08:10:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb415655

sys-libs/libcxx: Add 17.0.0.9999 live ebuild

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.0.9999.ebuild | 204 ++++++++++++++++++++++++++++++
 1 file changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-25 12:28 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-25 12:28 UTC (permalink / raw
  To: gentoo-commits

commit:     7cb222de23f9d470f1366507e9159ed244ce794e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 25 12:27:22 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 25 12:28:43 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7cb222de

sys-libs/libcxx: Backport GCC build fix to 15.0.7-r1

Closes: https://bugs.gentoo.org/869038
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                |   1 +
 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild | 205 ++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3ca8ad4d2446..5b33eb8a1939 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
+DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
new file mode 100644
index 000000000000..705ae5fa64ac
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV}-r1
+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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-25 19:34 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2023-01-25 19:34 UTC (permalink / raw
  To: gentoo-commits

commit:     a11bbc4d89813afd7eefc105cc4392d5ea4a0a8b
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 25 19:33:45 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Wed Jan 25 19:33:45 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a11bbc4d

sys-libs/libcxx: Stabilize 15.0.7 arm64, #891893

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
index 82e7a0b87e50..2c4d2841dd23 100644
--- a/sys-libs/libcxx/libcxx-15.0.7.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-26 22:08 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-01-26 22:08 UTC (permalink / raw
  To: gentoo-commits

commit:     14c2c22c8a2afa9a36fbb0257b615c16c8238a7a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 22:06:39 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 26 22:07:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14c2c22c

sys-libs/libcxx: Stabilize 15.0.7 sparc, #891893

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
index 45d4905d5716..00ed333ebac4 100644
--- a/sys-libs/libcxx/libcxx-15.0.7.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-26 22:08 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-01-26 22:08 UTC (permalink / raw
  To: gentoo-commits

commit:     1dd5865eaf9a515e6c33bbe7a3aa5533f94b4167
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 22:06:50 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 26 22:07:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1dd5865e

sys-libs/libcxx: Stabilize 15.0.7 x86, #891893

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
index 00ed333ebac4..c8284848d512 100644
--- a/sys-libs/libcxx/libcxx-15.0.7.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-26 22:31 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-01-26 22:31 UTC (permalink / raw
  To: gentoo-commits

commit:     a89fc4c9a50efefce3f5e85754da0b039264bd62
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 22:30:58 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 26 22:30:58 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a89fc4c9

sys-libs/libcxx: Stabilize 15.0.7-r1 arm64, #892127

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index 705ae5fa64ac..c2c530061772 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-26 22:42 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-01-26 22:42 UTC (permalink / raw
  To: gentoo-commits

commit:     ab9f61ebfb4f10fce37b8b209e9edc0a601a9ea0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 26 22:41:49 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 26 22:41:53 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab9f61eb

sys-libs/libcxx: Stabilize 15.0.7-r1 x86, #892127

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index c2c530061772..7fc94c670538 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~riscv ~sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-27 10:11 Jakov Smolić
  0 siblings, 0 replies; 608+ messages in thread
From: Jakov Smolić @ 2023-01-27 10:11 UTC (permalink / raw
  To: gentoo-commits

commit:     0422c8c27fa4a5cae76d6825266052d53f8aa2b3
Author:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 27 10:10:09 2023 +0000
Commit:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
CommitDate: Fri Jan 27 10:10:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0422c8c2

sys-libs/libcxx: Stabilize 15.0.7-r1 amd64, #892127

Signed-off-by: Jakov Smolić <jsmolic <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index 7fc94c670538..b0445e061e96 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="~amd64 ~arm arm64 ~riscv ~sparc x86 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-27 11:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-27 11:00 UTC (permalink / raw
  To: gentoo-commits

commit:     854784d7d8cbca9b5bbca18176f12958d0286568
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 27 10:58:29 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 27 10:58:29 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=854784d7

sys-libs/libcxx: Remove 15.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-15.0.6.ebuild | 204 -----------------------------------
 2 files changed, 206 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5b33eb8a1939..8251c730fab6 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -3,8 +3,6 @@ DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
-DIST llvm-project-15.0.6.src.tar.xz 112074576 BLAKE2B 74b1aa967c95191fa492f06b3a21930842da0ccbd9995dd33b4c2cf07852bbedcae97041fd5966209b16c63b90c87cc02fb2e858eda13dd9cc0641edcede0f75 SHA512 3311d85f4e02610af52f06e83c8c6d2b93950d24324b831b7afc47c39a20a546d39683a14e1a315da87d226379042de900a3f36a0351053547482af9035ab949
-DIST llvm-project-15.0.6.src.tar.xz.sig 438 BLAKE2B 3c97dbd55667f52dad964ef71257c36e3075794f5616cfd46de8bf874867e861bf45c0d56cff2d0ad5d4f1b5a1c9b3a395aedcc40bce545ce7f3c84ac75ae3da SHA512 a184103d84f8197a709c6c067fa83ca9290cd06532c487ad2c1fefa423438a1ac3c7f88835a94e3c9f04876e8d5f09afabef15bd8605df38aec6a4118597090c
 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-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894

diff --git a/sys-libs/libcxx/libcxx-15.0.6.ebuild b/sys-libs/libcxx/libcxx-15.0.6.ebuild
deleted file mode 100644
index c8284848d512..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.6.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-27 17:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-27 17:25 UTC (permalink / raw
  To: gentoo-commits

commit:     afa485e602e0cd32a33266cefb1530afdec3e8e9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 27 11:03:52 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 27 17:25:10 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=afa485e6

sys-libs/libcxx: Add 16.0.0_pre20230127 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8251c730fab6..8d2b348ce9fb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,5 +5,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
 DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-01-30 20:33 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-01-30 20:33 UTC (permalink / raw
  To: gentoo-commits

commit:     5af88d63316c393691c401fd03ece1d1c87960a9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 30 16:26:49 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan 30 20:33:01 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5af88d63

sys-libs/libcxx: Add 16.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8d2b348ce9fb..2da70c79b90e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,6 +5,8 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
+DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
 DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
 DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-01  4:32 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2023-02-01  4:32 UTC (permalink / raw
  To: gentoo-commits

commit:     d6a16b9ec36c78c9bfd4eeac3c25381037915b76
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  1 04:24:40 2023 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Wed Feb  1 04:29:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6a16b9e

sys-libs/libcxx: keyword 16.0.0_rc1 for ~loong

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
index 4eeb65e55e83..bd6f3db60c4b 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-01  5:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-01  5:15 UTC (permalink / raw
  To: gentoo-commits

commit:     e47fa7d966c703c67374e32ca45be463094f754e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  1 05:11:24 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb  1 05:11:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e47fa7d9

sys-libs/libcxx: Remove 13.x

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-13.0.1.ebuild | 214 -----------------------------------
 2 files changed, 216 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2da70c79b90e..1ab52a0c0ae3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,4 +1,3 @@
-DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
@@ -9,4 +8,3 @@ DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
 DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
 DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894
-DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f

diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild
deleted file mode 100644
index 6c1193e76dac..000000000000
--- a/sys-libs/libcxx/libcxx-13.0.1.ebuild
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{9..10} )
-inherit cmake-multilib 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"
-KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
-REQUIRED_USE="libunwind? ( libcxxabi )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-	libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
-	!libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )"
-# llvm-6 for new lit options
-# clang-3.9.0 installs necessary target symlinks unconditionally
-# which removes the need for MULTILIB_USEDEP
-DEPEND="${RDEPEND}
-	>=sys-devel/llvm-6"
-BDEPEND="
-	test? (
-		>=dev-util/cmake-3.16
-		>=sys-devel/clang-3.9.0
-		sys-devel/gdb[python]
-		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
-	)"
-
-DOCS=( CREDITS.TXT )
-
-LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} )
-LLVM_PATCHSET=${PV/_/-}
-llvm.org_set_globals
-
-python_check_deps() {
-	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 dev-lang/llvm; then
-		llvm_pkg_setup
-	fi
-	use test && 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() {
-	# 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=libcxxabi
-		cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
-	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() {
-	# we want -lgcc_s for unwinder, and for compiler runtime when using
-	# gcc, clang with gcc runtime (or any unknown compiler)
-	local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF
-	if use libunwind; then
-		# work-around missing -lunwind upstream
-		extra_libs+=( -lunwind )
-		# if we're using libunwind and clang with compiler-rt, we want
-		# to link to compiler-rt instead of -lgcc_s
-		if tc-is-clang; then
-			local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
-			   ${LDFLAGS} -print-libgcc-file-name)
-			if [[ ${compiler_rt} == *libclang_rt* ]]; then
-				want_gcc_s=OFF
-				want_compiler_rt=ON
-				extra_libs+=( "${compiler_rt}" )
-			fi
-		fi
-	elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then
-		# clang-based darwin prefix disables libunwind useflag during
-		# bootstrap, because libunwind is not in the prefix yet.
-		# override the default, though, because clang based libcxx
-		# should never use gcc_s on Darwin.
-		want_gcc_s=OFF
-		# compiler_rt is not available in EPREFIX during bootstrap,
-		# so we cannot link to it yet anyway, so keep the defaults
-		# of want_compiler_rt=OFF and extra_libs=()
-	fi
-
-	# 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=(
-		-DLIBCXX_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_HAS_GCC_S_LIB=${want_gcc_s}
-		-DLIBCXX_INCLUDE_TESTS=$(usex test)
-		-DLIBCXX_USE_COMPILER_RT=${want_compiler_rt}
-		-DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s}
-		-DLIBCXX_TARGET_TRIPLE="${CHOST}"
-		-DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
-	)
-
-	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}"
-			-DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON
-			-DPython3_EXECUTABLE="${PYTHON}"
-		)
-	fi
-	cmake_src_configure
-}
-
-multilib_src_test() {
-	local -x LIT_PRESERVES_TMP=1
-	cmake_build check-cxx
-}
-
-# 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() {
-	local libdir=$(get_libdir)
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a")
-
-	# Move it first.
-	mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${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 ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.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}" > "${ED}/usr/${libdir}/libc++.a" || die
-}
-
-gen_shared_ldscript() {
-	local libdir=$(get_libdir)
-	# libsupc++ doesn't have a shared version
-	local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a")
-
-	mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
-	local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
-
-	gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
-}
-
-multilib_src_install() {
-	cmake_src_install
-	if [[ ${CHOST} != *-darwin* ]] ; then
-		gen_shared_ldscript
-		use static-libs && gen_static_ldscript
-	fi
-}
-
-pkg_postinst() {
-	elog "This package (${PN}) is mainly intended as a replacement for the C++"
-	elog "standard library when using clang."
-	elog "To use it, instead of libstdc++, use:"
-	elog "    clang++ -stdlib=libc++"
-	elog "to compile your C++ programs."
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-04 15:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-04 15:45 UTC (permalink / raw
  To: gentoo-commits

commit:     2bc19f1b8c4e5591727aa171a9b7a91d5c0ddcf0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  3 18:35:27 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb  4 15:45:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2bc19f1b

sys-libs/libcxx: Add 17.0.0_pre20230203 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1ab52a0c0ae3..d2d1643a3150 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
+DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-08 17:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-08 17:36 UTC (permalink / raw
  To: gentoo-commits

commit:     35a808fa27d5a9b368ea7268d07cbe8e5aedc193
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  8 14:03:39 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb  8 17:36:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35a808fa

sys-libs/libcxx: Add 16.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d2d1643a3150..6ba7cff2579f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,5 +7,7 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
+DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
+DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
 DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
 DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-08 18:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-08 18:09 UTC (permalink / raw
  To: gentoo-commits

commit:     57d259f01f84eba4f8409c9f75cfa9b232d3d634
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  8 17:37:34 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb  8 18:09:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57d259f0

sys-libs/libcxx: Remove 16.0.0 snapshots

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild | 204 -----------------------
 3 files changed, 410 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6ba7cff2579f..87b8fe6432db 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,3 @@ DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
 DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
 DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
-DIST llvm-project-46d5a57801bc37e5ebb1a4d6b2acc0fa99c01e8d.tar.gz 180436731 BLAKE2B 51c30c3f11dd55a225b8ebe4ded752ce9e8eb58751e7458c29901dbdd3673f94892d337d111d696e779e3f7ef0bca6c7d79709e2072a4bf3a001d8813125d571 SHA512 ebbe0f8becac39d63433dcc3de474c40f1215fc8faab94fa2ba869d28e66b27e4fe088377bd7ae64575a6d7b07017b88bf92e5488a3185a753e647d8da352bbf
-DIST llvm-project-6dc85bd3fde7df2999fda07e9e9f2e83d52c6125.tar.gz 175208511 BLAKE2B cf87cf7e9bf7c74aab8ccda0f153369cb81798047fdd48025c3c7030857b128babbaafb667385a5c8e9916e16038b14fee39f1623d329471e73c39c2f2d7bbfa SHA512 e6dc0cacd6c079be8a00364e4c244782d764d9a8d514d65f9078427cb4a0c1663ff88761bfbc1e955a1a990451439110497c2cb7af7f56b2c91f2e9db4389894

diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
deleted file mode 100644
index bd6f3db60c4b..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20230107.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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-16.0.0_pre20230127.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild
deleted file mode 100644
index 4eeb65e55e83..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_pre20230127.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-10  4:51 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2023-02-10  4:51 UTC (permalink / raw
  To: gentoo-commits

commit:     ee396acc5f6c15f8f3e16c7a5698cdcd14999c49
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  9 06:08:51 2023 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Fri Feb 10 04:50:37 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee396acc

sys-libs/libcxx: keyword 16.0.0_rc2 for ~loong

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
index 4eeb65e55e83..bd6f3db60c4b 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-11 12:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-11 12:47 UTC (permalink / raw
  To: gentoo-commits

commit:     3228ff851cc7877c3380f7d44c135890a2203a23
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 11 07:46:28 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 11 12:46:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3228ff85

sys-libs/libcxx: Add 17.0.0_pre20230211 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 87b8fe6432db..7c62a5025d5a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-16.0.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f
 DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
 DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
 DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-15 12:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-15 12:15 UTC (permalink / raw
  To: gentoo-commits

commit:     8707330022a20c23d5f2ae4abddc935e8a621d2a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 15 11:19:28 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 15 12:15:00 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87073300

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild | 204 -----------------------
 3 files changed, 411 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7c62a5025d5a..6700707ac012 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,12 +1,9 @@
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
-DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.0rc1.src.tar.xz 118364920 BLAKE2B 449fa321722e77d1a595d0f1f52a4e9492954d928355402f6e07e6c8a20e4ebfc03690ef8272b92eb5cdd58c97ca37fa6baf847d399e36a84e3ea7d94d1ea6ca SHA512 a24074ea8e21af49b0545f02bdec4727e8df841e59340dc189cc5a144a70fc6880e82381fba622ac62c7504f7bf394c916c773ee25904e8faf41eaedce6ae9e0
-DIST llvm-project-16.0.0rc1.src.tar.xz.sig 566 BLAKE2B 29a593f74b05ef6268f0b2ee5ebd810a244e7c6b27dd94f709b22bca8e6c8367f8321a6ec61f85476cd399f31519ac2a3c978014afae29490c1e70d26eb6c35f SHA512 dcca03d41ee3cc7d5b150184b03eb9f2e579603ce9cd5289360d1ca47169174afc26a85079cf096ec91e23f487f0b38bb6cd5fb7e5197530582155b16a5ce748
 DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
 DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
 DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
deleted file mode 100644
index bd6f3db60c4b..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_rc1.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230203.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild
deleted file mode 100644
index 4eeb65e55e83..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230203.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-18 10:07 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-18 10:07 UTC (permalink / raw
  To: gentoo-commits

commit:     fbb941bd151462ca50af8dbbb997233b7e14418c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 18 10:03:26 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 18 10:07:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fbb941bd

sys-libs/libcxx: Add 17.0.0_pre20230218 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6700707ac012..bd76cfab9674 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,3 +7,4 @@ DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c
 DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
 DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
 DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
+DIST llvm-project-5e262d58c42668c78d932fab6bf75cf8c3b9d07e.tar.gz 179975303 BLAKE2B 184e7ff6e9a7de77d4a8c36c6910e4e3c7c5e9ff73ed6111ec4704dd457205278abb258ff37170e41a6b21c9ae3f243a80b34e4b17f8977fb9a42876db6465b7 SHA512 ec7e16a4d8f8292d1184ae08c1c5eda0dba1876e7d9c228eb0added5cde45f3094fde7eb1da662d436f85315850310cc0612210ff3ddf82967d5c2de0047a724

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-23 15:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-23 15:14 UTC (permalink / raw
  To: gentoo-commits

commit:     b2a21102c8ba97cdbb001147661c7ba9a695c7d7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 22 14:30:53 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb 23 15:14:38 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2a21102

sys-libs/libcxx: Add 16.0.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index bd76cfab9674..8351510ec794 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,5 +6,7 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
 DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
+DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
+DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
 DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 DIST llvm-project-5e262d58c42668c78d932fab6bf75cf8c3b9d07e.tar.gz 179975303 BLAKE2B 184e7ff6e9a7de77d4a8c36c6910e4e3c7c5e9ff73ed6111ec4704dd457205278abb258ff37170e41a6b21c9ae3f243a80b34e4b17f8977fb9a42876db6465b7 SHA512 ec7e16a4d8f8292d1184ae08c1c5eda0dba1876e7d9c228eb0added5cde45f3094fde7eb1da662d436f85315850310cc0612210ff3ddf82967d5c2de0047a724

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-24  2:55 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2023-02-24  2:55 UTC (permalink / raw
  To: gentoo-commits

commit:     e38aa7f56d390d6351180994435366088febf9ea
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 23 18:06:43 2023 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Fri Feb 24 02:54:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e38aa7f5

sys-libs/libcxx: keyword 16.0.0_rc3 for ~loong

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
index 4eeb65e55e83..bd6f3db60c4b 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-25 19:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-25 19:08 UTC (permalink / raw
  To: gentoo-commits

commit:     b1721ea62f56010cdc3d39daab4c5cc04e352941
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 25 09:52:28 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 25 18:41:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1721ea6

sys-libs/libcxx: Add 17.0.0_pre20230225 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8351510ec794..f70193227a73 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6
 DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
 DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
 DIST llvm-project-5e262d58c42668c78d932fab6bf75cf8c3b9d07e.tar.gz 179975303 BLAKE2B 184e7ff6e9a7de77d4a8c36c6910e4e3c7c5e9ff73ed6111ec4704dd457205278abb258ff37170e41a6b21c9ae3f243a80b34e4b17f8977fb9a42876db6465b7 SHA512 ec7e16a4d8f8292d1184ae08c1c5eda0dba1876e7d9c228eb0added5cde45f3094fde7eb1da662d436f85315850310cc0612210ff3ddf82967d5c2de0047a724
+DIST llvm-project-b0676fb0fb0a44a4a1c4ec1f0270fef1f1842817.tar.gz 180277698 BLAKE2B d2c1e6a1942e51f5844c18605f38b005e9bb4123850a173e4c4b3d7b6a14f4986c7b276b40df4d0594ae04e869e92ba1a4269c5055c0229cfd28aa1bd709da4f SHA512 d1281b942dcc254641865f11b0c4fbd1d562d016681b6b7268549bed1cdb7d4536f743a8ed089095eaab9f4bfb9de624153f448bf13d0e22f8ea24a4d264df7b

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-02-28 13:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-02-28 13:10 UTC (permalink / raw
  To: gentoo-commits

commit:     b99bafa903ad905960f573cfc6717e61953d7f8d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 28 13:08:04 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Feb 28 13:08:04 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b99bafa9

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild | 204 -----------------------
 4 files changed, 616 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f70193227a73..c9896fc7486d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,10 +4,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.0rc2.src.tar.xz 117917640 BLAKE2B 92c6b1daaa500339403dcf530efb23e1d869c7b9cd8677a6680e57d5d087fb54182f009d58bdda714b62a5866d7fe3b10deedc1e251fffdaae513706d95325af SHA512 c68bb7f2a8004666ecc5c55e89e2ca1252b384e6240a2b7c5588b74794ffc6ce93bb4b0db394abba6436cce04a6de301e80821aeda04d7aab49efb96b6f8cf40
-DIST llvm-project-16.0.0rc2.src.tar.xz.sig 566 BLAKE2B 35b2a8edf3392e1c0e9bf7f1a5e6e18fdda3d98a2164947cebf0c19d7d7c7a459901060345745dff794cf99bea243fec5cb625ca68d7c73d31ac01f18cbaa58c SHA512 4f6d43f00c3bce36c3a005441473fe37fe2ca97df4b8dd306045bd0d8bd14406ae7068a3dea54d4535eaa37b7ccca54b3f5b6f5aef70a7dfc23ed336d4ad408c
 DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
 DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
-DIST llvm-project-22fb66eb94b643c858c2beecbcfac438a7fa29ed.tar.gz 179795537 BLAKE2B aef57ef739c52a8f8b2b327a8f6d8cce4734d9704018fb43a21468e56748e5d5b3d2d47fb4e95fd72b2af9f2e4be88839553e26fd7da08df60c5cc0f51c001d4 SHA512 9ed093ef7dac4891660aafbc5cad66bddefa796bff4dd70c792cc636268742142d82b84520ac2f5a5963521d7b9e4325440763ce0c88937f89722f07d3acd4b8
-DIST llvm-project-5e262d58c42668c78d932fab6bf75cf8c3b9d07e.tar.gz 179975303 BLAKE2B 184e7ff6e9a7de77d4a8c36c6910e4e3c7c5e9ff73ed6111ec4704dd457205278abb258ff37170e41a6b21c9ae3f243a80b34e4b17f8977fb9a42876db6465b7 SHA512 ec7e16a4d8f8292d1184ae08c1c5eda0dba1876e7d9c228eb0added5cde45f3094fde7eb1da662d436f85315850310cc0612210ff3ddf82967d5c2de0047a724
 DIST llvm-project-b0676fb0fb0a44a4a1c4ec1f0270fef1f1842817.tar.gz 180277698 BLAKE2B d2c1e6a1942e51f5844c18605f38b005e9bb4123850a173e4c4b3d7b6a14f4986c7b276b40df4d0594ae04e869e92ba1a4269c5055c0229cfd28aa1bd709da4f SHA512 d1281b942dcc254641865f11b0c4fbd1d562d016681b6b7268549bed1cdb7d4536f743a8ed089095eaab9f4bfb9de624153f448bf13d0e22f8ea24a4d264df7b

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
deleted file mode 100644
index bd6f3db60c4b..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_rc2.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230211.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild
deleted file mode 100644
index 4eeb65e55e83..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230211.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230218.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild
deleted file mode 100644
index 4eeb65e55e83..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230218.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-05 12:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-05 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     0b56ff8cd4d3832d0513f0bdb7cdbcf70201dc1b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  4 18:26:05 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar  5 12:02:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0b56ff8c

sys-libs/libcxx: Add 17.0.0_pre20230304 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c9896fc7486d..58266724eb65 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,4 +6,5 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
 DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
+DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5
 DIST llvm-project-b0676fb0fb0a44a4a1c4ec1f0270fef1f1842817.tar.gz 180277698 BLAKE2B d2c1e6a1942e51f5844c18605f38b005e9bb4123850a173e4c4b3d7b6a14f4986c7b276b40df4d0594ae04e869e92ba1a4269c5055c0229cfd28aa1bd709da4f SHA512 d1281b942dcc254641865f11b0c4fbd1d562d016681b6b7268549bed1cdb7d4536f743a8ed089095eaab9f4bfb9de624153f448bf13d0e22f8ea24a4d264df7b

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-10 19:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-10 19:23 UTC (permalink / raw
  To: gentoo-commits

commit:     7d3caa193d6d0b414cad4fda18f660b67a996af3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 10 16:14:24 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Mar 10 19:20:26 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d3caa19

sys-libs/libcxx: Remove 17.0.0_pre20230225

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 58266724eb65..54119b0cd2f2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,3 @@ DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c
 DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
 DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
 DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5
-DIST llvm-project-b0676fb0fb0a44a4a1c4ec1f0270fef1f1842817.tar.gz 180277698 BLAKE2B d2c1e6a1942e51f5844c18605f38b005e9bb4123850a173e4c4b3d7b6a14f4986c7b276b40df4d0594ae04e869e92ba1a4269c5055c0229cfd28aa1bd709da4f SHA512 d1281b942dcc254641865f11b0c4fbd1d562d016681b6b7268549bed1cdb7d4536f743a8ed089095eaab9f4bfb9de624153f448bf13d0e22f8ea24a4d264df7b

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild
deleted file mode 100644
index 4eeb65e55e83..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230225.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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 dev-lang/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-11 15:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-11 15:46 UTC (permalink / raw
  To: gentoo-commits

commit:     3a97b72549ceea2aed710d2486974f7a1e23d91d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 11 08:36:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 11 15:46:07 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a97b725

sys-libs/libcxx: Bump to 16.0.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 54119b0cd2f2..cd18bd7e61ad 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,4 +6,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
 DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
+DIST llvm-project-16.0.0rc4.src.tar.xz 117930024 BLAKE2B 55cf032ad3ba52d2af0942fe1c627319ae95b466122d04b24a917c33e29139fae546d92c375715600190c02426b798803ead0ab7a97d86960cf98fca80e8815c SHA512 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc
+DIST llvm-project-16.0.0rc4.src.tar.xz.sig 566 BLAKE2B bfcf39070f32e16cfeae699d95d06f184b1331c3af403340c31cc5a973a3bb1faec0b6342445176cebed5819ddf68e4abfdaa8542ec425b1c822fc8c03c03349 SHA512 2af72e3d771e2361873007a944dcccfe81fbdbc3025a2101e03cbc15f1a173d39ceb94c4ae8966b1d7564bf004ee9a5ffa032e2334c0cf7154aea1090d04b00f
 DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-12  6:31 WANG Xuerui
  0 siblings, 0 replies; 608+ messages in thread
From: WANG Xuerui @ 2023-03-12  6:31 UTC (permalink / raw
  To: gentoo-commits

commit:     94af2f9046424d07e4afeb8eece9a0500a1f9f84
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 12 06:29:13 2023 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Sun Mar 12 06:29:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94af2f90

sys-libs/libcxx: keyword 16.0.0_rc4 for ~loong

Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
index 4eeb65e55e83..bd6f3db60c4b 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
+KEYWORDS="~loong"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-14 19:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-14 19:43 UTC (permalink / raw
  To: gentoo-commits

commit:     b239d26e2722fc41bcf6437eef284426da2029d4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 14 14:51:35 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Mar 14 19:43:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b239d26e

sys-libs/libcxx: Add 17.0.0_pre20230314 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index cd18bd7e61ad..95b92f88cd6a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f7141
 DIST llvm-project-16.0.0rc4.src.tar.xz 117930024 BLAKE2B 55cf032ad3ba52d2af0942fe1c627319ae95b466122d04b24a917c33e29139fae546d92c375715600190c02426b798803ead0ab7a97d86960cf98fca80e8815c SHA512 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc
 DIST llvm-project-16.0.0rc4.src.tar.xz.sig 566 BLAKE2B bfcf39070f32e16cfeae699d95d06f184b1331c3af403340c31cc5a973a3bb1faec0b6342445176cebed5819ddf68e4abfdaa8542ec425b1c822fc8c03c03349 SHA512 2af72e3d771e2361873007a944dcccfe81fbdbc3025a2101e03cbc15f1a173d39ceb94c4ae8966b1d7564bf004ee9a5ffa032e2334c0cf7154aea1090d04b00f
 DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5
+DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
new file mode 100644
index 000000000000..4eeb65e55e83
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-18 15:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-18 15:03 UTC (permalink / raw
  To: gentoo-commits

commit:     3b2ebbe25e415300c48efd2970c4156896e5e692
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 18 07:39:21 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 18 15:03:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b2ebbe2

sys-libs/libcxx: Bump to 16.0.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-16.0.0.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 95b92f88cd6a..ddf4d4d6feb1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -4,6 +4,8 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.0.src.tar.xz 117933476 BLAKE2B fa09cd8f647ce0daf5a7eae9ac03b99594a9b3193b12065f43f9a6731875243f2f5b354136bcadcb31622b246054e94f880eec3dab0bcd6ae89973fa9dca845c SHA512 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
+DIST llvm-project-16.0.0.src.tar.xz.sig 566 BLAKE2B daba130aa5662fbf7cc2e7aa8fa6b64f9cb355a72330f7a01a21b86389c6f2f85ae93de19ff08ba3f1cfe2834d9a2b7648bdf659caba3afdb2a0d13984774a54 SHA512 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
 DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
 DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
 DIST llvm-project-16.0.0rc4.src.tar.xz 117930024 BLAKE2B 55cf032ad3ba52d2af0942fe1c627319ae95b466122d04b24a917c33e29139fae546d92c375715600190c02426b798803ead0ab7a97d86960cf98fca80e8815c SHA512 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc

diff --git a/sys-libs/libcxx/libcxx-16.0.0.ebuild b/sys-libs/libcxx/libcxx-16.0.0.ebuild
new file mode 100644
index 000000000000..ebd073f968d0
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.0.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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 dev-lang/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-19  3:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-19  3:44 UTC (permalink / raw
  To: gentoo-commits

commit:     90f47fd1f1ad7a4adb2e293098f80ed9c4c2fe16
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 19 03:43:45 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar 19 03:44:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90f47fd1

sys-libs/libcxx: Fix typo in LLVM package name

Reported by Arfrever.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.6.ebuild             | 2 +-
 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild          | 2 +-
 sys-libs/libcxx/libcxx-15.0.7.ebuild             | 2 +-
 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild        | 2 +-
 sys-libs/libcxx/libcxx-16.0.0.ebuild             | 2 +-
 sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild         | 2 +-
 sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild         | 2 +-
 sys-libs/libcxx/libcxx-17.0.0.9999.ebuild        | 2 +-
 sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild | 2 +-
 sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 1ae6c77afc9c..9ac9d8ad89f9 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -54,7 +54,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index b0445e061e96..2ea0abb84b2c 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -54,7 +54,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
index c8284848d512..1d2b045156a9 100644
--- a/sys-libs/libcxx/libcxx-15.0.7.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
index 4eeb65e55e83..56140d06df64 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-16.0.0.ebuild b/sys-libs/libcxx/libcxx-16.0.0.ebuild
index ebd073f968d0..cdbee6be92d6 100644
--- a/sys-libs/libcxx/libcxx-16.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
index bd6f3db60c4b..c9983680a218 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
index bd6f3db60c4b..c9983680a218 100644
--- a/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
index 4eeb65e55e83..56140d06df64 100644
--- a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
index 4eeb65e55e83..56140d06df64 100644
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
index 4eeb65e55e83..56140d06df64 100644
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
@@ -53,7 +53,7 @@ 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 dev-lang/llvm; then
+	if [[ ${CHOST} != *-darwin* ]] || has_version sys-devel/llvm; then
 		LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
 	fi
 	python-any-r1_pkg_setup


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-20 13:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-20 13:10 UTC (permalink / raw
  To: gentoo-commits

commit:     14a02dce92fa917e38d6c0756f1359b5b6f62ecf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 20 13:08:49 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 20 13:10:43 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14a02dce

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   5 -
 sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild | 204 -----------------------
 4 files changed, 617 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ddf4d4d6feb1..f5a0c685bcf9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,9 +6,4 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0.src.tar.xz 117933476 BLAKE2B fa09cd8f647ce0daf5a7eae9ac03b99594a9b3193b12065f43f9a6731875243f2f5b354136bcadcb31622b246054e94f880eec3dab0bcd6ae89973fa9dca845c SHA512 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
 DIST llvm-project-16.0.0.src.tar.xz.sig 566 BLAKE2B daba130aa5662fbf7cc2e7aa8fa6b64f9cb355a72330f7a01a21b86389c6f2f85ae93de19ff08ba3f1cfe2834d9a2b7648bdf659caba3afdb2a0d13984774a54 SHA512 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
-DIST llvm-project-16.0.0rc3.src.tar.xz 117914548 BLAKE2B 18ffa35eb73c7cc4626d7b6b7b30aade7171ee2e17fb8d72e79a67185e809f611fefa4cfef17e5cd16822a5a70de2222534dc9f146fc53987eb49ff6a9d98c18 SHA512 d14e5e5ec984a0dc0292a2d27440398b3e32f120c1579517054dcb1a05dbc4ac5f1c6d078a3d6ef8597a71af6f22863868680a972a571839dcd573418b4a4697
-DIST llvm-project-16.0.0rc3.src.tar.xz.sig 566 BLAKE2B 43683d2d7b266a847516f71412bf6236a355462430330fc0da1d624fb8dfbc98bfc982d367baee74d5b4964a9e82e7a4a6ea84bdcff3996d246932f516cced1a SHA512 61adc4dc3eb5a4c11a7f96f9267ff37895e5845a08d48a609a03a2696c1b6bca5af5861a6f28de936c48e6d621bf282170589187f2cb593a912b9078300cf47c
-DIST llvm-project-16.0.0rc4.src.tar.xz 117930024 BLAKE2B 55cf032ad3ba52d2af0942fe1c627319ae95b466122d04b24a917c33e29139fae546d92c375715600190c02426b798803ead0ab7a97d86960cf98fca80e8815c SHA512 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc
-DIST llvm-project-16.0.0rc4.src.tar.xz.sig 566 BLAKE2B bfcf39070f32e16cfeae699d95d06f184b1331c3af403340c31cc5a973a3bb1faec0b6342445176cebed5819ddf68e4abfdaa8542ec425b1c822fc8c03c03349 SHA512 2af72e3d771e2361873007a944dcccfe81fbdbc3025a2101e03cbc15f1a173d39ceb94c4ae8966b1d7564bf004ee9a5ffa032e2334c0cf7154aea1090d04b00f
-DIST llvm-project-2708869801ae00f4681f6b2d9d69b25b3fce26b6.tar.gz 180523586 BLAKE2B cf918d1e23f922d201a44531c9765b7d8ec2b3b8499ea7954845abcd5fa2687e85b3a34819a583c4f4a6d6e1baa49dbac0b4450cd6b9b322b0f13c88cd7da93c SHA512 18cb00e93d819993a925ae0467d382bc952d82c1eb92dbbb5bb3cdf87043269948670713734ddc3ea4ec50544e54dd11b6747496f7eaa02479374ab9ad075aa5
 DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068

diff --git a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
deleted file mode 100644
index c9983680a218..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_rc3.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-16.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
deleted file mode 100644
index c9983680a218..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0_rc4.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~loong"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230304.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
deleted file mode 100644
index 56140d06df64..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230304.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-03-25 11:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-03-25 11:22 UTC (permalink / raw
  To: gentoo-commits

commit:     0e83d9c01c6dd2eddb5f3d8c8603ba3d8e8e563e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 25 07:08:46 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 25 11:21:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e83d9c0

sys-libs/libcxx: Add 17.0.0_pre20230325 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230325.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f5a0c685bcf9..790bdb1cd00c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
+DIST llvm-project-0be1fbac2a7797399c0970e3f4033288036b65f6.tar.gz 181527027 BLAKE2B f2f3b3a33b2a50f3b4f97df16a948e5ed5e642f737de8e852da164aefd3ed9af7bbd0fc1de9f7c9dbee6b9b8ebe11e52af8cc79b8a130cff405fc1238afe217d SHA512 946cd1435a26673c851bdda170864d0c362dfc14d1a7087fbe6303ac79e1821e9c53b72e92d15ad7180b1d6ea3bcc0458e7bec37acc3e8b8bcca8efbb9ff2387
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230325.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230325.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230325.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-05  6:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-05  6:20 UTC (permalink / raw
  To: gentoo-commits

commit:     f85f75cccc21510d0e61b236e55ca68c8c490992
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  5 06:20:05 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr  5 06:20:05 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f85f75cc

sys-libs/libcxx: 16.x is now 16.0.2.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-16.0.0.9999.ebuild => libcxx-16.2.0.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.2.0.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-16.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-16.2.0.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-05  6:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-05  6:25 UTC (permalink / raw
  To: gentoo-commits

commit:     53fd8aa572611f8d07bc020e160e22e171119d0f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  5 06:21:29 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr  5 06:24:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=53fd8aa5

sys-libs/libcxx: fix PV to be 16.0.2.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-16.2.0.9999.ebuild => libcxx-16.0.2.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.2.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.2.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-16.2.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-16.0.2.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-05 18:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-05 18:12 UTC (permalink / raw
  To: gentoo-commits

commit:     a381843503b5a1a26641dd1a4232da45f87aaab6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  5 18:11:44 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr  5 18:11:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3818435

sys-libs/libcxx: Bump to 16.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-16.0.1.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 790bdb1cd00c..61661041af2a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.0.src.tar.xz 117933476 BLAKE2B fa09cd8f647ce0daf5a7eae9ac03b99594a9b3193b12065f43f9a6731875243f2f5b354136bcadcb31622b246054e94f880eec3dab0bcd6ae89973fa9dca845c SHA512 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
 DIST llvm-project-16.0.0.src.tar.xz.sig 566 BLAKE2B daba130aa5662fbf7cc2e7aa8fa6b64f9cb355a72330f7a01a21b86389c6f2f85ae93de19ff08ba3f1cfe2834d9a2b7648bdf659caba3afdb2a0d13984774a54 SHA512 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
+DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03fa74d603dda5a458463ca0cb261fe6949290c46a70abbd1ad1c556e08da3adc5df577305e267c1135214b900d78502e39b46bc5 SHA512 98fc11c0ad90d5e5a2cb123b497b89a1583fe7f91b3ff05c335037801ef66cbfab08f6d2eff539f0da238e9685d4bc7a9fb2578e28864fc9e9357b84129cefaa
+DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
 DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068

diff --git a/sys-libs/libcxx/libcxx-16.0.1.ebuild b/sys-libs/libcxx/libcxx-16.0.1.ebuild
new file mode 100644
index 000000000000..cdbee6be92d6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.1.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-11  3:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-11  3:14 UTC (permalink / raw
  To: gentoo-commits

commit:     ea7b4cfdb2c2ef13b098e7af09d8afda27b33cff
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 11 02:46:34 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Apr 11 03:14:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea7b4cfd

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-16.0.0.ebuild             | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild | 204 -----------------------
 3 files changed, 411 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 61661041af2a..578c6e33bfea 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,8 +5,5 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.0.src.tar.xz 117933476 BLAKE2B fa09cd8f647ce0daf5a7eae9ac03b99594a9b3193b12065f43f9a6731875243f2f5b354136bcadcb31622b246054e94f880eec3dab0bcd6ae89973fa9dca845c SHA512 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
-DIST llvm-project-16.0.0.src.tar.xz.sig 566 BLAKE2B daba130aa5662fbf7cc2e7aa8fa6b64f9cb355a72330f7a01a21b86389c6f2f85ae93de19ff08ba3f1cfe2834d9a2b7648bdf659caba3afdb2a0d13984774a54 SHA512 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
 DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03fa74d603dda5a458463ca0cb261fe6949290c46a70abbd1ad1c556e08da3adc5df577305e267c1135214b900d78502e39b46bc5 SHA512 98fc11c0ad90d5e5a2cb123b497b89a1583fe7f91b3ff05c335037801ef66cbfab08f6d2eff539f0da238e9685d4bc7a9fb2578e28864fc9e9357b84129cefaa
 DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
-DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068

diff --git a/sys-libs/libcxx/libcxx-16.0.0.ebuild b/sys-libs/libcxx/libcxx-16.0.0.ebuild
deleted file mode 100644
index cdbee6be92d6..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.0.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230314.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
deleted file mode 100644
index 56140d06df64..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230314.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-14 19:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-14 19:06 UTC (permalink / raw
  To: gentoo-commits

commit:     f4c1c97f21cd1e686bedcee16b2b286cffab6dfc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 14 19:03:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Apr 14 19:06:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4c1c97f

sys-libs/libcxx: Add 17.0.0_pre20230414 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230414.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 578c6e33bfea..54ee46ecb55e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,3 +7,4 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03fa74d603dda5a458463ca0cb261fe6949290c46a70abbd1ad1c556e08da3adc5df577305e267c1135214b900d78502e39b46bc5 SHA512 98fc11c0ad90d5e5a2cb123b497b89a1583fe7f91b3ff05c335037801ef66cbfab08f6d2eff539f0da238e9685d4bc7a9fb2578e28864fc9e9357b84129cefaa
 DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
+DIST llvm-project-5c60a08c696c0420ddc5fdad5b8e50a7528cb3bf.tar.gz 182291041 BLAKE2B f5997611e0293df515d4494d14895cc8fbe22b536f5c419e4ad7d098acbf2b1046ceb332d865eacdae0b7fa1a77b78090551976835dd1b95b5270c9f6e12e410 SHA512 6cda8e55b4fc70e94838c772c56213c811affda96fb98a03d432348f995a313447d0e0e84533350e1fda3162d82633b260ccd8e3b1d59d3216187b44dc5556fb

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230414.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230414.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230414.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-19 15:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-19 15:43 UTC (permalink / raw
  To: gentoo-commits

commit:     40a01a912a2a77184314f6fec384249d098b24b8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 19 15:40:38 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 19 15:40:38 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40a01a91

sys-libs/libcxx: 16.x live is now 16.0.3.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-16.0.2.9999.ebuild => libcxx-16.0.3.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.2.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.3.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-16.0.2.9999.ebuild
rename to sys-libs/libcxx/libcxx-16.0.3.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-19 19:42 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-19 19:42 UTC (permalink / raw
  To: gentoo-commits

commit:     fad06ae88671911a66e788aa1bf1ac5f25129963
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 19 15:45:31 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 19 19:42:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fad06ae8

sys-libs/libcxx: Bump to 16.0.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-16.0.2.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 54ee46ecb55e..1ea6a3ea47d9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03fa74d603dda5a458463ca0cb261fe6949290c46a70abbd1ad1c556e08da3adc5df577305e267c1135214b900d78502e39b46bc5 SHA512 98fc11c0ad90d5e5a2cb123b497b89a1583fe7f91b3ff05c335037801ef66cbfab08f6d2eff539f0da238e9685d4bc7a9fb2578e28864fc9e9357b84129cefaa
 DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
+DIST llvm-project-16.0.2.src.tar.xz 117995768 BLAKE2B b329b2b123428f3a966a96f074a75520f07d12fc13ec755403cff2346b23195e6a0c05ca9e789b4cf5b4b3557a922bd41d8dffb6056ee33fbbf2b81001511fae SHA512 4ca76aaaca8812a06a94071e7444a3213d85dca51ea86f6125f854776f69a3e088a92d0621e3911e526f280b35bfb778fb3742c6010d3ed1eba605c08720377c
+DIST llvm-project-16.0.2.src.tar.xz.sig 566 BLAKE2B 8243748ac27e4eec3cc011371e179e19f1005336f07d956fd358f649d1429c8d0ea22ecc376b1dec9fe3db971467ad1dd63e97bb089885d0e1994eeab26b6fd7 SHA512 dbe9367a259954a38f2369b2f226726162090227f1a5ae8c8809eaae47cad7b3b26c754633e6e5c54cacd6360a504d7ba4c659d9232c1648388d657a2aaad10c
 DIST llvm-project-5c60a08c696c0420ddc5fdad5b8e50a7528cb3bf.tar.gz 182291041 BLAKE2B f5997611e0293df515d4494d14895cc8fbe22b536f5c419e4ad7d098acbf2b1046ceb332d865eacdae0b7fa1a77b78090551976835dd1b95b5270c9f6e12e410 SHA512 6cda8e55b4fc70e94838c772c56213c811affda96fb98a03d432348f995a313447d0e0e84533350e1fda3162d82633b260ccd8e3b1d59d3216187b44dc5556fb

diff --git a/sys-libs/libcxx/libcxx-16.0.2.ebuild b/sys-libs/libcxx/libcxx-16.0.2.ebuild
new file mode 100644
index 000000000000..cdbee6be92d6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.2.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-04-21 17:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-04-21 17:16 UTC (permalink / raw
  To: gentoo-commits

commit:     c313372c61dae3dfdf5b418c5c1d734d89de7dbb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 21 12:18:03 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Apr 21 17:15:58 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c313372c

sys-libs/libcxx: Add 17.0.0_pre20230421 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230421.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1ea6a3ea47d9..a6a3643c5345 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec
 DIST llvm-project-16.0.2.src.tar.xz 117995768 BLAKE2B b329b2b123428f3a966a96f074a75520f07d12fc13ec755403cff2346b23195e6a0c05ca9e789b4cf5b4b3557a922bd41d8dffb6056ee33fbbf2b81001511fae SHA512 4ca76aaaca8812a06a94071e7444a3213d85dca51ea86f6125f854776f69a3e088a92d0621e3911e526f280b35bfb778fb3742c6010d3ed1eba605c08720377c
 DIST llvm-project-16.0.2.src.tar.xz.sig 566 BLAKE2B 8243748ac27e4eec3cc011371e179e19f1005336f07d956fd358f649d1429c8d0ea22ecc376b1dec9fe3db971467ad1dd63e97bb089885d0e1994eeab26b6fd7 SHA512 dbe9367a259954a38f2369b2f226726162090227f1a5ae8c8809eaae47cad7b3b26c754633e6e5c54cacd6360a504d7ba4c659d9232c1648388d657a2aaad10c
 DIST llvm-project-5c60a08c696c0420ddc5fdad5b8e50a7528cb3bf.tar.gz 182291041 BLAKE2B f5997611e0293df515d4494d14895cc8fbe22b536f5c419e4ad7d098acbf2b1046ceb332d865eacdae0b7fa1a77b78090551976835dd1b95b5270c9f6e12e410 SHA512 6cda8e55b4fc70e94838c772c56213c811affda96fb98a03d432348f995a313447d0e0e84533350e1fda3162d82633b260ccd8e3b1d59d3216187b44dc5556fb
+DIST llvm-project-5ea158077ec9ca50857ede5cbb0b27c61663fd55.tar.gz 182543024 BLAKE2B 32f5a9ddaa6c7e283d97256d7bd68634f2f8ed6d7167e743ba8076809ea1a3a7159f9ccc56a6e5a8838481cade07389669d8a35b17b5922da0cbef04c80131f8 SHA512 3d180c04ef39adbc9c6ee485e21cdf63fde362f0a22026b00a6d3eba6243e4c8e96fc088335f31051e54f4546d62569131a671d2e655ea735d597361f5732827

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230421.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230421.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230421.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-02 17:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-02 17:18 UTC (permalink / raw
  To: gentoo-commits

commit:     b905d447d5f0e34143e7303f9ef2b7cf763de5ab
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue May  2 12:06:35 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue May  2 17:18:29 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b905d447

sys-libs/libcxx: Add 17.0.0_pre20230502 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a6a3643c5345..86634d44dbfc 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,6 @@ DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03f
 DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
 DIST llvm-project-16.0.2.src.tar.xz 117995768 BLAKE2B b329b2b123428f3a966a96f074a75520f07d12fc13ec755403cff2346b23195e6a0c05ca9e789b4cf5b4b3557a922bd41d8dffb6056ee33fbbf2b81001511fae SHA512 4ca76aaaca8812a06a94071e7444a3213d85dca51ea86f6125f854776f69a3e088a92d0621e3911e526f280b35bfb778fb3742c6010d3ed1eba605c08720377c
 DIST llvm-project-16.0.2.src.tar.xz.sig 566 BLAKE2B 8243748ac27e4eec3cc011371e179e19f1005336f07d956fd358f649d1429c8d0ea22ecc376b1dec9fe3db971467ad1dd63e97bb089885d0e1994eeab26b6fd7 SHA512 dbe9367a259954a38f2369b2f226726162090227f1a5ae8c8809eaae47cad7b3b26c754633e6e5c54cacd6360a504d7ba4c659d9232c1648388d657a2aaad10c
+DIST llvm-project-52882de0e641487329c9e093a90ea3dad01842c8.tar.gz 182953335 BLAKE2B 98682729992d73202e35b540d5d0d87e2acf44e4ab6896a0b6f9ac4a7423f55ad370ae1d7e919a6c86dc7f138a66890ac89b852b03305612d248ab567833f8be SHA512 3685aff0f648e9b477e1e01edebe4799498c21587e2ed5577e2fdef98bb21ea215e206606a11692fbb93a0989fd59fd324faff2c4d97b7afca0851b53f123f05
 DIST llvm-project-5c60a08c696c0420ddc5fdad5b8e50a7528cb3bf.tar.gz 182291041 BLAKE2B f5997611e0293df515d4494d14895cc8fbe22b536f5c419e4ad7d098acbf2b1046ceb332d865eacdae0b7fa1a77b78090551976835dd1b95b5270c9f6e12e410 SHA512 6cda8e55b4fc70e94838c772c56213c811affda96fb98a03d432348f995a313447d0e0e84533350e1fda3162d82633b260ccd8e3b1d59d3216187b44dc5556fb
 DIST llvm-project-5ea158077ec9ca50857ede5cbb0b27c61663fd55.tar.gz 182543024 BLAKE2B 32f5a9ddaa6c7e283d97256d7bd68634f2f8ed6d7167e743ba8076809ea1a3a7159f9ccc56a6e5a8838481cade07389669d8a35b17b5922da0cbef04c80131f8 SHA512 3d180c04ef39adbc9c6ee485e21cdf63fde362f0a22026b00a6d3eba6243e4c8e96fc088335f31051e54f4546d62569131a671d2e655ea735d597361f5732827

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-03 11:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-03 11:09 UTC (permalink / raw
  To: gentoo-commits

commit:     199eae39c18ee55b3c9265d7827c79519949aa27
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May  3 10:04:26 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May  3 11:09:25 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=199eae39

sys-libs/libcxx: Bump to 16.0.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-16.0.3.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 86634d44dbfc..a6bfb2c36ff1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,6 +9,8 @@ DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03f
 DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
 DIST llvm-project-16.0.2.src.tar.xz 117995768 BLAKE2B b329b2b123428f3a966a96f074a75520f07d12fc13ec755403cff2346b23195e6a0c05ca9e789b4cf5b4b3557a922bd41d8dffb6056ee33fbbf2b81001511fae SHA512 4ca76aaaca8812a06a94071e7444a3213d85dca51ea86f6125f854776f69a3e088a92d0621e3911e526f280b35bfb778fb3742c6010d3ed1eba605c08720377c
 DIST llvm-project-16.0.2.src.tar.xz.sig 566 BLAKE2B 8243748ac27e4eec3cc011371e179e19f1005336f07d956fd358f649d1429c8d0ea22ecc376b1dec9fe3db971467ad1dd63e97bb089885d0e1994eeab26b6fd7 SHA512 dbe9367a259954a38f2369b2f226726162090227f1a5ae8c8809eaae47cad7b3b26c754633e6e5c54cacd6360a504d7ba4c659d9232c1648388d657a2aaad10c
+DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602
+DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58
 DIST llvm-project-52882de0e641487329c9e093a90ea3dad01842c8.tar.gz 182953335 BLAKE2B 98682729992d73202e35b540d5d0d87e2acf44e4ab6896a0b6f9ac4a7423f55ad370ae1d7e919a6c86dc7f138a66890ac89b852b03305612d248ab567833f8be SHA512 3685aff0f648e9b477e1e01edebe4799498c21587e2ed5577e2fdef98bb21ea215e206606a11692fbb93a0989fd59fd324faff2c4d97b7afca0851b53f123f05
 DIST llvm-project-5c60a08c696c0420ddc5fdad5b8e50a7528cb3bf.tar.gz 182291041 BLAKE2B f5997611e0293df515d4494d14895cc8fbe22b536f5c419e4ad7d098acbf2b1046ceb332d865eacdae0b7fa1a77b78090551976835dd1b95b5270c9f6e12e410 SHA512 6cda8e55b4fc70e94838c772c56213c811affda96fb98a03d432348f995a313447d0e0e84533350e1fda3162d82633b260ccd8e3b1d59d3216187b44dc5556fb
 DIST llvm-project-5ea158077ec9ca50857ede5cbb0b27c61663fd55.tar.gz 182543024 BLAKE2B 32f5a9ddaa6c7e283d97256d7bd68634f2f8ed6d7167e743ba8076809ea1a3a7159f9ccc56a6e5a8838481cade07389669d8a35b17b5922da0cbef04c80131f8 SHA512 3d180c04ef39adbc9c6ee485e21cdf63fde362f0a22026b00a6d3eba6243e4c8e96fc088335f31051e54f4546d62569131a671d2e655ea735d597361f5732827

diff --git a/sys-libs/libcxx/libcxx-16.0.3.ebuild b/sys-libs/libcxx/libcxx-16.0.3.ebuild
new file mode 100644
index 000000000000..cdbee6be92d6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.3.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-06 14:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-06 14:10 UTC (permalink / raw
  To: gentoo-commits

commit:     35d348c061fb8fe97b5d003dcca5ecd2ca58fd09
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May  6 14:07:13 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  6 14:10:34 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35d348c0

sys-libs/libcxx: 16.x live is now 16.0.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-16.0.3.9999.ebuild => libcxx-16.0.4.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.4.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-16.0.3.9999.ebuild
rename to sys-libs/libcxx/libcxx-16.0.4.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-12 18:26 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-12 18:26 UTC (permalink / raw
  To: gentoo-commits

commit:     1abc521ddd4ebba1c11d4e55bc1124c53e313040
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri May 12 13:56:49 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri May 12 18:26:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1abc521d

sys-libs/libcxx: Add 17.0.0_pre20230512 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 24caa0ea797c..9e92c73cb7ae 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,3 +7,4 @@ DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c
 DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602
 DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58
 DIST llvm-project-52882de0e641487329c9e093a90ea3dad01842c8.tar.gz 182953335 BLAKE2B 98682729992d73202e35b540d5d0d87e2acf44e4ab6896a0b6f9ac4a7423f55ad370ae1d7e919a6c86dc7f138a66890ac89b852b03305612d248ab567833f8be SHA512 3685aff0f648e9b477e1e01edebe4799498c21587e2ed5577e2fdef98bb21ea215e206606a11692fbb93a0989fd59fd324faff2c4d97b7afca0851b53f123f05
+DIST llvm-project-7d436d56b60b36508b94e39d08761f1405a9c770.tar.gz 183363091 BLAKE2B e0d3520814b3455e33107715697f00d653ad46bb8d8200caf42c42743520f389217ea2e57449bbc2e98126b602b2aa344e4125e4b1f92152f7957a11a9b9a150 SHA512 65a8e30702217e5e1309efe3daeda5115eeb2e8d25238db1fa4e8dcfc729d75655a10b3394f2f70b7e7efb8ea33a31b6e2482065cc81805023101da00584a81e

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-17  6:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-17  6:25 UTC (permalink / raw
  To: gentoo-commits

commit:     a7e0333f3a7503a32ad9069993894db1f57c684b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 17 06:22:10 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 17 06:25:31 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a7e0333f

sys-libs/libcxx: 16.x live is now 16.0.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-16.0.4.9999.ebuild => libcxx-16.0.5.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.4.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.5.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-16.0.4.9999.ebuild
rename to sys-libs/libcxx/libcxx-16.0.5.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-18  3:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-18  3:14 UTC (permalink / raw
  To: gentoo-commits

commit:     06700f7c9793a7cf72e87f61ac6d4e19ebd9aaf8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 17 15:13:43 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May 18 03:14:41 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06700f7c

sys-libs/libcxx: Bump to 16.0.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-16.0.4.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9e92c73cb7ae..28722ba7e22a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,5 +6,7 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab91d29ba65d33c8041274de0ecdbce08ae4fe1c8c3b120db9ca625f42fdbb2301537b4ffe8f7add701c178282be4f583fa0c8ca SHA512 2eb5eca1cbee92a499d7fba5729b61f31186353bc0545b17eefa300cf2b27c8d9a2f307443b2c1c9fe1b0ba412abf5143fdd4d25aaeb33d975a9a834221d7602
 DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58
+DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95
+DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7
 DIST llvm-project-52882de0e641487329c9e093a90ea3dad01842c8.tar.gz 182953335 BLAKE2B 98682729992d73202e35b540d5d0d87e2acf44e4ab6896a0b6f9ac4a7423f55ad370ae1d7e919a6c86dc7f138a66890ac89b852b03305612d248ab567833f8be SHA512 3685aff0f648e9b477e1e01edebe4799498c21587e2ed5577e2fdef98bb21ea215e206606a11692fbb93a0989fd59fd324faff2c4d97b7afca0851b53f123f05
 DIST llvm-project-7d436d56b60b36508b94e39d08761f1405a9c770.tar.gz 183363091 BLAKE2B e0d3520814b3455e33107715697f00d653ad46bb8d8200caf42c42743520f389217ea2e57449bbc2e98126b602b2aa344e4125e4b1f92152f7957a11a9b9a150 SHA512 65a8e30702217e5e1309efe3daeda5115eeb2e8d25238db1fa4e8dcfc729d75655a10b3394f2f70b7e7efb8ea33a31b6e2482065cc81805023101da00584a81e

diff --git a/sys-libs/libcxx/libcxx-16.0.4.ebuild b/sys-libs/libcxx/libcxx-16.0.4.ebuild
new file mode 100644
index 000000000000..cdbee6be92d6
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.4.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-21  4:59 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-21  4:59 UTC (permalink / raw
  To: gentoo-commits

commit:     79fb19e4ffdd105d9b8cd2bac0ad18c27bc1948b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 20 19:20:22 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 21 04:03:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=79fb19e4

sys-libs/libcxx: Add 17.0.0_pre20230520 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild | 211 +++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 28722ba7e22a..5592133d2920 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fb
 DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7
 DIST llvm-project-52882de0e641487329c9e093a90ea3dad01842c8.tar.gz 182953335 BLAKE2B 98682729992d73202e35b540d5d0d87e2acf44e4ab6896a0b6f9ac4a7423f55ad370ae1d7e919a6c86dc7f138a66890ac89b852b03305612d248ab567833f8be SHA512 3685aff0f648e9b477e1e01edebe4799498c21587e2ed5577e2fdef98bb21ea215e206606a11692fbb93a0989fd59fd324faff2c4d97b7afca0851b53f123f05
 DIST llvm-project-7d436d56b60b36508b94e39d08761f1405a9c770.tar.gz 183363091 BLAKE2B e0d3520814b3455e33107715697f00d653ad46bb8d8200caf42c42743520f389217ea2e57449bbc2e98126b602b2aa344e4125e4b1f92152f7957a11a9b9a150 SHA512 65a8e30702217e5e1309efe3daeda5115eeb2e8d25238db1fa4e8dcfc729d75655a10b3394f2f70b7e7efb8ea33a31b6e2482065cc81805023101da00584a81e
+DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild
new file mode 100644
index 000000000000..e8f7b568adba
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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() {
+	llvm.org_src_prepare
+
+	# not deselected properly on 32-bit arches
+	rm ../libcxx/test/std/input.output/string.streams/stringstream.members/gcount.pass.cpp || die
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-27  5:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-27  5:52 UTC (permalink / raw
  To: gentoo-commits

commit:     547a704c421f17ec0dc2f069a9673987dc1cf8df
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 27 05:48:25 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 27 05:51:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=547a704c

sys-libs/libcxx: Remove old snapshots

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild | 204 -----------------------
 3 files changed, 410 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5592133d2920..da9707b32d70 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,6 +8,4 @@ DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab
 DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58
 DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95
 DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7
-DIST llvm-project-52882de0e641487329c9e093a90ea3dad01842c8.tar.gz 182953335 BLAKE2B 98682729992d73202e35b540d5d0d87e2acf44e4ab6896a0b6f9ac4a7423f55ad370ae1d7e919a6c86dc7f138a66890ac89b852b03305612d248ab567833f8be SHA512 3685aff0f648e9b477e1e01edebe4799498c21587e2ed5577e2fdef98bb21ea215e206606a11692fbb93a0989fd59fd324faff2c4d97b7afca0851b53f123f05
-DIST llvm-project-7d436d56b60b36508b94e39d08761f1405a9c770.tar.gz 183363091 BLAKE2B e0d3520814b3455e33107715697f00d653ad46bb8d8200caf42c42743520f389217ea2e57449bbc2e98126b602b2aa344e4125e4b1f92152f7957a11a9b9a150 SHA512 65a8e30702217e5e1309efe3daeda5115eeb2e8d25238db1fa4e8dcfc729d75655a10b3394f2f70b7e7efb8ea33a31b6e2482065cc81805023101da00584a81e
 DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild
deleted file mode 100644
index 56140d06df64..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230502.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230512.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild
deleted file mode 100644
index 56140d06df64..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230512.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-05-27 13:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-05-27 13:21 UTC (permalink / raw
  To: gentoo-commits

commit:     70b8c92bb7391306ab1a0223f44699b15f1e9034
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 27 07:45:57 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 27 13:20:38 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70b8c92b

sys-libs/libcxx: Add 17.0.0_pre20230526 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230526.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index da9707b32d70..ac07524ea9e2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,4 +8,5 @@ DIST llvm-project-16.0.3.src.tar.xz 117998136 BLAKE2B 6117586a117c30515e9a5623ab
 DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7559bd2ea42c7b771999f58893a48d66b1b056b476a7022c70e2ab8f11dba8318ccc141f97a05ece3b9ed3b4405a6890b0c3a SHA512 cdd5e1c2a252ba58f9b7f8687d6cf9a330c188988707bd72f4632a8158a2db9ac180b3936da99b87e7e99886c39cb8517ebbb04b7d1be198e76964e31ec8dc58
 DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95
 DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7
+DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3
 DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230526.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230526.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230526.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-02 15:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-02 15:31 UTC (permalink / raw
  To: gentoo-commits

commit:     104e85a5f7b295648f0a68b399069a302436bddc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  2 15:28:26 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jun  2 15:31:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=104e85a5

sys-libs/libcxx: Remove old snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild | 211 -----------------------
 2 files changed, 212 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ac07524ea9e2..9c64455b37b9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,3 @@ DIST llvm-project-16.0.3.src.tar.xz.sig 566 BLAKE2B bbd96268b006fecffd7402452ae7
 DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fbf5e02da973a21e3929c1ac8d1e3e7b268d39db97611e15654ca7e6527add24542d0eed0ee2b1b9d85dfd0ba661e55356bac5d3 SHA512 860bcb999005f55bed25691304983d7bf707f8e3246000595b412b9e88f4a1614be0adb43bbff9c30f49b969373fa0becab02a56ac37915a5f83c52ca8ea3f95
 DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7
 DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3
-DIST llvm-project-abbb22cc0c9c33dedb8d53c2bd3e703f92baace7.tar.gz 183193919 BLAKE2B 75c63d39918f7ec0faca0b1d03ba17dbd7d39a6f1d3a031dcb005ae1729933d8481f0bd745ec029ab21779525b2ddaf2989eaca2aed2b0e9b60c50ef71c7fc11 SHA512 f0c1b6fe2e087db202d32de05613b7570bd9a82dfef2e464014c9d4c9ba02c20d423cb783aa40ce5e9c9e074288efb2e5b6d70d55913bd285108e747400f55e7

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild
deleted file mode 100644
index e8f7b568adba..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230520.ebuild
+++ /dev/null
@@ -1,211 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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() {
-	llvm.org_src_prepare
-
-	# not deselected properly on 32-bit arches
-	rm ../libcxx/test/std/input.output/string.streams/stringstream.members/gcount.pass.cpp || die
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-04  6:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-04  6:21 UTC (permalink / raw
  To: gentoo-commits

commit:     068fb7c65720a6b202323489c33d8158418117c9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  4 06:11:49 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jun  4 06:21:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=068fb7c6

sys-libs/libcxx: Add 17.0.0_pre20230602 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230602.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f28894756c9c..c4cdeac6ee76 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8ef
 DIST llvm-project-16.0.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afbca5cddc6fbad6c9728726f7158f290ab87d464ff657e89e1c8fc3c474362cc865ff13c5d55ef758c848ea3e660d732cb2fdefa SHA512 7008e7e9c8c2246fe98ba3f0c0fa91e41c88c4da427bf1cfdcce7ef57e5ea838efe7c58c523a7d1708e70d64a4338afe16d06fba2fc7ac5a6c19ca3d6ee41e99
 DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
 DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3
+DIST llvm-project-f9753ef1893c3d953a0244e7935d3997499b079a.tar.gz 185505236 BLAKE2B 570a8937788027ee2cef0dad6be693c57b4a5634c0c1fc2bc1c2f534fb4ae00203f14b1bcf0a0f241e7e1e8c25120dc6ea7ede2a10bed397e1cc377318ebe7a0 SHA512 c12eade7c9790ec2a790017b1451a15f0ff7d1b60879f08a448edcb4f162703650b244fdc2fc284335dff4b2a37ef5d488e0d771abee79b49cac94b9e478f010

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230602.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230602.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230602.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-10 11:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-10 11:23 UTC (permalink / raw
  To: gentoo-commits

commit:     fc7a74b4a82fb3ed110922678ee0121fff2f887d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 10 09:00:20 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 10 11:22:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc7a74b4

sys-libs/libcxx: Add 17.0.0_pre20230609 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c4cdeac6ee76..e0aae2bcafde 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,6 @@ DIST llvm-project-16.0.4.src.tar.xz 117996332 BLAKE2B 2ea3ef25290ce6180d271e42fb
 DIST llvm-project-16.0.4.src.tar.xz.sig 566 BLAKE2B 43cb2147f12f98f864797158e8efcfed9c6780fae3b5c71c0f1aea19a4131ee91c36bdf5b10e44f478f2370c8d22a9038038ecd607f25a95f2d3e33628eb9ac0 SHA512 c902d1b652e6e144fcf74f550539f56665475b6bdf673ba5bf2f1731c3bb8f5717ed56433d488c54bbf2f429b432da84e0bfb4b5fb5f2b7fa208b4f24f682be7
 DIST llvm-project-16.0.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afbca5cddc6fbad6c9728726f7158f290ab87d464ff657e89e1c8fc3c474362cc865ff13c5d55ef758c848ea3e660d732cb2fdefa SHA512 7008e7e9c8c2246fe98ba3f0c0fa91e41c88c4da427bf1cfdcce7ef57e5ea838efe7c58c523a7d1708e70d64a4338afe16d06fba2fc7ac5a6c19ca3d6ee41e99
 DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
+DIST llvm-project-62c0bdabfa32f6e32b17b45425b15309db340dfb.tar.gz 190948645 BLAKE2B f41d8ea32e189ef4641e42628fb516e307c9a6fcf65af537eb9fc0d3186591b062c5e85c9e935511ef706f28c6994a774a4e3f36ff54d79aaac7b293a6168625 SHA512 55a4cbfec3a496c1918aa614e5bdee368e4d0b6641c946d8bf8b828ab4bf4d9b29dbe96401a172079d70f924f5e513428fe990c65b556a0a860802cb13f5e3a0
 DIST llvm-project-a2684acfb61d40f441e240035d7f1ba50da637c8.tar.gz 184900914 BLAKE2B fb1f836738415a640bc84283722f6a7355a06bc8ac05b544dd4ad4ac9552dcf70040b82b0493c5b4485b28610412279ec0adcf467e71915167aa7d010c08216e SHA512 c08ff8abc166399e692d3166ccf65eb4b647893cba8ffc10bcda815bc914a944855bac036d6349f6d820a6ff43d5417170e6ff8620d97a2a144a0898e95d09e3
 DIST llvm-project-f9753ef1893c3d953a0244e7935d3997499b079a.tar.gz 185505236 BLAKE2B 570a8937788027ee2cef0dad6be693c57b4a5634c0c1fc2bc1c2f534fb4ae00203f14b1bcf0a0f241e7e1e8c25120dc6ea7ede2a10bed397e1cc377318ebe7a0 SHA512 c12eade7c9790ec2a790017b1451a15f0ff7d1b60879f08a448edcb4f162703650b244fdc2fc284335dff4b2a37ef5d488e0d771abee79b49cac94b9e478f010

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild
new file mode 100644
index 000000000000..56140d06df64
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-11  9:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-11  9:36 UTC (permalink / raw
  To: gentoo-commits

commit:     af5ec159930067c93bb59f7e9201323a86167584
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 11 09:35:23 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jun 11 09:35:23 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=af5ec159

sys-libs/libcxx: 16.x live is now 16.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-16.0.5.9999.ebuild => libcxx-16.0.6.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.5.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.6.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-16.0.5.9999.ebuild
rename to sys-libs/libcxx/libcxx-16.0.6.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-14  5:34 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-14  5:34 UTC (permalink / raw
  To: gentoo-commits

commit:     9f02f812fe69e6ecb513f87087ffd9b9010dbb57
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 14 04:56:38 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jun 14 05:34:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f02f812

sys-libs/libcxx: Remove 16.0.6.9999 (branch is closed)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.6.9999.ebuild | 204 ------------------------------
 1 file changed, 204 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.6.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.6.9999.ebuild
deleted file mode 100644
index 56140d06df64..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.6.9999.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-14 10:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-14 10:31 UTC (permalink / raw
  To: gentoo-commits

commit:     087fae8a0642d43ed330ba80b7aca1dd5d1e192e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 14 10:02:46 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jun 14 10:31:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=087fae8a

sys-libs/libcxx: Bump to 16.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   3 +
 sys-libs/libcxx/libcxx-16.0.6.ebuild | 205 +++++++++++++++++++++++++++++++++++
 2 files changed, 208 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 89456ff2362d..ffd11e440837 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,9 +1,12 @@
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
+DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afbca5cddc6fbad6c9728726f7158f290ab87d464ff657e89e1c8fc3c474362cc865ff13c5d55ef758c848ea3e660d732cb2fdefa SHA512 7008e7e9c8c2246fe98ba3f0c0fa91e41c88c4da427bf1cfdcce7ef57e5ea838efe7c58c523a7d1708e70d64a4338afe16d06fba2fc7ac5a6c19ca3d6ee41e99
 DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
+DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
+DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
 DIST llvm-project-62c0bdabfa32f6e32b17b45425b15309db340dfb.tar.gz 190948645 BLAKE2B f41d8ea32e189ef4641e42628fb516e307c9a6fcf65af537eb9fc0d3186591b062c5e85c9e935511ef706f28c6994a774a4e3f36ff54d79aaac7b293a6168625 SHA512 55a4cbfec3a496c1918aa614e5bdee368e4d0b6641c946d8bf8b828ab4bf4d9b29dbe96401a172079d70f924f5e513428fe990c65b556a0a860802cb13f5e3a0

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
new file mode 100644
index 000000000000..fd8f5a34b4e8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/gdb[python]
+		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+	)
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_PATCHSET=${PV}
+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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-17 19:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-17 19:10 UTC (permalink / raw
  To: gentoo-commits

commit:     3582ea8e0a3c502a45e00eabf37d34449cf2bdc8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 17 11:04:23 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 17 19:10:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3582ea8e

sys-libs/libcxx: Enable py3.12 in 17.0.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
index 56140d06df64..93b4473e8546 100644
--- a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
 inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-17 19:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-17 19:10 UTC (permalink / raw
  To: gentoo-commits

commit:     4c34f15c0576e5da22f5c362d6b37ca6e79bb113
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 17 11:27:19 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 17 19:10:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c34f15c

sys-libs/libcxx: Add 17.0.0_pre20230615 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ffd11e440837..29983e44dfa8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,7 @@
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-project-0e08374abb2c61a3ae5c24d5f60be3b548da9778.tar.gz 191661586 BLAKE2B 05e5328d8eb9972bd6399e8c0f5ab241a78e6591e63ee520180c4ff154df432ad96f49ddc615a2208f69ffbec539b201fffeaf4906011b7a961cbc3860126ffa SHA512 1d4429ecb2292e419ed6172cf251ba4a1448ed51424552ac48a159d0e3d3414777f7821382d1839b56f0c906fb0a147b1df4eecb071f8a5c11b0fc1d0d40d339
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild
new file mode 100644
index 000000000000..93b4473e8546
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-17 23:22 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-06-17 23:22 UTC (permalink / raw
  To: gentoo-commits

commit:     714f76cf7d4be48276c94c2d885f92415c920d1a
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 17 23:21:50 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 17 23:21:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=714f76cf

sys-libs/libcxx: Stabilize 16.0.5 amd64, #908385

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.5.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.5.ebuild b/sys-libs/libcxx/libcxx-16.0.5.ebuild
index cdbee6be92d6..857830c6ac8c 100644
--- a/sys-libs/libcxx/libcxx-16.0.5.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.5.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-20 14:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-20 14:20 UTC (permalink / raw
  To: gentoo-commits

commit:     6745fae70a4a9cfcccd7a67c4e26ece2c9d67e40
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 20 14:09:54 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 20 14:20:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6745fae7

sys-libs/libcxx: Add 17.0.0_pre20230620 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 29983e44dfa8..71d6ec4a42ca 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c33
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
 DIST llvm-project-62c0bdabfa32f6e32b17b45425b15309db340dfb.tar.gz 190948645 BLAKE2B f41d8ea32e189ef4641e42628fb516e307c9a6fcf65af537eb9fc0d3186591b062c5e85c9e935511ef706f28c6994a774a4e3f36ff54d79aaac7b293a6168625 SHA512 55a4cbfec3a496c1918aa614e5bdee368e4d0b6641c946d8bf8b828ab4bf4d9b29dbe96401a172079d70f924f5e513428fe990c65b556a0a860802cb13f5e3a0
+DIST llvm-project-aad51417452432092258034c55537a7092fa6295.tar.gz 192649458 BLAKE2B 64b8fd306fc6a01172d9be78c969c013a4d05ae62966c4ca424a25e0d1e87c07c50dc17125924151643e1e3fc1d63803f9162dedac8bddc037104bdbef06c0d9 SHA512 3533710e2411df7f3a2f68fffdf6213116ae54b07881e5661e9e137234d5d1f87136cbde83fd97123719dd1d6ed4d09bcc4a0aec3b2705da09195279b0ef16e2

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild
new file mode 100644
index 000000000000..93b4473e8546
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-20 14:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-20 14:23 UTC (permalink / raw
  To: gentoo-commits

commit:     64d1c115631248e2bf9aeabc6b32ca3699a4d781
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 20 14:21:30 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 20 14:23:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64d1c115

sys-libs/libcxx: Remove 17.0.0_pre20230609

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 71d6ec4a42ca..7450bac02fe2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,4 @@ DIST llvm-project-16.0.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afb
 DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-62c0bdabfa32f6e32b17b45425b15309db340dfb.tar.gz 190948645 BLAKE2B f41d8ea32e189ef4641e42628fb516e307c9a6fcf65af537eb9fc0d3186591b062c5e85c9e935511ef706f28c6994a774a4e3f36ff54d79aaac7b293a6168625 SHA512 55a4cbfec3a496c1918aa614e5bdee368e4d0b6641c946d8bf8b828ab4bf4d9b29dbe96401a172079d70f924f5e513428fe990c65b556a0a860802cb13f5e3a0
 DIST llvm-project-aad51417452432092258034c55537a7092fa6295.tar.gz 192649458 BLAKE2B 64b8fd306fc6a01172d9be78c969c013a4d05ae62966c4ca424a25e0d1e87c07c50dc17125924151643e1e3fc1d63803f9162dedac8bddc037104bdbef06c0d9 SHA512 3533710e2411df7f3a2f68fffdf6213116ae54b07881e5661e9e137234d5d1f87136cbde83fd97123719dd1d6ed4d09bcc4a0aec3b2705da09195279b0ef16e2

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild
deleted file mode 100644
index 56140d06df64..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230609.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-20 17:53 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-20 17:53 UTC (permalink / raw
  To: gentoo-commits

commit:     0e33cbd970a0d54c8cb97c37087342433c66ab26
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 20 14:25:44 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jun 20 17:53:04 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e33cbd9

sys-libs/libcxx: Enable py3.12 in 16.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
index fd8f5a34b4e8..ca63d06247bb 100644
--- a/sys-libs/libcxx/libcxx-16.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..12} )
 inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \
 	toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-06-30 19:42 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-06-30 19:42 UTC (permalink / raw
  To: gentoo-commits

commit:     2fadc24e16feb9f3a8f45ca7eae28b7e5f956bb7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 30 18:55:28 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jun 30 19:42:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2fadc24e

sys-libs/libcxx: Add 17.0.0_pre20230630 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7450bac02fe2..2be912420b43 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c33
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
 DIST llvm-project-aad51417452432092258034c55537a7092fa6295.tar.gz 192649458 BLAKE2B 64b8fd306fc6a01172d9be78c969c013a4d05ae62966c4ca424a25e0d1e87c07c50dc17125924151643e1e3fc1d63803f9162dedac8bddc037104bdbef06c0d9 SHA512 3533710e2411df7f3a2f68fffdf6213116ae54b07881e5661e9e137234d5d1f87136cbde83fd97123719dd1d6ed4d09bcc4a0aec3b2705da09195279b0ef16e2
+DIST llvm-project-d32fb5e5f51dedba495301073b9250f84ac6d8a8.tar.gz 193280254 BLAKE2B 31473bee900caa45c816a020113d7b6bf6e6e2db4848fa529bc622fbf2956487ab89b04d1624e7e1530e9aa56293361e01b9fde31912b2a08194398a11db8b63 SHA512 5799e106403a3954767afafac515112ec9f6505c02abb502e21a5d7019e1079912939803e95177d91678d2e28e07a12b33ceabb13e90696da13a3613a16f2396

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild
new file mode 100644
index 000000000000..93b4473e8546
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-05  8:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-05  8:38 UTC (permalink / raw
  To: gentoo-commits

commit:     1ee96b25c301fa515577eee9bf101c5c1ff4fbf7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  5 08:21:42 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jul  5 08:38:26 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ee96b25

sys-libs/libcxx: Remove old snapshots

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild | 204 -----------------------
 3 files changed, 410 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2be912420b43..fefb249fb6a6 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,7 +1,6 @@
 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
-DIST llvm-project-0e08374abb2c61a3ae5c24d5f60be3b548da9778.tar.gz 191661586 BLAKE2B 05e5328d8eb9972bd6399e8c0f5ab241a78e6591e63ee520180c4ff154df432ad96f49ddc615a2208f69ffbec539b201fffeaf4906011b7a961cbc3860126ffa SHA512 1d4429ecb2292e419ed6172cf251ba4a1448ed51424552ac48a159d0e3d3414777f7821382d1839b56f0c906fb0a147b1df4eecb071f8a5c11b0fc1d0d40d339
 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
@@ -10,5 +9,4 @@ DIST llvm-project-16.0.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afb
 DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-aad51417452432092258034c55537a7092fa6295.tar.gz 192649458 BLAKE2B 64b8fd306fc6a01172d9be78c969c013a4d05ae62966c4ca424a25e0d1e87c07c50dc17125924151643e1e3fc1d63803f9162dedac8bddc037104bdbef06c0d9 SHA512 3533710e2411df7f3a2f68fffdf6213116ae54b07881e5661e9e137234d5d1f87136cbde83fd97123719dd1d6ed4d09bcc4a0aec3b2705da09195279b0ef16e2
 DIST llvm-project-d32fb5e5f51dedba495301073b9250f84ac6d8a8.tar.gz 193280254 BLAKE2B 31473bee900caa45c816a020113d7b6bf6e6e2db4848fa529bc622fbf2956487ab89b04d1624e7e1530e9aa56293361e01b9fde31912b2a08194398a11db8b63 SHA512 5799e106403a3954767afafac515112ec9f6505c02abb502e21a5d7019e1079912939803e95177d91678d2e28e07a12b33ceabb13e90696da13a3613a16f2396

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild
deleted file mode 100644
index 93b4473e8546..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230615.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-17.0.0_pre20230620.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild
deleted file mode 100644
index 93b4473e8546..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230620.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-05 15:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-05 15:31 UTC (permalink / raw
  To: gentoo-commits

commit:     dba37974418b2b31ef738705ea25ffb91b6b28c9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  5 15:29:47 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jul  5 15:31:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dba37974

sys-libs/libcxx: Add 17.0.0_pre20230705 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index fefb249fb6a6..8112e9c937f7 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,5 @@ DIST llvm-project-16.0.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afb
 DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
+DIST llvm-project-5ae7fde004cbc640c2f60207791ac36574e5f5c6.tar.gz 193410766 BLAKE2B 50287f1ad41a895040934f8f19fd8aa2e91065b930ab14125dbbc3977273655d11482b6229577c11a8ad2bdd854ca109449b603bbc2e30cee20e95e4fe11e8b7 SHA512 f24f7a3b0661d2d4533b24c295c114817aff22c8f1d473ffa639cee547d31502719f8e1be4f25b970d450ecb9dcaa809c0e12b1bb380774f52cda82a4769d7bc
 DIST llvm-project-d32fb5e5f51dedba495301073b9250f84ac6d8a8.tar.gz 193280254 BLAKE2B 31473bee900caa45c816a020113d7b6bf6e6e2db4848fa529bc622fbf2956487ab89b04d1624e7e1530e9aa56293361e01b9fde31912b2a08194398a11db8b63 SHA512 5799e106403a3954767afafac515112ec9f6505c02abb502e21a5d7019e1079912939803e95177d91678d2e28e07a12b33ceabb13e90696da13a3613a16f2396

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild
new file mode 100644
index 000000000000..93b4473e8546
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-11 10:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-11 10:41 UTC (permalink / raw
  To: gentoo-commits

commit:     8c8cf47691cbbcd9c6b25b8fa597b16ea466fccc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 11 10:23:39 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 11 10:25:03 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c8cf476

sys-libs/libcxx: Remove 17.0.0_pre20230630

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8112e9c937f7..5b8f8668c1a5 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,4 +10,3 @@ DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c33
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
 DIST llvm-project-5ae7fde004cbc640c2f60207791ac36574e5f5c6.tar.gz 193410766 BLAKE2B 50287f1ad41a895040934f8f19fd8aa2e91065b930ab14125dbbc3977273655d11482b6229577c11a8ad2bdd854ca109449b603bbc2e30cee20e95e4fe11e8b7 SHA512 f24f7a3b0661d2d4533b24c295c114817aff22c8f1d473ffa639cee547d31502719f8e1be4f25b970d450ecb9dcaa809c0e12b1bb380774f52cda82a4769d7bc
-DIST llvm-project-d32fb5e5f51dedba495301073b9250f84ac6d8a8.tar.gz 193280254 BLAKE2B 31473bee900caa45c816a020113d7b6bf6e6e2db4848fa529bc622fbf2956487ab89b04d1624e7e1530e9aa56293361e01b9fde31912b2a08194398a11db8b63 SHA512 5799e106403a3954767afafac515112ec9f6505c02abb502e21a5d7019e1079912939803e95177d91678d2e28e07a12b33ceabb13e90696da13a3613a16f2396

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild
deleted file mode 100644
index 93b4473e8546..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230630.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-14 15:52 Arthur Zamarin
  0 siblings, 0 replies; 608+ messages in thread
From: Arthur Zamarin @ 2023-07-14 15:52 UTC (permalink / raw
  To: gentoo-commits

commit:     54d0c7fd94666ed12d15e54c47db70168aa94c95
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 14 15:50:01 2023 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Jul 14 15:51:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=54d0c7fd

sys-libs/libcxx: Stabilize 16.0.6 x86, #908385

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
index 8fb9b0d1c2a8..d8342a08b145 100644
--- a/sys-libs/libcxx/libcxx-16.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~loong ~riscv ~sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-14 16:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-14 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     beb4950b9c98be438672ace8620748b40f6a0cad
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 14 16:08:32 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 14 16:17:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=beb4950b

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-16.0.5.ebuild | 204 -----------------------------------
 2 files changed, 206 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5b8f8668c1a5..1fe6b4d485a7 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -5,8 +5,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f
 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
 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.5.src.tar.xz 118000368 BLAKE2B 9f84e6bab450dc8d6379771afbca5cddc6fbad6c9728726f7158f290ab87d464ff657e89e1c8fc3c474362cc865ff13c5d55ef758c848ea3e660d732cb2fdefa SHA512 7008e7e9c8c2246fe98ba3f0c0fa91e41c88c4da427bf1cfdcce7ef57e5ea838efe7c58c523a7d1708e70d64a4338afe16d06fba2fc7ac5a6c19ca3d6ee41e99
-DIST llvm-project-16.0.5.src.tar.xz.sig 566 BLAKE2B 4c96f294f350e0086f8504a54c3387308c60efb573c8def40aec45b1918d43e36c44bafb0823625b6cefa5d99b3aacd7823d6c92c7a64a737653d5b51839a924 SHA512 4550c7c6a1b6ea603d1499aba5aca746f3948a00e7567604f5e7dc3b215a34357bad382a7ebea1f6cd7952841cb75a0dfbe2c278a8c6fcb630a5035b3e16e869
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
 DIST llvm-project-5ae7fde004cbc640c2f60207791ac36574e5f5c6.tar.gz 193410766 BLAKE2B 50287f1ad41a895040934f8f19fd8aa2e91065b930ab14125dbbc3977273655d11482b6229577c11a8ad2bdd854ca109449b603bbc2e30cee20e95e4fe11e8b7 SHA512 f24f7a3b0661d2d4533b24c295c114817aff22c8f1d473ffa639cee547d31502719f8e1be4f25b970d450ecb9dcaa809c0e12b1bb380774f52cda82a4769d7bc

diff --git a/sys-libs/libcxx/libcxx-16.0.5.ebuild b/sys-libs/libcxx/libcxx-16.0.5.ebuild
deleted file mode 100644
index 857830c6ac8c..000000000000
--- a/sys-libs/libcxx/libcxx-16.0.5.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-16 15:06 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-07-16 15:06 UTC (permalink / raw
  To: gentoo-commits

commit:     b819bfbb3336344126d1e5a0819dd00eebf03849
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 16 14:50:32 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul 16 14:51:46 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b819bfbb

sys-libs/libcxx: default +static-libs on

This matches GCC for libstdc++ and is needed for the clang-common change
to depend on libcxx[static-libs] for USE=default-libcxx.

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-14.0.6.ebuild             | 2 +-
 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild          | 2 +-
 sys-libs/libcxx/libcxx-15.0.7.ebuild             | 2 +-
 sys-libs/libcxx/libcxx-16.0.6.ebuild             | 2 +-
 sys-libs/libcxx/libcxx-17.0.0.9999.ebuild        | 2 +-
 sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild
index 9ac9d8ad89f9..6921ede280b2 100644
--- a/sys-libs/libcxx/libcxx-14.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
-IUSE="+libcxxabi +libunwind static-libs test"
+IUSE="+libcxxabi +libunwind +static-libs test"
 RESTRICT="!test? ( test )"
 REQUIRED_USE="libunwind? ( libcxxabi )"
 

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index 2ea0abb84b2c..e7de7046e52a 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc x86 ~x64-macos"
-IUSE="+clang +libcxxabi static-libs test"
+IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
index 1d2b045156a9..f27a668a2b29 100644
--- a/sys-libs/libcxx/libcxx-15.0.7.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
-IUSE="+clang +libcxxabi static-libs test"
+IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
index d8342a08b145..a11ebb2a74f1 100644
--- a/sys-libs/libcxx/libcxx-16.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -13,7 +13,7 @@ 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 ~x64-macos"
-IUSE="+clang +libcxxabi static-libs test"
+IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
index 93b4473e8546..bb005b4d8ec8 100644
--- a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="+clang +libcxxabi static-libs test"
+IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"
 

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild
index 93b4473e8546..bb005b4d8ec8 100644
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230705.ebuild
@@ -13,7 +13,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="+clang +libcxxabi static-libs test"
+IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-17 14:14 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-17 14:14 UTC (permalink / raw
  To: gentoo-commits

commit:     bf42309f3c1a8ab8b01aaaebf56dce9602dc038e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 17 10:46:18 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jul 17 14:14:29 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf42309f

sys-libs/libcxx: Add 17.0.0_pre20230717 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230717.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1fe6b4d485a7..c6844e0de3e8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,5 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
+DIST llvm-project-3cd3f11c174baa001b337b88c7a6507eb5705cf2.tar.gz 194446197 BLAKE2B ba2ac8334f90fddfd9b8f97abd2f77bd1f1ad00c97f2b7daf6b799fe49755a9bd07e017e93cc634163ad7499e70d886556715e26e9d7ed9017018861c3522735 SHA512 b12d02a7b4df08e8decf99ac86875bef72ff2fa546699e7a94bfd2b2ad1e1256aec66185f9e2f7c2f5d06b1eeb3faae44a2c457b33e5c7416d3bd9921759b39d
 DIST llvm-project-5ae7fde004cbc640c2f60207791ac36574e5f5c6.tar.gz 193410766 BLAKE2B 50287f1ad41a895040934f8f19fd8aa2e91065b930ab14125dbbc3977273655d11482b6229577c11a8ad2bdd854ca109449b603bbc2e30cee20e95e4fe11e8b7 SHA512 f24f7a3b0661d2d4533b24c295c114817aff22c8f1d473ffa639cee547d31502719f8e1be4f25b970d450ecb9dcaa809c0e12b1bb380774f52cda82a4769d7bc

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230717.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230717.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230717.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-22 13:04 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-22 13:04 UTC (permalink / raw
  To: gentoo-commits

commit:     7187cf3cf06e6e10ad2a37010608f9f1ef374be3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 22 06:04:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 22 13:01:41 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7187cf3c

sys-libs/libcxx: Add 17.0.0_pre20230722 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c6844e0de3e8..075a194c7bd3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ 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-3cd3f11c174baa001b337b88c7a6507eb5705cf2.tar.gz 194446197 BLAKE2B ba2ac8334f90fddfd9b8f97abd2f77bd1f1ad00c97f2b7daf6b799fe49755a9bd07e017e93cc634163ad7499e70d886556715e26e9d7ed9017018861c3522735 SHA512 b12d02a7b4df08e8decf99ac86875bef72ff2fa546699e7a94bfd2b2ad1e1256aec66185f9e2f7c2f5d06b1eeb3faae44a2c457b33e5c7416d3bd9921759b39d
 DIST llvm-project-5ae7fde004cbc640c2f60207791ac36574e5f5c6.tar.gz 193410766 BLAKE2B 50287f1ad41a895040934f8f19fd8aa2e91065b930ab14125dbbc3977273655d11482b6229577c11a8ad2bdd854ca109449b603bbc2e30cee20e95e4fe11e8b7 SHA512 f24f7a3b0661d2d4533b24c295c114817aff22c8f1d473ffa639cee547d31502719f8e1be4f25b970d450ecb9dcaa809c0e12b1bb380774f52cda82a4769d7bc
+DIST llvm-project-5f1a388a11ae67c2e5d7a4d1fe45e369a393c572.tar.gz 194911977 BLAKE2B d7277591ddca0046dcc244f591732440a6c63c06557d96d18792c2544797a3bcea4af241ad1e9c0106a9751f52bfbcec0544020cc20874e8c64a31a8055d07d0 SHA512 b38aed6a21a3dd4325faf45475b843dcebab89d8ad9683e0f7699701f9645fa9467e032b822473c53a3242930d681caba9dd9530560636cf093108640470bbbe

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-25 16:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-25 16:11 UTC (permalink / raw
  To: gentoo-commits

commit:     ac54fe46cd57eb24a33c61ff0b842fc2a37bfd69
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 25 16:09:44 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 25 16:11:33 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac54fe46

sys-libs/libcxx: Add 18.x live ebuilds

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.0.0.9999.ebuild | 204 ++++++++++++++++++++++++++++++
 1 file changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-07-29 19:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-07-29 19:25 UTC (permalink / raw
  To: gentoo-commits

commit:     23f439626ceab149f793d2cf7022c37584351a9b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 29 14:18:24 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 29 19:25:47 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=23f43962

sys-libs/libcxx: Add 17.0.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3fb39ae11f5c..86c8aa41b501 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
+DIST llvm-project-17.0.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd271691c259925b8047d8425b0eafb55d2c1daf637c3a56903b88e50283667955e780a47f61e7215a1e3a1acd3634c62960cf17317f SHA512 fa7ebe7fad14087861dc0eea08f68e8aa01dcc6560d70163ec38819a7fd799484f6ab1e35a69393a14962b45fa0a469c9d6c5fd2882b3609305bd01bc9f6701f
+DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
 DIST llvm-project-5f1a388a11ae67c2e5d7a4d1fe45e369a393c572.tar.gz 194911977 BLAKE2B d7277591ddca0046dcc244f591732440a6c63c06557d96d18792c2544797a3bcea4af241ad1e9c0106a9751f52bfbcec0544020cc20874e8c64a31a8055d07d0 SHA512 b38aed6a21a3dd4325faf45475b843dcebab89d8ad9683e0f7699701f9645fa9467e032b822473c53a3242930d681caba9dd9530560636cf093108640470bbbe

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-02 16:11 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2023-08-02 16:11 UTC (permalink / raw
  To: gentoo-commits

commit:     68eb5ca6f91155a063c7f6187347b65b84b602bc
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  2 16:08:11 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Aug  2 16:08:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68eb5ca6

sys-libs/libcxx: Stabilize 16.0.6 sparc, #908385

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
index 9d58ae7f2eb3..91b4f00514d8 100644
--- a/sys-libs/libcxx/libcxx-16.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-03  9:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-03  9:15 UTC (permalink / raw
  To: gentoo-commits

commit:     36bceb54673656faefa08ae2c67615a6f6a144ab
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  3 09:13:07 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug  3 09:13:07 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36bceb54

sys-libs/libcxx: Remove 17.x snapshots

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild | 204 -----------------------
 2 files changed, 205 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 86c8aa41b501..462d702a71b4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,3 @@ 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.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd271691c259925b8047d8425b0eafb55d2c1daf637c3a56903b88e50283667955e780a47f61e7215a1e3a1acd3634c62960cf17317f SHA512 fa7ebe7fad14087861dc0eea08f68e8aa01dcc6560d70163ec38819a7fd799484f6ab1e35a69393a14962b45fa0a469c9d6c5fd2882b3609305bd01bc9f6701f
 DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
-DIST llvm-project-5f1a388a11ae67c2e5d7a4d1fe45e369a393c572.tar.gz 194911977 BLAKE2B d7277591ddca0046dcc244f591732440a6c63c06557d96d18792c2544797a3bcea4af241ad1e9c0106a9751f52bfbcec0544020cc20874e8c64a31a8055d07d0 SHA512 b38aed6a21a3dd4325faf45475b843dcebab89d8ad9683e0f7699701f9645fa9467e032b822473c53a3242930d681caba9dd9530560636cf093108640470bbbe

diff --git a/sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild b/sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_pre20230722.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-03 15:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-03 15:43 UTC (permalink / raw
  To: gentoo-commits

commit:     97a6e400258d710fc2c2ac0062dc81fa4959d9c8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  3 09:21:24 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug  3 15:43:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=97a6e400

sys-libs/libcxx: Add 18.0.0_pre20230803 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 462d702a71b4..9f09e523a623 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ 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.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd271691c259925b8047d8425b0eafb55d2c1daf637c3a56903b88e50283667955e780a47f61e7215a1e3a1acd3634c62960cf17317f SHA512 fa7ebe7fad14087861dc0eea08f68e8aa01dcc6560d70163ec38819a7fd799484f6ab1e35a69393a14962b45fa0a469c9d6c5fd2882b3609305bd01bc9f6701f
 DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
+DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-08 18:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-08 18:31 UTC (permalink / raw
  To: gentoo-commits

commit:     940b9a830460b967211435a7200a42f925e4e5df
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  8 12:28:20 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug  8 18:31:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=940b9a83

sys-libs/libcxx: Add 17.0.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9f09e523a623..712de7c195f2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,6 @@ 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.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd271691c259925b8047d8425b0eafb55d2c1daf637c3a56903b88e50283667955e780a47f61e7215a1e3a1acd3634c62960cf17317f SHA512 fa7ebe7fad14087861dc0eea08f68e8aa01dcc6560d70163ec38819a7fd799484f6ab1e35a69393a14962b45fa0a469c9d6c5fd2882b3609305bd01bc9f6701f
 DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
+DIST llvm-project-17.0.0rc2.src.tar.xz 127795160 BLAKE2B 58ed818f61e1cd179288d578e89460782617a3791a65dbc3e1f207629004f0d61225e87b78fdc0eeb3647912e5056ab68ce35ea2639a34ded1d8bdf0452e31f8 SHA512 7eb5c5172b5e9af65c940c876779f90e20a02659bf1489cedd06c67eea205aa1f4bdc5a8134a120db98cb80ca54673902b530c3315c9b53384c091200d9162c0
+DIST llvm-project-17.0.0rc2.src.tar.xz.sig 438 BLAKE2B 55788eacc592729839dad581b507794f279d84cafcaa49785ae34e02931ee9d4f64caf9e251e280dbc8676f3cacdca52a22f36cf7282655a3fc0721a61c9f003 SHA512 141e1ba7eb9870c21b91060ca484316cc8a402d4e61c8312688023850070b255b0eebe2d10ef63925f7269ee1b347074440e1a9a18d37cb7e1b6c82a7d1a1710
 DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-10 17:49 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-10 17:49 UTC (permalink / raw
  To: gentoo-commits

commit:     115ca858e8f07b5a310ea1f5f09805fa53c552a2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 10 12:53:37 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 10 17:49:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=115ca858

sys-libs/libcxx: Add 18.0.0_pre20230810 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 712de7c195f2..f19b5b6c0e23 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,4 +11,5 @@ DIST llvm-project-17.0.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd2
 DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
 DIST llvm-project-17.0.0rc2.src.tar.xz 127795160 BLAKE2B 58ed818f61e1cd179288d578e89460782617a3791a65dbc3e1f207629004f0d61225e87b78fdc0eeb3647912e5056ab68ce35ea2639a34ded1d8bdf0452e31f8 SHA512 7eb5c5172b5e9af65c940c876779f90e20a02659bf1489cedd06c67eea205aa1f4bdc5a8134a120db98cb80ca54673902b530c3315c9b53384c091200d9162c0
 DIST llvm-project-17.0.0rc2.src.tar.xz.sig 438 BLAKE2B 55788eacc592729839dad581b507794f279d84cafcaa49785ae34e02931ee9d4f64caf9e251e280dbc8676f3cacdca52a22f36cf7282655a3fc0721a61c9f003 SHA512 141e1ba7eb9870c21b91060ca484316cc8a402d4e61c8312688023850070b255b0eebe2d10ef63925f7269ee1b347074440e1a9a18d37cb7e1b6c82a7d1a1710
+DIST llvm-project-7d259b36d2e8148d13087844e6494ad3a5c63edf.tar.gz 195942450 BLAKE2B 3221cc070295edf4f70e5b24ed06cda29e8dd98d3d28ba5ac38b821fc313f7f7dfdc7ad500537c2244af0fa3d750174dfa1699db7f72a44df67e5fa255a3d0aa SHA512 9279290ab482f29af4a2205270038f1817608a63872e03340d43c31fcf5da36191269838912a1460455a8661295e664891d6d123018b12ddc80c2641790d0640
 DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-20 12:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-20 12:02 UTC (permalink / raw
  To: gentoo-commits

commit:     e3c1a914bf3990e7d878105504f5d22f1a49d189
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 20 12:01:19 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Aug 20 12:02:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e3c1a914

sys-libs/libcxx: Add 18.0.0_pre20230820 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f19b5b6c0e23..48aa8ba0bcca 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -13,3 +13,4 @@ DIST llvm-project-17.0.0rc2.src.tar.xz 127795160 BLAKE2B 58ed818f61e1cd179288d57
 DIST llvm-project-17.0.0rc2.src.tar.xz.sig 438 BLAKE2B 55788eacc592729839dad581b507794f279d84cafcaa49785ae34e02931ee9d4f64caf9e251e280dbc8676f3cacdca52a22f36cf7282655a3fc0721a61c9f003 SHA512 141e1ba7eb9870c21b91060ca484316cc8a402d4e61c8312688023850070b255b0eebe2d10ef63925f7269ee1b347074440e1a9a18d37cb7e1b6c82a7d1a1710
 DIST llvm-project-7d259b36d2e8148d13087844e6494ad3a5c63edf.tar.gz 195942450 BLAKE2B 3221cc070295edf4f70e5b24ed06cda29e8dd98d3d28ba5ac38b821fc313f7f7dfdc7ad500537c2244af0fa3d750174dfa1699db7f72a44df67e5fa255a3d0aa SHA512 9279290ab482f29af4a2205270038f1817608a63872e03340d43c31fcf5da36191269838912a1460455a8661295e664891d6d123018b12ddc80c2641790d0640
 DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b
+DIST llvm-project-fe42682e7818d44cbe19f98ef34caa4e414aa937.tar.gz 196564445 BLAKE2B 056e6622b38009e34392c1d1755086e008bc85e9b4c00126e7ca92ddaee2ede7f31bafbc6ca04c5008983ce843d19fb152d75ce01e6ece4c2d891cc38604532c SHA512 8245f8a50f77e9ac9c0309a0025fde8407bb82d82277e3edba0a995debff50940e9500d4ad65060a330e6c19e2e1332d700ea040ca382ef4b75282a4566cbf72

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-23 10:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-23 10:17 UTC (permalink / raw
  To: gentoo-commits

commit:     d29628d23bc1b4f988fbbde0c6ab16b87d1292f3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 23 05:12:19 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug 23 10:17:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d29628d2

sys-libs/libcxx: Add 17.0.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 48aa8ba0bcca..90bf70a78d3e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,6 +11,8 @@ DIST llvm-project-17.0.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd2
 DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
 DIST llvm-project-17.0.0rc2.src.tar.xz 127795160 BLAKE2B 58ed818f61e1cd179288d578e89460782617a3791a65dbc3e1f207629004f0d61225e87b78fdc0eeb3647912e5056ab68ce35ea2639a34ded1d8bdf0452e31f8 SHA512 7eb5c5172b5e9af65c940c876779f90e20a02659bf1489cedd06c67eea205aa1f4bdc5a8134a120db98cb80ca54673902b530c3315c9b53384c091200d9162c0
 DIST llvm-project-17.0.0rc2.src.tar.xz.sig 438 BLAKE2B 55788eacc592729839dad581b507794f279d84cafcaa49785ae34e02931ee9d4f64caf9e251e280dbc8676f3cacdca52a22f36cf7282655a3fc0721a61c9f003 SHA512 141e1ba7eb9870c21b91060ca484316cc8a402d4e61c8312688023850070b255b0eebe2d10ef63925f7269ee1b347074440e1a9a18d37cb7e1b6c82a7d1a1710
+DIST llvm-project-17.0.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff21554d9b4f5aa036df1b88676fd8c3e16b438381db062872be396af5246e12cd71812a886016e0331a272dafc3508ecd0bfbb50ed SHA512 5f48b4af2e4f9bc470fcfd42fd48072b7bd442bc676d8401b04fbc6e9014a9a78e1bf524ba78f7ae8a1246222a6b03ca662721e3bf6e9eb03a015dd3306c7234
+DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
 DIST llvm-project-7d259b36d2e8148d13087844e6494ad3a5c63edf.tar.gz 195942450 BLAKE2B 3221cc070295edf4f70e5b24ed06cda29e8dd98d3d28ba5ac38b821fc313f7f7dfdc7ad500537c2244af0fa3d750174dfa1699db7f72a44df67e5fa255a3d0aa SHA512 9279290ab482f29af4a2205270038f1817608a63872e03340d43c31fcf5da36191269838912a1460455a8661295e664891d6d123018b12ddc80c2641790d0640
 DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b
 DIST llvm-project-fe42682e7818d44cbe19f98ef34caa4e414aa937.tar.gz 196564445 BLAKE2B 056e6622b38009e34392c1d1755086e008bc85e9b4c00126e7ca92ddaee2ede7f31bafbc6ca04c5008983ce843d19fb152d75ce01e6ece4c2d891cc38604532c SHA512 8245f8a50f77e9ac9c0309a0025fde8407bb82d82277e3edba0a995debff50940e9500d4ad65060a330e6c19e2e1332d700ea040ca382ef4b75282a4566cbf72

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-25 19:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-25 19:17 UTC (permalink / raw
  To: gentoo-commits

commit:     20a393e240ad30407d2323431e3a40433d84c5d1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 25 18:25:57 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug 25 19:17:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20a393e2

sys-libs/libcxx: Add 18.0.0_pre20230825 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 90bf70a78d3e..64e57cdbd948 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -15,4 +15,5 @@ DIST llvm-project-17.0.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff
 DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
 DIST llvm-project-7d259b36d2e8148d13087844e6494ad3a5c63edf.tar.gz 195942450 BLAKE2B 3221cc070295edf4f70e5b24ed06cda29e8dd98d3d28ba5ac38b821fc313f7f7dfdc7ad500537c2244af0fa3d750174dfa1699db7f72a44df67e5fa255a3d0aa SHA512 9279290ab482f29af4a2205270038f1817608a63872e03340d43c31fcf5da36191269838912a1460455a8661295e664891d6d123018b12ddc80c2641790d0640
 DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b
+DIST llvm-project-e3373c6c83d3855adb78f1952a3bf0398baf359e.tar.gz 196926975 BLAKE2B 9da1052db0a6ff81a8b76cbf9cb2ab7eed5c8798dc5ae6887a4694de8b151c7a1282cfff2da2e8440b1a67d3d12c33db319fbbe6062761b6d5369e6b335821ae SHA512 8bb6d49ddb824e932f7bad3c51e4a6c2227139aaf19c02e9deb15657919bc12ea41844d8fe045061814aefb9031d82b167c7c0c20bedaa09aaffe164a2109f7d
 DIST llvm-project-fe42682e7818d44cbe19f98ef34caa4e414aa937.tar.gz 196564445 BLAKE2B 056e6622b38009e34392c1d1755086e008bc85e9b4c00126e7ca92ddaee2ede7f31bafbc6ca04c5008983ce843d19fb152d75ce01e6ece4c2d891cc38604532c SHA512 8245f8a50f77e9ac9c0309a0025fde8407bb82d82277e3edba0a995debff50940e9500d4ad65060a330e6c19e2e1332d700ea040ca382ef4b75282a4566cbf72

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-29  5:48 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-29  5:48 UTC (permalink / raw
  To: gentoo-commits

commit:     c7490da48d390fc084753c51689c97ab5d8a319d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 29 05:47:11 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 29 05:48:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7490da4

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   7 -
 sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild | 204 -----------------------
 6 files changed, 1027 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 64e57cdbd948..bde7ba0659b8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,13 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-17.0.0rc1.src.tar.xz 127805900 BLAKE2B ab6e3b7e7af10bbb086bdd271691c259925b8047d8425b0eafb55d2c1daf637c3a56903b88e50283667955e780a47f61e7215a1e3a1acd3634c62960cf17317f SHA512 fa7ebe7fad14087861dc0eea08f68e8aa01dcc6560d70163ec38819a7fd799484f6ab1e35a69393a14962b45fa0a469c9d6c5fd2882b3609305bd01bc9f6701f
-DIST llvm-project-17.0.0rc1.src.tar.xz.sig 438 BLAKE2B 976098c616d7f01c08c5be1d76dd395950184d2c6750f3f2c14235cdf446f1d876d842b3591f827cf1157fa25c707862a374e34d61fb73afe5a7b08d6041ee4a SHA512 272e92dec1fd43819f6fafdaa7f55a975e60a1c3000a69875209b89b7f3e2d2851e32ec0f2725242479203068349aaeff8da261d998a2325a9c52733bc5d7697
-DIST llvm-project-17.0.0rc2.src.tar.xz 127795160 BLAKE2B 58ed818f61e1cd179288d578e89460782617a3791a65dbc3e1f207629004f0d61225e87b78fdc0eeb3647912e5056ab68ce35ea2639a34ded1d8bdf0452e31f8 SHA512 7eb5c5172b5e9af65c940c876779f90e20a02659bf1489cedd06c67eea205aa1f4bdc5a8134a120db98cb80ca54673902b530c3315c9b53384c091200d9162c0
-DIST llvm-project-17.0.0rc2.src.tar.xz.sig 438 BLAKE2B 55788eacc592729839dad581b507794f279d84cafcaa49785ae34e02931ee9d4f64caf9e251e280dbc8676f3cacdca52a22f36cf7282655a3fc0721a61c9f003 SHA512 141e1ba7eb9870c21b91060ca484316cc8a402d4e61c8312688023850070b255b0eebe2d10ef63925f7269ee1b347074440e1a9a18d37cb7e1b6c82a7d1a1710
 DIST llvm-project-17.0.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff21554d9b4f5aa036df1b88676fd8c3e16b438381db062872be396af5246e12cd71812a886016e0331a272dafc3508ecd0bfbb50ed SHA512 5f48b4af2e4f9bc470fcfd42fd48072b7bd442bc676d8401b04fbc6e9014a9a78e1bf524ba78f7ae8a1246222a6b03ca662721e3bf6e9eb03a015dd3306c7234
 DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
-DIST llvm-project-7d259b36d2e8148d13087844e6494ad3a5c63edf.tar.gz 195942450 BLAKE2B 3221cc070295edf4f70e5b24ed06cda29e8dd98d3d28ba5ac38b821fc313f7f7dfdc7ad500537c2244af0fa3d750174dfa1699db7f72a44df67e5fa255a3d0aa SHA512 9279290ab482f29af4a2205270038f1817608a63872e03340d43c31fcf5da36191269838912a1460455a8661295e664891d6d123018b12ddc80c2641790d0640
-DIST llvm-project-c4bb3e073548cf436d5fa0406e3ae75e94684dec.tar.gz 195462091 BLAKE2B 982f1105db6cf63575916a20432df4c8623bdff236ce3bd95e63ffd931bc8e1f0e9ea9ad673b09d749c35c1bfe68a48f5b4080118f25040498db09a580db3a7e SHA512 1c591175f44da85eb5ee831220c0387a3d9a0604beaf7abd89fbc6d1e0e9c4f80dac73de1dc22375a45115dd4c1d764fed0a0f628993ca780eb6991682aa0b5b
 DIST llvm-project-e3373c6c83d3855adb78f1952a3bf0398baf359e.tar.gz 196926975 BLAKE2B 9da1052db0a6ff81a8b76cbf9cb2ab7eed5c8798dc5ae6887a4694de8b151c7a1282cfff2da2e8440b1a67d3d12c33db319fbbe6062761b6d5369e6b335821ae SHA512 8bb6d49ddb824e932f7bad3c51e4a6c2227139aaf19c02e9deb15657919bc12ea41844d8fe045061814aefb9031d82b167c7c0c20bedaa09aaffe164a2109f7d
-DIST llvm-project-fe42682e7818d44cbe19f98ef34caa4e414aa937.tar.gz 196564445 BLAKE2B 056e6622b38009e34392c1d1755086e008bc85e9b4c00126e7ca92ddaee2ede7f31bafbc6ca04c5008983ce843d19fb152d75ce01e6ece4c2d891cc38604532c SHA512 8245f8a50f77e9ac9c0309a0025fde8407bb82d82277e3edba0a995debff50940e9500d4ad65060a330e6c19e2e1332d700ea040ca382ef4b75282a4566cbf72

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_rc1.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-17.0.0_rc2.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_rc2.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230803.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230803.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230810.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230810.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230820.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230820.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-08-29 11:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-08-29 11:20 UTC (permalink / raw
  To: gentoo-commits

commit:     5200ece5f3089ec5733bfbda7053c79dcd1e4f3f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 29 10:49:41 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 29 11:20:20 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5200ece5

sys-libs/libcxx: Add 18.0.0_pre20230829 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index bde7ba0659b8..9b38c470e407 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 DIST llvm-project-17.0.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff21554d9b4f5aa036df1b88676fd8c3e16b438381db062872be396af5246e12cd71812a886016e0331a272dafc3508ecd0bfbb50ed SHA512 5f48b4af2e4f9bc470fcfd42fd48072b7bd442bc676d8401b04fbc6e9014a9a78e1bf524ba78f7ae8a1246222a6b03ca662721e3bf6e9eb03a015dd3306c7234
 DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
 DIST llvm-project-e3373c6c83d3855adb78f1952a3bf0398baf359e.tar.gz 196926975 BLAKE2B 9da1052db0a6ff81a8b76cbf9cb2ab7eed5c8798dc5ae6887a4694de8b151c7a1282cfff2da2e8440b1a67d3d12c33db319fbbe6062761b6d5369e6b335821ae SHA512 8bb6d49ddb824e932f7bad3c51e4a6c2227139aaf19c02e9deb15657919bc12ea41844d8fe045061814aefb9031d82b167c7c0c20bedaa09aaffe164a2109f7d
+DIST llvm-project-f6259d9b9a546dbfa5bc2f29313c6edd6c701177.tar.gz 196957045 BLAKE2B c38b17f4e697c090b0b70385e45ca4ce97981746738e556154895d5b57cede90f6b8bdc5f41023bda6e942f07f572aa508cf0107fb81bee80a5ea9f13ac495fd SHA512 8394a42e1963618ed7f7cf7770acb72ae6bf84f3e2351218b5049ea2d76ff6ae768ad5588ffd1b2be1b5228a8fcb03663430814c409ceb9fa5735c891847f816

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-09-05 19:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-09-05 19:58 UTC (permalink / raw
  To: gentoo-commits

commit:     9b910445e297cd2b5a9cfee81de85ffdf13a9003
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  5 15:52:23 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  5 19:58:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b910445

sys-libs/libcxx: Bump to 17.0.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild | 204 +++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9b38c470e407..4c74d743587e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,7 @@ 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.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff21554d9b4f5aa036df1b88676fd8c3e16b438381db062872be396af5246e12cd71812a886016e0331a272dafc3508ecd0bfbb50ed SHA512 5f48b4af2e4f9bc470fcfd42fd48072b7bd442bc676d8401b04fbc6e9014a9a78e1bf524ba78f7ae8a1246222a6b03ca662721e3bf6e9eb03a015dd3306c7234
 DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
+DIST llvm-project-17.0.0rc4.src.tar.xz 127838724 BLAKE2B e3bf524e55db5e4305099ecdff09c0d3eab7957a5f8729eefe636e361460f405fbfd569af38aa39eea3b6c1e024feaa0400f8bc092194f2c3b54c695e7962591 SHA512 be7b5ad136d03864dbd11a589ca9e8b0b04a4226ebcffcc123b3ba72992f704bab4f9550d03eb2ac1d21fb8b73ac7824398b4cb4c9cec2118efb112babfe0f65
+DIST llvm-project-17.0.0rc4.src.tar.xz.sig 438 BLAKE2B 2cda35b4a3ebddfdbe6828459c8bd8fdfaa8e04d2d1c4f2faf16f5c66909186d2dd73e6a163cf733d8955c007249cf3f62f237855d5a76b1b61f3bfa30e4972d SHA512 5f713e05b7c58fab6e9cc43f2f3f69120482c9b60008146da0cddb266d1a5c9b9a77e1e338fce4e15624b332ac53a90c5c4a6f62c58a77f2122a015b4f0ebed2
 DIST llvm-project-e3373c6c83d3855adb78f1952a3bf0398baf359e.tar.gz 196926975 BLAKE2B 9da1052db0a6ff81a8b76cbf9cb2ab7eed5c8798dc5ae6887a4694de8b151c7a1282cfff2da2e8440b1a67d3d12c33db319fbbe6062761b6d5369e6b335821ae SHA512 8bb6d49ddb824e932f7bad3c51e4a6c2227139aaf19c02e9deb15657919bc12ea41844d8fe045061814aefb9031d82b167c7c0c20bedaa09aaffe164a2109f7d
 DIST llvm-project-f6259d9b9a546dbfa5bc2f29313c6edd6c701177.tar.gz 196957045 BLAKE2B c38b17f4e697c090b0b70385e45ca4ce97981746738e556154895d5b57cede90f6b8bdc5f41023bda6e942f07f572aa508cf0107fb81bee80a5ea9f13ac495fd SHA512 8394a42e1963618ed7f7cf7770acb72ae6bf84f3e2351218b5049ea2d76ff6ae768ad5588ffd1b2be1b5228a8fcb03663430814c409ceb9fa5735c891847f816

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-09-06 18:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-09-06 18:13 UTC (permalink / raw
  To: gentoo-commits

commit:     70a63b000e03c5a20d0caf268d0995dc98496ee4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep  6 17:56:39 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep  6 18:12:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70a63b00

sys-libs/libcxx: Add 18.0.0_pre20230906 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4c74d743587e..f609a2690f84 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,5 +11,6 @@ DIST llvm-project-17.0.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff
 DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
 DIST llvm-project-17.0.0rc4.src.tar.xz 127838724 BLAKE2B e3bf524e55db5e4305099ecdff09c0d3eab7957a5f8729eefe636e361460f405fbfd569af38aa39eea3b6c1e024feaa0400f8bc092194f2c3b54c695e7962591 SHA512 be7b5ad136d03864dbd11a589ca9e8b0b04a4226ebcffcc123b3ba72992f704bab4f9550d03eb2ac1d21fb8b73ac7824398b4cb4c9cec2118efb112babfe0f65
 DIST llvm-project-17.0.0rc4.src.tar.xz.sig 438 BLAKE2B 2cda35b4a3ebddfdbe6828459c8bd8fdfaa8e04d2d1c4f2faf16f5c66909186d2dd73e6a163cf733d8955c007249cf3f62f237855d5a76b1b61f3bfa30e4972d SHA512 5f713e05b7c58fab6e9cc43f2f3f69120482c9b60008146da0cddb266d1a5c9b9a77e1e338fce4e15624b332ac53a90c5c4a6f62c58a77f2122a015b4f0ebed2
+DIST llvm-project-7e5809e7e7bc9a828427b6540a51d45884d8bbbb.tar.gz 197275742 BLAKE2B 17df09155cf3451deffcdd71a4b0602211a4638ad961eb351802028f4fd1b8db870bef817430adb709ea7c1e85f545d7507c06d7fca26869f8a10e6ac6b03967 SHA512 e84aa041aadf3e50376cffd1e92c1447acdca0a2cf8e7df9cca9d0337dfeccb1d022da3a229bb0cfdc9c5fb87215682a1e4f474208b09b8800f30aa0c6e36c4b
 DIST llvm-project-e3373c6c83d3855adb78f1952a3bf0398baf359e.tar.gz 196926975 BLAKE2B 9da1052db0a6ff81a8b76cbf9cb2ab7eed5c8798dc5ae6887a4694de8b151c7a1282cfff2da2e8440b1a67d3d12c33db319fbbe6062761b6d5369e6b335821ae SHA512 8bb6d49ddb824e932f7bad3c51e4a6c2227139aaf19c02e9deb15657919bc12ea41844d8fe045061814aefb9031d82b167c7c0c20bedaa09aaffe164a2109f7d
 DIST llvm-project-f6259d9b9a546dbfa5bc2f29313c6edd6c701177.tar.gz 196957045 BLAKE2B c38b17f4e697c090b0b70385e45ca4ce97981746738e556154895d5b57cede90f6b8bdc5f41023bda6e942f07f572aa508cf0107fb81bee80a5ea9f13ac495fd SHA512 8394a42e1963618ed7f7cf7770acb72ae6bf84f3e2351218b5049ea2d76ff6ae768ad5588ffd1b2be1b5228a8fcb03663430814c409ceb9fa5735c891847f816

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-09-08 11:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-09-08 11:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ecbb997f75b1ad514c50518e650db51777170d37
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  8 11:36:12 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep  8 11:36:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ecbb997f

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild | 204 -----------------------
 4 files changed, 616 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f609a2690f84..6cebf2251623 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,10 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-17.0.0rc3.src.tar.xz 127805656 BLAKE2B ecaead9f227b8357a5dc5ff21554d9b4f5aa036df1b88676fd8c3e16b438381db062872be396af5246e12cd71812a886016e0331a272dafc3508ecd0bfbb50ed SHA512 5f48b4af2e4f9bc470fcfd42fd48072b7bd442bc676d8401b04fbc6e9014a9a78e1bf524ba78f7ae8a1246222a6b03ca662721e3bf6e9eb03a015dd3306c7234
-DIST llvm-project-17.0.0rc3.src.tar.xz.sig 438 BLAKE2B 7b644cf501d17a6aef9b052e359ba06c1840a75e5263de46d938dbbdea07720b53d7ee6b5861ad641d0f7a7f75c6cc17717847b0ea9cf08873dbfacbe1c19074 SHA512 7059b1a90b7dd8cfa831f9e199a3a817358fd75d7c7d7e6de446d5443fce5831877a28e9b964ea238c1d803f9054bf4f53a97622d5f756f7f99aaa1c1a279f44
 DIST llvm-project-17.0.0rc4.src.tar.xz 127838724 BLAKE2B e3bf524e55db5e4305099ecdff09c0d3eab7957a5f8729eefe636e361460f405fbfd569af38aa39eea3b6c1e024feaa0400f8bc092194f2c3b54c695e7962591 SHA512 be7b5ad136d03864dbd11a589ca9e8b0b04a4226ebcffcc123b3ba72992f704bab4f9550d03eb2ac1d21fb8b73ac7824398b4cb4c9cec2118efb112babfe0f65
 DIST llvm-project-17.0.0rc4.src.tar.xz.sig 438 BLAKE2B 2cda35b4a3ebddfdbe6828459c8bd8fdfaa8e04d2d1c4f2faf16f5c66909186d2dd73e6a163cf733d8955c007249cf3f62f237855d5a76b1b61f3bfa30e4972d SHA512 5f713e05b7c58fab6e9cc43f2f3f69120482c9b60008146da0cddb266d1a5c9b9a77e1e338fce4e15624b332ac53a90c5c4a6f62c58a77f2122a015b4f0ebed2
 DIST llvm-project-7e5809e7e7bc9a828427b6540a51d45884d8bbbb.tar.gz 197275742 BLAKE2B 17df09155cf3451deffcdd71a4b0602211a4638ad961eb351802028f4fd1b8db870bef817430adb709ea7c1e85f545d7507c06d7fca26869f8a10e6ac6b03967 SHA512 e84aa041aadf3e50376cffd1e92c1447acdca0a2cf8e7df9cca9d0337dfeccb1d022da3a229bb0cfdc9c5fb87215682a1e4f474208b09b8800f30aa0c6e36c4b
-DIST llvm-project-e3373c6c83d3855adb78f1952a3bf0398baf359e.tar.gz 196926975 BLAKE2B 9da1052db0a6ff81a8b76cbf9cb2ab7eed5c8798dc5ae6887a4694de8b151c7a1282cfff2da2e8440b1a67d3d12c33db319fbbe6062761b6d5369e6b335821ae SHA512 8bb6d49ddb824e932f7bad3c51e4a6c2227139aaf19c02e9deb15657919bc12ea41844d8fe045061814aefb9031d82b167c7c0c20bedaa09aaffe164a2109f7d
-DIST llvm-project-f6259d9b9a546dbfa5bc2f29313c6edd6c701177.tar.gz 196957045 BLAKE2B c38b17f4e697c090b0b70385e45ca4ce97981746738e556154895d5b57cede90f6b8bdc5f41023bda6e942f07f572aa508cf0107fb81bee80a5ea9f13ac495fd SHA512 8394a42e1963618ed7f7cf7770acb72ae6bf84f3e2351218b5049ea2d76ff6ae768ad5588ffd1b2be1b5228a8fcb03663430814c409ceb9fa5735c891847f816

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_rc3.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230825.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230825.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230829.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230829.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-09-19 12:42 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-09-19 12:42 UTC (permalink / raw
  To: gentoo-commits

commit:     6dfee79b2fe864315e72b5dca15f1021687903f0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 19 11:45:27 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 19 12:42:07 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6dfee79b

sys-libs/libcxx: 17.x is now 17.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-17.0.0.9999.ebuild => libcxx-17.0.1.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.1.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-17.0.0.9999.ebuild
rename to sys-libs/libcxx/libcxx-17.0.1.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-09-19 19:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-09-19 19:47 UTC (permalink / raw
  To: gentoo-commits

commit:     9a5417c52b4bcad556ec2b0444189377c3cd4ceb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 19 19:38:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 19 19:47:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9a5417c5

sys-libs/libcxx: Bump to 17.0.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-17.0.1.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6cebf2251623..0a32296d4120 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,6 @@ 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.0rc4.src.tar.xz 127838724 BLAKE2B e3bf524e55db5e4305099ecdff09c0d3eab7957a5f8729eefe636e361460f405fbfd569af38aa39eea3b6c1e024feaa0400f8bc092194f2c3b54c695e7962591 SHA512 be7b5ad136d03864dbd11a589ca9e8b0b04a4226ebcffcc123b3ba72992f704bab4f9550d03eb2ac1d21fb8b73ac7824398b4cb4c9cec2118efb112babfe0f65
 DIST llvm-project-17.0.0rc4.src.tar.xz.sig 438 BLAKE2B 2cda35b4a3ebddfdbe6828459c8bd8fdfaa8e04d2d1c4f2faf16f5c66909186d2dd73e6a163cf733d8955c007249cf3f62f237855d5a76b1b61f3bfa30e4972d SHA512 5f713e05b7c58fab6e9cc43f2f3f69120482c9b60008146da0cddb266d1a5c9b9a77e1e338fce4e15624b332ac53a90c5c4a6f62c58a77f2122a015b4f0ebed2
+DIST llvm-project-17.0.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccfc5c5ee5497498c4f091347924911cb6534e8d930024c35387456af24bf647d9e24a3d927aa49199036fb475018a610b5d792c7 SHA512 6fc1d5ff4fec49ef5bb495ba9d8f9ee9052c10999ec9d3ac8f825c718e3cdd64abd95408c4e5bb7f67eb9a7bfac9e26d2a949c4da9f163b5646c02e8a670ead5
+DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
 DIST llvm-project-7e5809e7e7bc9a828427b6540a51d45884d8bbbb.tar.gz 197275742 BLAKE2B 17df09155cf3451deffcdd71a4b0602211a4638ad961eb351802028f4fd1b8db870bef817430adb709ea7c1e85f545d7507c06d7fca26869f8a10e6ac6b03967 SHA512 e84aa041aadf3e50376cffd1e92c1447acdca0a2cf8e7df9cca9d0337dfeccb1d022da3a229bb0cfdc9c5fb87215682a1e4f474208b09b8800f30aa0c6e36c4b

diff --git a/sys-libs/libcxx/libcxx-17.0.1.ebuild b/sys-libs/libcxx/libcxx-17.0.1.ebuild
new file mode 100644
index 000000000000..61280232d24e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.1.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-09-25 18:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-09-25 18:45 UTC (permalink / raw
  To: gentoo-commits

commit:     7a3bc4c2aaaf459017b3ac55e3f2499c3369f29a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 25 18:44:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Sep 25 18:44:00 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a3bc4c2

sys-libs/libcxx: Add 18.0.0_pre20230925 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0a32296d4120..e55af89008da 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,3 +12,4 @@ DIST llvm-project-17.0.0rc4.src.tar.xz.sig 438 BLAKE2B 2cda35b4a3ebddfdbe6828459
 DIST llvm-project-17.0.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccfc5c5ee5497498c4f091347924911cb6534e8d930024c35387456af24bf647d9e24a3d927aa49199036fb475018a610b5d792c7 SHA512 6fc1d5ff4fec49ef5bb495ba9d8f9ee9052c10999ec9d3ac8f825c718e3cdd64abd95408c4e5bb7f67eb9a7bfac9e26d2a949c4da9f163b5646c02e8a670ead5
 DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
 DIST llvm-project-7e5809e7e7bc9a828427b6540a51d45884d8bbbb.tar.gz 197275742 BLAKE2B 17df09155cf3451deffcdd71a4b0602211a4638ad961eb351802028f4fd1b8db870bef817430adb709ea7c1e85f545d7507c06d7fca26869f8a10e6ac6b03967 SHA512 e84aa041aadf3e50376cffd1e92c1447acdca0a2cf8e7df9cca9d0337dfeccb1d022da3a229bb0cfdc9c5fb87215682a1e4f474208b09b8800f30aa0c6e36c4b
+DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-02 15:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-02 15:19 UTC (permalink / raw
  To: gentoo-commits

commit:     772f3d057b3bdf593e9a791b8dee66fe70127b01
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  2 15:17:59 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  2 15:17:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=772f3d05

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild         | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild | 204 -----------------------
 3 files changed, 411 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e55af89008da..2da3d37608a2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,9 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-17.0.0rc4.src.tar.xz 127838724 BLAKE2B e3bf524e55db5e4305099ecdff09c0d3eab7957a5f8729eefe636e361460f405fbfd569af38aa39eea3b6c1e024feaa0400f8bc092194f2c3b54c695e7962591 SHA512 be7b5ad136d03864dbd11a589ca9e8b0b04a4226ebcffcc123b3ba72992f704bab4f9550d03eb2ac1d21fb8b73ac7824398b4cb4c9cec2118efb112babfe0f65
-DIST llvm-project-17.0.0rc4.src.tar.xz.sig 438 BLAKE2B 2cda35b4a3ebddfdbe6828459c8bd8fdfaa8e04d2d1c4f2faf16f5c66909186d2dd73e6a163cf733d8955c007249cf3f62f237855d5a76b1b61f3bfa30e4972d SHA512 5f713e05b7c58fab6e9cc43f2f3f69120482c9b60008146da0cddb266d1a5c9b9a77e1e338fce4e15624b332ac53a90c5c4a6f62c58a77f2122a015b4f0ebed2
 DIST llvm-project-17.0.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccfc5c5ee5497498c4f091347924911cb6534e8d930024c35387456af24bf647d9e24a3d927aa49199036fb475018a610b5d792c7 SHA512 6fc1d5ff4fec49ef5bb495ba9d8f9ee9052c10999ec9d3ac8f825c718e3cdd64abd95408c4e5bb7f67eb9a7bfac9e26d2a949c4da9f163b5646c02e8a670ead5
 DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
-DIST llvm-project-7e5809e7e7bc9a828427b6540a51d45884d8bbbb.tar.gz 197275742 BLAKE2B 17df09155cf3451deffcdd71a4b0602211a4638ad961eb351802028f4fd1b8db870bef817430adb709ea7c1e85f545d7507c06d7fca26869f8a10e6ac6b03967 SHA512 e84aa041aadf3e50376cffd1e92c1447acdca0a2cf8e7df9cca9d0337dfeccb1d022da3a229bb0cfdc9c5fb87215682a1e4f474208b09b8800f30aa0c6e36c4b
 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild b/sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.0_rc4.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230906.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230906.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-02 15:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-02 15:24 UTC (permalink / raw
  To: gentoo-commits

commit:     b95422f3a6ab4008fbce89c6d0736dcb550960cd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  2 15:22:56 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  2 15:22:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b95422f3

sys-libs/libcxx: 17.x is now 17.0.2.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-17.0.1.9999.ebuild => libcxx-17.0.2.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.2.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-17.0.1.9999.ebuild
rename to sys-libs/libcxx/libcxx-17.0.2.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-02 19:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-02 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     6880a188117c4918c18c7bb1748ae260fd4ea144
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Oct  2 18:28:06 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  2 19:39:26 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6880a188

sys-libs/libcxx: Add 18.0.0_pre20231002 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2da3d37608a2..0b689bbb2dda 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,5 @@ 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.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccfc5c5ee5497498c4f091347924911cb6534e8d930024c35387456af24bf647d9e24a3d927aa49199036fb475018a610b5d792c7 SHA512 6fc1d5ff4fec49ef5bb495ba9d8f9ee9052c10999ec9d3ac8f825c718e3cdd64abd95408c4e5bb7f67eb9a7bfac9e26d2a949c4da9f163b5646c02e8a670ead5
 DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
+DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13
 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-04  8:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-04  8:44 UTC (permalink / raw
  To: gentoo-commits

commit:     8c621106cd498d5e227e1dbdcccfe7261fe38da4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  4 08:24:12 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  4 08:44:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c621106

sys-libs/libcxx: Bump to 17.0.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-17.0.2.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0b689bbb2dda..c9d4b65bab70 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,7 @@ 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.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccfc5c5ee5497498c4f091347924911cb6534e8d930024c35387456af24bf647d9e24a3d927aa49199036fb475018a610b5d792c7 SHA512 6fc1d5ff4fec49ef5bb495ba9d8f9ee9052c10999ec9d3ac8f825c718e3cdd64abd95408c4e5bb7f67eb9a7bfac9e26d2a949c4da9f163b5646c02e8a670ead5
 DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
+DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659
+DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909
 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13
 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-17.0.2.ebuild b/sys-libs/libcxx/libcxx-17.0.2.ebuild
new file mode 100644
index 000000000000..61280232d24e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.2.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-13 12:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-13 12:17 UTC (permalink / raw
  To: gentoo-commits

commit:     3767795e149baba653882696d2fc6e9ca9a65055
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 13 12:15:46 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct 13 12:15:46 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3767795e

sys-libs/libcxx: 17.x live is now 17.0.3.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-17.0.2.9999.ebuild => libcxx-17.0.3.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.2.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.3.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-17.0.2.9999.ebuild
rename to sys-libs/libcxx/libcxx-17.0.3.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-13 16:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-13 16:15 UTC (permalink / raw
  To: gentoo-commits

commit:     7b6f38112fd6153cff904d16f1b49ce831412f41
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 13 15:50:32 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct 13 15:50:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b6f3811

sys-libs/libcxx: Add 18.0.0_pre20231013 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild | 204 +++++++++++++++++++++++
 2 files changed, 205 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c9d4b65bab70..e30dad30c594 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,4 +12,5 @@ DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b
 DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659
 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909
 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13
+DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
new file mode 100644
index 000000000000..bb005b4d8ec8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS=""
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-17 15:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-17 15:11 UTC (permalink / raw
  To: gentoo-commits

commit:     3f1c47d8daa48b1d83d14463c7ad3941faceae00
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 17 14:58:41 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 17 15:11:17 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f1c47d8

sys-libs/libcxx: Bump to 17.0.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-17.0.3.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e30dad30c594..3583260a6537 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,6 +11,8 @@ DIST llvm-project-17.0.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccf
 DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
 DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659
 DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909
+DIST llvm-project-17.0.3.src.tar.xz 127843636 BLAKE2B 5331d9b545faab282a4caec9ee688d0f1e0615a56a26aa24d8f6fbbae10258e132d94634dab2f7bd69ada06bb28dc899730b9cd774a1086d7c03d5706de6d997 SHA512 44f37dea494a66a83c252e28d7d0517c3b2eed5b196565432dc663c7914bd66d665c8d13479e2776a14cac1905faf6972f986176722c053b58528570a6e68316
+DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec841b24777ac1888f10de435a389ae3a88172e0559a3fca0c2d37cc874464411ae50d7bc0d0829455149a8de8b953ef6c98c7 SHA512 95f9e6729074cfd71b0ffb21e423cd0fd87763268c24e0513f7afd6a85d08061658c44c03ea3ea3b6e3cc7051676d44c41a791e6905c8abb456d48a3762fc152
 DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13
 DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
 DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-17.0.3.ebuild b/sys-libs/libcxx/libcxx-17.0.3.ebuild
new file mode 100644
index 000000000000..61280232d24e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.3.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-19 15:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-19 15:02 UTC (permalink / raw
  To: gentoo-commits

commit:     5450b69d01a10423f98fed8d5e65666916d828de
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 19 15:00:30 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct 19 15:02:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5450b69d

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   6 -
 sys-libs/libcxx/libcxx-17.0.1.ebuild             | 204 -----------------------
 sys-libs/libcxx/libcxx-17.0.2.ebuild             | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild | 204 -----------------------
 5 files changed, 822 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3583260a6537..1b7973e5d026 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,12 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-17.0.1.src.tar.xz 127830376 BLAKE2B bb3b9f7358df9006307f5eeccfc5c5ee5497498c4f091347924911cb6534e8d930024c35387456af24bf647d9e24a3d927aa49199036fb475018a610b5d792c7 SHA512 6fc1d5ff4fec49ef5bb495ba9d8f9ee9052c10999ec9d3ac8f825c718e3cdd64abd95408c4e5bb7f67eb9a7bfac9e26d2a949c4da9f163b5646c02e8a670ead5
-DIST llvm-project-17.0.1.src.tar.xz.sig 438 BLAKE2B 3182e3c3a48635fdec39b945ee3b782d7c9c2a07911d9ede2e3421031bb1b4959bd495c5e39d094aeaf555579b9fe3eb834c1449077c154c629f5db605375e7c SHA512 301a6e6c46d6fee13c86dec1a021c35f6bf3a97e5d6b0aa7b7eac34e7ca52f6cefffc25a9e376250b1eb721a65a5852f2f1948abd432698363a81dd7ee19d81c
-DIST llvm-project-17.0.2.src.tar.xz 127833708 BLAKE2B fa9e2e48ce1117063f5cef0aeef85ce84b99bd8fae23022572a6f016eff2ffbf8aab6250b0bdb6e0bbea1c4daf10cecceb18e80496260b5aa81086075d503e12 SHA512 4586224c3f547e8065fa4f0ca3629a1dfed868dfc372ab192d8b9384f0f74dc8cb27dcb6269dc4230202e6a524aae852d98b40fa02ed0393086a162387ea7659
-DIST llvm-project-17.0.2.src.tar.xz.sig 438 BLAKE2B 3ba5d7a09e9de3f38a6f7b5b771b08b1c4e96ea7eda948cfa679598d240fa5211fd37220fbe09e37682212b17fb71b8b5539475edb8ff46d9767054983f670cb SHA512 234276813e3f4b5ee9b1dc640a613fd2e60f1d659f4e089733278d08dd0e208ad37d4d64c9e1edd420b6b87e112458ecec5f76ed9a243c3023b0adbab19ab909
 DIST llvm-project-17.0.3.src.tar.xz 127843636 BLAKE2B 5331d9b545faab282a4caec9ee688d0f1e0615a56a26aa24d8f6fbbae10258e132d94634dab2f7bd69ada06bb28dc899730b9cd774a1086d7c03d5706de6d997 SHA512 44f37dea494a66a83c252e28d7d0517c3b2eed5b196565432dc663c7914bd66d665c8d13479e2776a14cac1905faf6972f986176722c053b58528570a6e68316
 DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec841b24777ac1888f10de435a389ae3a88172e0559a3fca0c2d37cc874464411ae50d7bc0d0829455149a8de8b953ef6c98c7 SHA512 95f9e6729074cfd71b0ffb21e423cd0fd87763268c24e0513f7afd6a85d08061658c44c03ea3ea3b6e3cc7051676d44c41a791e6905c8abb456d48a3762fc152
-DIST llvm-project-39fec5457c0925bd39f67f63fe17391584e08258.tar.gz 198361956 BLAKE2B 001b9d9b7997762dcce4f0b1deb94d41c3d840c178ba1e92208782e7e21fdc0041cde359051b2b1b1fc75526ff6504d3b9375ff873831350de359530c944a961 SHA512 b560e71c9855aff9fb5385f9fb30f63fbef074fd695e7cb31847192837a161bfe4808ceb09c514a676ae817616f15fb5a57d325aa9744eaac46b8f4b20b77a13
 DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
-DIST llvm-project-f5cb9cb59d7c9c6ac3d5c41c677f68c9b75d34a3.tar.gz 198113948 BLAKE2B 1688920eb790421f4143e92bd7bd26794a2497e7b445dde6d55b59c9df4b1aebb848833c7cb1b7c273c5e002763f2531a341313500ce207242f992dfe343b988 SHA512 9817e8b7adf7c69d673124e8334c3e511dfd1cc386832c52b2fb0f2517475d29cd98513ad87188a962f9697dfac39ea03f5b2db6c549c307cf3d27b1370ffdf3

diff --git a/sys-libs/libcxx/libcxx-17.0.1.ebuild b/sys-libs/libcxx/libcxx-17.0.1.ebuild
deleted file mode 100644
index 61280232d24e..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.1.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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-17.0.2.ebuild b/sys-libs/libcxx/libcxx-17.0.2.ebuild
deleted file mode 100644
index 61280232d24e..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.2.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20230925.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20230925.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20231002.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild
deleted file mode 100644
index bb005b4d8ec8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231002.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS=""
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-19 15:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-19 15:13 UTC (permalink / raw
  To: gentoo-commits

commit:     b7ac7ec3fb8ed4f381ed786a216fba57e1450593
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 19 15:04:52 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct 19 15:13:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7ac7ec3

sys-libs/libcxx: Fix EmptyGlobalAssignment

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.3.9999.ebuild        | 1 -
 sys-libs/libcxx/libcxx-18.0.0.9999.ebuild        | 1 -
 sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild | 1 -
 3 files changed, 3 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.3.9999.ebuild
index bb005b4d8ec8..7c12f38c8f48 100644
--- a/sys-libs/libcxx/libcxx-17.0.3.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.3.9999.ebuild
@@ -12,7 +12,6 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
index bb005b4d8ec8..7c12f38c8f48 100644
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
@@ -12,7 +12,6 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
index bb005b4d8ec8..7c12f38c8f48 100644
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
@@ -12,7 +12,6 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS=""
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-19 19:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-19 19:50 UTC (permalink / raw
  To: gentoo-commits

commit:     aed589bfa16bd5ea76d7f7dac63586850051435e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 19 18:52:40 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct 19 19:50:29 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aed589bf

sys-libs/libcxx: Add 18.0.0_pre20231019 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild | 203 +++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1b7973e5d026..4f8971d2370f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 DIST llvm-project-17.0.3.src.tar.xz 127843636 BLAKE2B 5331d9b545faab282a4caec9ee688d0f1e0615a56a26aa24d8f6fbbae10258e132d94634dab2f7bd69ada06bb28dc899730b9cd774a1086d7c03d5706de6d997 SHA512 44f37dea494a66a83c252e28d7d0517c3b2eed5b196565432dc663c7914bd66d665c8d13479e2776a14cac1905faf6972f986176722c053b58528570a6e68316
 DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec841b24777ac1888f10de435a389ae3a88172e0559a3fca0c2d37cc874464411ae50d7bc0d0829455149a8de8b953ef6c98c7 SHA512 95f9e6729074cfd71b0ffb21e423cd0fd87763268c24e0513f7afd6a85d08061658c44c03ea3ea3b6e3cc7051676d44c41a791e6905c8abb456d48a3762fc152
 DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
+DIST llvm-project-e6e90840708099425b7b69dd053634ff25d4907f.tar.gz 199022115 BLAKE2B 442aff8f561f7c5834a36b7eb217fd2b984e58af9cbcf3e6495305f386a7651e73345bbe65133af4bffaf8cb209cfb9a94fb28756ffaaaae8f7d28ec253ccb78 SHA512 fa9c180f36f4c782208ae7baff1683ee466c70f7d021b21b9cb8a8fd0f2005c0b47889d8bb37f5fb984f6b2ec26c74df60490c7b51ac3d080830e6844e33e300

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild
new file mode 100644
index 000000000000..7c12f38c8f48
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-26  2:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-26  2:10 UTC (permalink / raw
  To: gentoo-commits

commit:     3dc11ae299846f08335079bce29bfe396fc0c672
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 25 18:57:52 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct 26 02:10:38 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3dc11ae2

sys-libs/libcxx: Add 18.0.0_pre20231025 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild | 203 +++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4f8971d2370f..fc4b67dbcd0e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,4 +10,5 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 DIST llvm-project-17.0.3.src.tar.xz 127843636 BLAKE2B 5331d9b545faab282a4caec9ee688d0f1e0615a56a26aa24d8f6fbbae10258e132d94634dab2f7bd69ada06bb28dc899730b9cd774a1086d7c03d5706de6d997 SHA512 44f37dea494a66a83c252e28d7d0517c3b2eed5b196565432dc663c7914bd66d665c8d13479e2776a14cac1905faf6972f986176722c053b58528570a6e68316
 DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec841b24777ac1888f10de435a389ae3a88172e0559a3fca0c2d37cc874464411ae50d7bc0d0829455149a8de8b953ef6c98c7 SHA512 95f9e6729074cfd71b0ffb21e423cd0fd87763268c24e0513f7afd6a85d08061658c44c03ea3ea3b6e3cc7051676d44c41a791e6905c8abb456d48a3762fc152
 DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
+DIST llvm-project-a7700985577694d6cc2498833f27b4fb5eeaf252.tar.gz 199221825 BLAKE2B 047ab7c0e80e1dbbe61ebd9aaae17166665a33b5cb50beec6da2cc19bec9a16777b82c157e74f88b0678d843b200f292d696a964211a8e532f128491dc39a6e4 SHA512 b747210d53402ae01238fa82195fa5c1c8d1c832d976bcc996ef657ac54dacb2fb19521c6f080151e6b1af8a49ddfe58979afaa00b3f1f72dc664ac79b99a8bb
 DIST llvm-project-e6e90840708099425b7b69dd053634ff25d4907f.tar.gz 199022115 BLAKE2B 442aff8f561f7c5834a36b7eb217fd2b984e58af9cbcf3e6495305f386a7651e73345bbe65133af4bffaf8cb209cfb9a94fb28756ffaaaae8f7d28ec253ccb78 SHA512 fa9c180f36f4c782208ae7baff1683ee466c70f7d021b21b9cb8a8fd0f2005c0b47889d8bb37f5fb984f6b2ec26c74df60490c7b51ac3d080830e6844e33e300

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild
new file mode 100644
index 000000000000..7c12f38c8f48
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-31  8:38 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-31  8:38 UTC (permalink / raw
  To: gentoo-commits

commit:     aa43ee81148471576b71171ce603fd7226314778
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 31 08:37:30 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 31 08:37:30 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa43ee81

sys-libs/libcxx: 17.x is now 17.0.4.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/{libcxx-17.0.3.9999.ebuild => libcxx-17.0.4.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.4.9999.ebuild
similarity index 100%
rename from sys-libs/libcxx/libcxx-17.0.3.9999.ebuild
rename to sys-libs/libcxx/libcxx-17.0.4.9999.ebuild


^ permalink raw reply	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-10-31 19:12 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-10-31 19:12 UTC (permalink / raw
  To: gentoo-commits

commit:     508b90976f791afd482deb3e782d71f278caadfc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 31 08:39:36 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 31 19:12:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=508b9097

sys-libs/libcxx: Bump to 17.0.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-17.0.4.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index fc4b67dbcd0e..ddee0c948654 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,6 +9,8 @@ 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.3.src.tar.xz 127843636 BLAKE2B 5331d9b545faab282a4caec9ee688d0f1e0615a56a26aa24d8f6fbbae10258e132d94634dab2f7bd69ada06bb28dc899730b9cd774a1086d7c03d5706de6d997 SHA512 44f37dea494a66a83c252e28d7d0517c3b2eed5b196565432dc663c7914bd66d665c8d13479e2776a14cac1905faf6972f986176722c053b58528570a6e68316
 DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec841b24777ac1888f10de435a389ae3a88172e0559a3fca0c2d37cc874464411ae50d7bc0d0829455149a8de8b953ef6c98c7 SHA512 95f9e6729074cfd71b0ffb21e423cd0fd87763268c24e0513f7afd6a85d08061658c44c03ea3ea3b6e3cc7051676d44c41a791e6905c8abb456d48a3762fc152
+DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f75ab792d13e7f33825df36e85e7988f313a4f3fbb1b4c854615a5e437a97ad552838eb1be5098194f281ba1279330156dd6a38 SHA512 6703eede8013e7e5733fbd7b527757166d5698f52e239522fb320717430c88696309038501d22fe384b016b330bd92126a2c0ba88b0258c3f092801e3800b7a3
+DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
 DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
 DIST llvm-project-a7700985577694d6cc2498833f27b4fb5eeaf252.tar.gz 199221825 BLAKE2B 047ab7c0e80e1dbbe61ebd9aaae17166665a33b5cb50beec6da2cc19bec9a16777b82c157e74f88b0678d843b200f292d696a964211a8e532f128491dc39a6e4 SHA512 b747210d53402ae01238fa82195fa5c1c8d1c832d976bcc996ef657ac54dacb2fb19521c6f080151e6b1af8a49ddfe58979afaa00b3f1f72dc664ac79b99a8bb
 DIST llvm-project-e6e90840708099425b7b69dd053634ff25d4907f.tar.gz 199022115 BLAKE2B 442aff8f561f7c5834a36b7eb217fd2b984e58af9cbcf3e6495305f386a7651e73345bbe65133af4bffaf8cb209cfb9a94fb28756ffaaaae8f7d28ec253ccb78 SHA512 fa9c180f36f4c782208ae7baff1683ee466c70f7d021b21b9cb8a8fd0f2005c0b47889d8bb37f5fb984f6b2ec26c74df60490c7b51ac3d080830e6844e33e300

diff --git a/sys-libs/libcxx/libcxx-17.0.4.ebuild b/sys-libs/libcxx/libcxx-17.0.4.ebuild
new file mode 100644
index 000000000000..61280232d24e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.4.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-04 18:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-04 18:03 UTC (permalink / raw
  To: gentoo-commits

commit:     970067b5861180b7b9492329100736e4c172b9e5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  4 08:50:20 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov  4 18:03:01 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=970067b5

sys-libs/libcxx: Add 18.0.0_pre20231104 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild | 203 +++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ddee0c948654..8c2583b1720c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,5 +12,6 @@ DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec
 DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f75ab792d13e7f33825df36e85e7988f313a4f3fbb1b4c854615a5e437a97ad552838eb1be5098194f281ba1279330156dd6a38 SHA512 6703eede8013e7e5733fbd7b527757166d5698f52e239522fb320717430c88696309038501d22fe384b016b330bd92126a2c0ba88b0258c3f092801e3800b7a3
 DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
 DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
+DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509
 DIST llvm-project-a7700985577694d6cc2498833f27b4fb5eeaf252.tar.gz 199221825 BLAKE2B 047ab7c0e80e1dbbe61ebd9aaae17166665a33b5cb50beec6da2cc19bec9a16777b82c157e74f88b0678d843b200f292d696a964211a8e532f128491dc39a6e4 SHA512 b747210d53402ae01238fa82195fa5c1c8d1c832d976bcc996ef657ac54dacb2fb19521c6f080151e6b1af8a49ddfe58979afaa00b3f1f72dc664ac79b99a8bb
 DIST llvm-project-e6e90840708099425b7b69dd053634ff25d4907f.tar.gz 199022115 BLAKE2B 442aff8f561f7c5834a36b7eb217fd2b984e58af9cbcf3e6495305f386a7651e73345bbe65133af4bffaf8cb209cfb9a94fb28756ffaaaae8f7d28ec253ccb78 SHA512 fa9c180f36f4c782208ae7baff1683ee466c70f7d021b21b9cb8a8fd0f2005c0b47889d8bb37f5fb984f6b2ec26c74df60490c7b51ac3d080830e6844e33e300

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild
new file mode 100644
index 000000000000..7c12f38c8f48
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-11 10:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-11 10:36 UTC (permalink / raw
  To: gentoo-commits

commit:     9f5efe6d5414123096429e60c72fa870f97b3f16
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 11 09:23:39 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 11 10:36:19 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f5efe6d

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   5 -
 sys-libs/libcxx/libcxx-17.0.3.ebuild             | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild | 203 ----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild | 203 ----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild | 203 ----------------------
 5 files changed, 818 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8c2583b1720c..6b8087ee079b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,11 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-17.0.3.src.tar.xz 127843636 BLAKE2B 5331d9b545faab282a4caec9ee688d0f1e0615a56a26aa24d8f6fbbae10258e132d94634dab2f7bd69ada06bb28dc899730b9cd774a1086d7c03d5706de6d997 SHA512 44f37dea494a66a83c252e28d7d0517c3b2eed5b196565432dc663c7914bd66d665c8d13479e2776a14cac1905faf6972f986176722c053b58528570a6e68316
-DIST llvm-project-17.0.3.src.tar.xz.sig 438 BLAKE2B 045e7ca82c8d9b3f182e4fa331ec841b24777ac1888f10de435a389ae3a88172e0559a3fca0c2d37cc874464411ae50d7bc0d0829455149a8de8b953ef6c98c7 SHA512 95f9e6729074cfd71b0ffb21e423cd0fd87763268c24e0513f7afd6a85d08061658c44c03ea3ea3b6e3cc7051676d44c41a791e6905c8abb456d48a3762fc152
 DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f75ab792d13e7f33825df36e85e7988f313a4f3fbb1b4c854615a5e437a97ad552838eb1be5098194f281ba1279330156dd6a38 SHA512 6703eede8013e7e5733fbd7b527757166d5698f52e239522fb320717430c88696309038501d22fe384b016b330bd92126a2c0ba88b0258c3f092801e3800b7a3
 DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
-DIST llvm-project-5d35273a32d239b7407338e13ed71b59174d6536.tar.gz 198787569 BLAKE2B 7f4f1eb490028e18826a6ebade649a682e433252ceab1f3dcd9e50c34f24e7ef108c3325ec209a4d4fa1ded8e09ebda4980cb9d8ddce8a0d517923d6c38b8f4a SHA512 4d263561fb12cc07a5e8f7ed2f8f22a3645aa959cf963a6a735a9bb93cfc2a51bf7e4d36b54e8425725029cfcfd868dfcc53af95d26d84be72be124d8c564271
 DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509
-DIST llvm-project-a7700985577694d6cc2498833f27b4fb5eeaf252.tar.gz 199221825 BLAKE2B 047ab7c0e80e1dbbe61ebd9aaae17166665a33b5cb50beec6da2cc19bec9a16777b82c157e74f88b0678d843b200f292d696a964211a8e532f128491dc39a6e4 SHA512 b747210d53402ae01238fa82195fa5c1c8d1c832d976bcc996ef657ac54dacb2fb19521c6f080151e6b1af8a49ddfe58979afaa00b3f1f72dc664ac79b99a8bb
-DIST llvm-project-e6e90840708099425b7b69dd053634ff25d4907f.tar.gz 199022115 BLAKE2B 442aff8f561f7c5834a36b7eb217fd2b984e58af9cbcf3e6495305f386a7651e73345bbe65133af4bffaf8cb209cfb9a94fb28756ffaaaae8f7d28ec253ccb78 SHA512 fa9c180f36f4c782208ae7baff1683ee466c70f7d021b21b9cb8a8fd0f2005c0b47889d8bb37f5fb984f6b2ec26c74df60490c7b51ac3d080830e6844e33e300

diff --git a/sys-libs/libcxx/libcxx-17.0.3.ebuild b/sys-libs/libcxx/libcxx-17.0.3.ebuild
deleted file mode 100644
index 61280232d24e..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.3.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20231013.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
deleted file mode 100644
index 7c12f38c8f48..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231013.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20231019.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild
deleted file mode 100644
index 7c12f38c8f48..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231019.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20231025.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild
deleted file mode 100644
index 7c12f38c8f48..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231025.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-11 20:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-11 20:23 UTC (permalink / raw
  To: gentoo-commits

commit:     6360ed41153ebc7bd7789fea54c3aeddb649e026
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 11 19:01:36 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 11 20:23:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6360ed41

sys-libs/libcxx: Add 18.0.0_pre20231111 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild | 203 +++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6b8087ee079b..4ab6ae1b50e0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,6 +7,7 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
+DIST llvm-project-167b598648dfcee2f23426bfa972e53f8ac16722.tar.gz 201158314 BLAKE2B 908d42b0148f04eeab8d05d46736c570ffdea7d66273aa428375f944deaaf1c0ca885ef0fbe04588d838e4f831ff9823365f9df700f9e9de08c700f0135f2e59 SHA512 7da16df850245ba70e4ddf318a0e7322ed68b076337325c3d3702bb428358d11137b6254051cc6a34d047789f107fd96065cd169c9b2684f78b3a54c4f566a78
 DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f75ab792d13e7f33825df36e85e7988f313a4f3fbb1b4c854615a5e437a97ad552838eb1be5098194f281ba1279330156dd6a38 SHA512 6703eede8013e7e5733fbd7b527757166d5698f52e239522fb320717430c88696309038501d22fe384b016b330bd92126a2c0ba88b0258c3f092801e3800b7a3
 DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
 DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild
new file mode 100644
index 000000000000..7c12f38c8f48
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-14 13:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-14 13:06 UTC (permalink / raw
  To: gentoo-commits

commit:     782c384bc596a4e59e16c14b65fa8081ad881c5f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 14 13:04:47 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 14 13:04:47 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=782c384b

sys-libs/libcxx: Remove 17.0.4.9999 (live)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.4.9999.ebuild | 203 ------------------------------
 1 file changed, 203 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.4.9999.ebuild b/sys-libs/libcxx/libcxx-17.0.4.9999.ebuild
deleted file mode 100644
index 7c12f38c8f48..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.4.9999.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-14 18:26 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-14 18:26 UTC (permalink / raw
  To: gentoo-commits

commit:     09db0df8bb92f97793f2cd31073981c3de3e270e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 14 17:06:30 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 14 18:26:02 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09db0df8

sys-libs/libcxx: Bump to 17.0.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-17.0.5.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4ab6ae1b50e0..f0b654cc8548 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,4 +10,6 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 DIST llvm-project-167b598648dfcee2f23426bfa972e53f8ac16722.tar.gz 201158314 BLAKE2B 908d42b0148f04eeab8d05d46736c570ffdea7d66273aa428375f944deaaf1c0ca885ef0fbe04588d838e4f831ff9823365f9df700f9e9de08c700f0135f2e59 SHA512 7da16df850245ba70e4ddf318a0e7322ed68b076337325c3d3702bb428358d11137b6254051cc6a34d047789f107fd96065cd169c9b2684f78b3a54c4f566a78
 DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f75ab792d13e7f33825df36e85e7988f313a4f3fbb1b4c854615a5e437a97ad552838eb1be5098194f281ba1279330156dd6a38 SHA512 6703eede8013e7e5733fbd7b527757166d5698f52e239522fb320717430c88696309038501d22fe384b016b330bd92126a2c0ba88b0258c3f092801e3800b7a3
 DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
+DIST llvm-project-17.0.5.src.tar.xz 127842560 BLAKE2B 2d657ff14ad2dc932a5cdc6605ad30cba8e22ed8f4adb5ed53bfd9b5b654496023df9eb895f9691e98bba6b6a341b81d8a17361daf81ce4c3cd6a2b3602cd90e SHA512 793b63aa875b6d02e3a2803815cc9361b76c9ab1506967e18630fc3d6811bf51c73f53c51d148a5fc72e87e35dc2b88cb18b48419939c436451fe65c5a326022
+DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5ca6a6b7e922338219e7a62b2f33082d88b700781e184f2b3b0758c1d46825cf369ddd6f8824f3be8d8f3a70a88cfbc06bba45 SHA512 509a61434471463459d3ec837e3f3cce662650d4e72ffc7d28fbeb0d5cfe92d5b1dc4fa568e40f48757b1e708de793bc157de7225ac15a00221191e6c1e660d9
 DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509

diff --git a/sys-libs/libcxx/libcxx-17.0.5.ebuild b/sys-libs/libcxx/libcxx-17.0.5.ebuild
new file mode 100644
index 000000000000..61280232d24e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.5.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-19 11:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-19 11:10 UTC (permalink / raw
  To: gentoo-commits

commit:     7084cb8aeaa7eee06eabe6962a115d01cf552c4a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 19 09:45:43 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Nov 19 11:10:10 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7084cb8a

sys-libs/libcxx: Add 18.0.0_pre20231119 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231119.ebuild | 203 +++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f0b654cc8548..f6eb3a248787 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,4 +12,5 @@ DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f
 DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
 DIST llvm-project-17.0.5.src.tar.xz 127842560 BLAKE2B 2d657ff14ad2dc932a5cdc6605ad30cba8e22ed8f4adb5ed53bfd9b5b654496023df9eb895f9691e98bba6b6a341b81d8a17361daf81ce4c3cd6a2b3602cd90e SHA512 793b63aa875b6d02e3a2803815cc9361b76c9ab1506967e18630fc3d6811bf51c73f53c51d148a5fc72e87e35dc2b88cb18b48419939c436451fe65c5a326022
 DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5ca6a6b7e922338219e7a62b2f33082d88b700781e184f2b3b0758c1d46825cf369ddd6f8824f3be8d8f3a70a88cfbc06bba45 SHA512 509a61434471463459d3ec837e3f3cce662650d4e72ffc7d28fbeb0d5cfe92d5b1dc4fa568e40f48757b1e708de793bc157de7225ac15a00221191e6c1e660d9
+DIST llvm-project-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45
 DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231119.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231119.ebuild
new file mode 100644
index 000000000000..7c12f38c8f48
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231119.ebuild
@@ -0,0 +1,203 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-25 11:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-25 11:21 UTC (permalink / raw
  To: gentoo-commits

commit:     b30cc26fc7abd8a7f427190a2e5f66b80b884926
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 25 11:19:20 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov 25 11:21:04 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b30cc26f

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-17.0.4.ebuild             | 204 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild | 203 ----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild | 203 ----------------------
 4 files changed, 614 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f6eb3a248787..9c76b9672949 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,10 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-167b598648dfcee2f23426bfa972e53f8ac16722.tar.gz 201158314 BLAKE2B 908d42b0148f04eeab8d05d46736c570ffdea7d66273aa428375f944deaaf1c0ca885ef0fbe04588d838e4f831ff9823365f9df700f9e9de08c700f0135f2e59 SHA512 7da16df850245ba70e4ddf318a0e7322ed68b076337325c3d3702bb428358d11137b6254051cc6a34d047789f107fd96065cd169c9b2684f78b3a54c4f566a78
-DIST llvm-project-17.0.4.src.tar.xz 127828636 BLAKE2B bd91ef7f07e085b935500b056f75ab792d13e7f33825df36e85e7988f313a4f3fbb1b4c854615a5e437a97ad552838eb1be5098194f281ba1279330156dd6a38 SHA512 6703eede8013e7e5733fbd7b527757166d5698f52e239522fb320717430c88696309038501d22fe384b016b330bd92126a2c0ba88b0258c3f092801e3800b7a3
-DIST llvm-project-17.0.4.src.tar.xz.sig 438 BLAKE2B e417c14d0af8c2f13eccec7a42d0e4d5a6a834d7a3d31061b9f56f7e880cd982c2b1e84322bcf8f6a3d3167519c31f16c7acb8fc725ab5b453f467a196ca2688 SHA512 4e79bb1d2b41289c092d4ec2759d7cfd4f12df8d107f9510aa9e2354691e7f878e3929b2b50e29fd6c65bd5a3aa13baf6b791847c1cd99817adbf59700cf2bdd
 DIST llvm-project-17.0.5.src.tar.xz 127842560 BLAKE2B 2d657ff14ad2dc932a5cdc6605ad30cba8e22ed8f4adb5ed53bfd9b5b654496023df9eb895f9691e98bba6b6a341b81d8a17361daf81ce4c3cd6a2b3602cd90e SHA512 793b63aa875b6d02e3a2803815cc9361b76c9ab1506967e18630fc3d6811bf51c73f53c51d148a5fc72e87e35dc2b88cb18b48419939c436451fe65c5a326022
 DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5ca6a6b7e922338219e7a62b2f33082d88b700781e184f2b3b0758c1d46825cf369ddd6f8824f3be8d8f3a70a88cfbc06bba45 SHA512 509a61434471463459d3ec837e3f3cce662650d4e72ffc7d28fbeb0d5cfe92d5b1dc4fa568e40f48757b1e708de793bc157de7225ac15a00221191e6c1e660d9
 DIST llvm-project-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45
-DIST llvm-project-83888a5404d46667647fe36d6fa510d075ed57ea.tar.gz 200867834 BLAKE2B 20f5afa071089852abfdcc316e5db77681afe0fdb189a515d7724a0abaf1c545f37ba4b946414c7b8afca62636107bd4e1c7c99d8ba6a514bb413b13f5f634b0 SHA512 4cd7680a227388382076d5735a97a379546f5bdde33272a5a3d317d98c2847e34917dd38a3cfb3f1f677f6d9a9b2163b29f89dd9c4b92506f5be34a3072e0509

diff --git a/sys-libs/libcxx/libcxx-17.0.4.ebuild b/sys-libs/libcxx/libcxx-17.0.4.ebuild
deleted file mode 100644
index 61280232d24e..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.4.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20231104.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild
deleted file mode 100644
index 7c12f38c8f48..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231104.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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.0.0_pre20231111.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild
deleted file mode 100644
index 7c12f38c8f48..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231111.ebuild
+++ /dev/null
@@ -1,203 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-29  7:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-29  7:44 UTC (permalink / raw
  To: gentoo-commits

commit:     959b4177b35f50a6ac2cb1f59c834439a17805a5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 29 07:43:03 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 29 07:44:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=959b4177

sys-libs/libcxx: Bump to 17.0.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-17.0.6.ebuild | 204 +++++++++++++++++++++++++++++++++++
 2 files changed, 206 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9c76b9672949..3abcf9e37a06 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,6 @@ 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.5.src.tar.xz 127842560 BLAKE2B 2d657ff14ad2dc932a5cdc6605ad30cba8e22ed8f4adb5ed53bfd9b5b654496023df9eb895f9691e98bba6b6a341b81d8a17361daf81ce4c3cd6a2b3602cd90e SHA512 793b63aa875b6d02e3a2803815cc9361b76c9ab1506967e18630fc3d6811bf51c73f53c51d148a5fc72e87e35dc2b88cb18b48419939c436451fe65c5a326022
 DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5ca6a6b7e922338219e7a62b2f33082d88b700781e184f2b3b0758c1d46825cf369ddd6f8824f3be8d8f3a70a88cfbc06bba45 SHA512 509a61434471463459d3ec837e3f3cce662650d4e72ffc7d28fbeb0d5cfe92d5b1dc4fa568e40f48757b1e708de793bc157de7225ac15a00221191e6c1e660d9
+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-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45

diff --git a/sys-libs/libcxx/libcxx-17.0.6.ebuild b/sys-libs/libcxx/libcxx-17.0.6.ebuild
new file mode 100644
index 000000000000..61280232d24e
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-17.0.6.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2023 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"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
+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-util/cmake-3.16
+		sys-devel/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
+}
+
+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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-11-29 15:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-11-29 15:15 UTC (permalink / raw
  To: gentoo-commits

commit:     36dc39267678180fa815749205367378f17f5ce8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 29 12:47:44 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 29 15:14:06 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36dc3926

sys-libs/libcxx: Add 18.0.0_pre20231129 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                                         | 1 +
 sys-libs/libcxx/libcxx-18.0.0.9999.ebuild                        | 9 +++++++++
 ...ibcxx-18.0.0.9999.ebuild => libcxx-18.0.0_pre20231129.ebuild} | 9 +++++++++
 3 files changed, 19 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3abcf9e37a06..f781fc8a0bb8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,3 +12,4 @@ DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5c
 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-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45
+DIST llvm-project-6a4489a73337907d52e7eaf3716f3de9008e6e53.tar.gz 201703120 BLAKE2B 7de783df15ff30ab85aad2f02a5a043d09b18dd7b212c19e21b045870497e2b17a53527523cd533c4ef61b22d605026a9322d2f8d02f0d4f76ed26ab693b788c SHA512 ffc31d7037255d608717faff84e858d63b37abed5659d66599864ae44ed00fc5902e9851eb1b8c848b500623681ef5782b39ad2bf8bcf96ac4f35032efde1490

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
index 7c12f38c8f48..c90b80b9008d 100644
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
@@ -65,6 +65,15 @@ pkg_setup() {
 	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

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231129.ebuild
similarity index 94%
copy from sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
copy to sys-libs/libcxx/libcxx-18.0.0_pre20231129.ebuild
index 7c12f38c8f48..c90b80b9008d 100644
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231129.ebuild
@@ -65,6 +65,15 @@ pkg_setup() {
 	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


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-12-09 18:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-12-09 18:35 UTC (permalink / raw
  To: gentoo-commits

commit:     788f25a6bd191472f1e8e2af158a9f0eabf4aea7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec  9 18:25:14 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec  9 18:25:14 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=788f25a6

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 -
 sys-libs/libcxx/libcxx-17.0.5.ebuild | 204 -----------------------------------
 2 files changed, 206 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f781fc8a0bb8..17d75f66a606 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,8 +7,6 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
 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
 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
-DIST llvm-project-17.0.5.src.tar.xz 127842560 BLAKE2B 2d657ff14ad2dc932a5cdc6605ad30cba8e22ed8f4adb5ed53bfd9b5b654496023df9eb895f9691e98bba6b6a341b81d8a17361daf81ce4c3cd6a2b3602cd90e SHA512 793b63aa875b6d02e3a2803815cc9361b76c9ab1506967e18630fc3d6811bf51c73f53c51d148a5fc72e87e35dc2b88cb18b48419939c436451fe65c5a326022
-DIST llvm-project-17.0.5.src.tar.xz.sig 438 BLAKE2B d65bfe2816c49a4b3dda2c70fe5ca6a6b7e922338219e7a62b2f33082d88b700781e184f2b3b0758c1d46825cf369ddd6f8824f3be8d8f3a70a88cfbc06bba45 SHA512 509a61434471463459d3ec837e3f3cce662650d4e72ffc7d28fbeb0d5cfe92d5b1dc4fa568e40f48757b1e708de793bc157de7225ac15a00221191e6c1e660d9
 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-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45

diff --git a/sys-libs/libcxx/libcxx-17.0.5.ebuild b/sys-libs/libcxx/libcxx-17.0.5.ebuild
deleted file mode 100644
index 61280232d24e..000000000000
--- a/sys-libs/libcxx/libcxx-17.0.5.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 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"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-12-15 17:51 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-12-15 17:51 UTC (permalink / raw
  To: gentoo-commits

commit:     ec5f13c46c2bdf2167e378cbd59bfc27f8897664
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 15 17:49:52 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec 15 17:51:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec5f13c4

sys-libs/libcxx: Add 18.0.0_pre20231215 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild | 212 +++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 17d75f66a606..52fbe56abe8c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-5237193b87721134541f228e28edfd544a9c8ac8.tar.gz 201404340 BLAKE2B f028b8b100721202007e3106d8ee91bcf2ac90588f9268ec835dc4ea3941363d4b796338146c65d1a9e88957d18738030f713b3fed770616c79cb40043e706db SHA512 40a4d4f99f1a690a0f8737261aeeaa61af6124eeadcb6bab5c3828e88b36b8cce42a8caee6d3f01e675047c59b62210de017d207e341f680eff97758f798ad45
 DIST llvm-project-6a4489a73337907d52e7eaf3716f3de9008e6e53.tar.gz 201703120 BLAKE2B 7de783df15ff30ab85aad2f02a5a043d09b18dd7b212c19e21b045870497e2b17a53527523cd533c4ef61b22d605026a9322d2f8d02f0d4f76ed26ab693b788c SHA512 ffc31d7037255d608717faff84e858d63b37abed5659d66599864ae44ed00fc5902e9851eb1b8c848b500623681ef5782b39ad2bf8bcf96ac4f35032efde1490
+DIST llvm-project-d37ced88809cb4d2df57ec80887b3f8801ca719b.tar.gz 203826420 BLAKE2B 58448df837f2119720a36b837d0e4f2b2fc00da5658706b193b9d2d180cf0f6c5eb79a9cc0fa9d94310996a95210115a5a46371bd8537f16e105adea14a72399 SHA512 1348e5bf736acaeebf0ae0f613973e6c2d439d360c2272bb4ab112e579b12c297970bb765fd774c768aa55a922c93048b1d8ae6bfd636b241fa86f9427cc2069

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild
new file mode 100644
index 000000000000..c90b80b9008d
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-12-22 16:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-12-22 16:43 UTC (permalink / raw
  To: gentoo-commits

commit:     b86d7aa348aeca0be3860444ae845b7df5604fc4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 22 16:06:33 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec 22 16:43:13 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b86d7aa3

sys-libs/libcxx: Remove 15.0.7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7.ebuild | 204 -----------------------------------
 1 file changed, 204 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7.ebuild b/sys-libs/libcxx/libcxx-15.0.7.ebuild
deleted file mode 100644
index f27a668a2b29..000000000000
--- a/sys-libs/libcxx/libcxx-15.0.7.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-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"
-KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
-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-util/cmake-3.16
-		sys-devel/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
-}
-
-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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-12-22 16:43 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-12-22 16:43 UTC (permalink / raw
  To: gentoo-commits

commit:     76f45298afbaa2a4754241c17e13b95158304a49
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 22 16:06:10 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec 22 16:43:12 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=76f45298

sys-libs/libcxx: Stabilize 15.0.7-r1 arm sparc, #892127

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index e7de7046e52a..ce286a3c038d 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -12,7 +12,7 @@ HOMEPAGE="https://libcxx.llvm.org/"
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
 SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~riscv sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2023-12-28 15:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2023-12-28 15:06 UTC (permalink / raw
  To: gentoo-commits

commit:     bb5261eb1f1ca44946c2aeeb03cb8002c3151d2a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 28 13:51:00 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec 28 15:06:06 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb5261eb

sys-libs/libcxx: Add 18.0.0_pre20231228 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild | 212 +++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 00959f54a7bd..3771b9adab37 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,5 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 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-17858ce6f3d24f994f6ad8c899bfa4eed39f739d.tar.gz 204267841 BLAKE2B 05232178574de9f7e6d4c2e5eb59cabc70670d14b5f92010a42aa3ab6087abd992672044857e6f8d21cd9d2c3d8129b47420f5e3ec746b50e82a3cac5352e824 SHA512 e7836fc56d7121d762cd714a4cd5e28c8b068ff375928d3b5cd32d7e4488b5cf59b21e16250b4f12a973ada3f73ce246af2cc3cd83efca17dc9c3da5b458196d
+DIST llvm-project-a700298b3d538452915703268ca18f7f8f7537e6.tar.gz 204307149 BLAKE2B 70c7bdf9694343145d12fe494bceb7e4c4325136a4d8eecaec0a53cb6193d42a6ce47e048569f4fe3bc1754e6a114cbc97225344f9cfc4f39935323d4cb64f68 SHA512 76b2c621a97ec3fffe504f4e7c9c5af4db1ee63556291078d302c2c88596b7d07d07d607226361d4272f7757cd8246faff64f4ad36b86cde141ded65fd0b7a62
 DIST llvm-project-d37ced88809cb4d2df57ec80887b3f8801ca719b.tar.gz 203826420 BLAKE2B 58448df837f2119720a36b837d0e4f2b2fc00da5658706b193b9d2d180cf0f6c5eb79a9cc0fa9d94310996a95210115a5a46371bd8537f16e105adea14a72399 SHA512 1348e5bf736acaeebf0ae0f613973e6c2d439d360c2272bb4ab112e579b12c297970bb765fd774c768aa55a922c93048b1d8ae6bfd636b241fa86f9427cc2069

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild
new file mode 100644
index 000000000000..c90b80b9008d
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2023 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-util/cmake-3.16
+		sys-devel/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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-06 21:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-06 21:52 UTC (permalink / raw
  To: gentoo-commits

commit:     ad6975782267057703287fb12221ae90d1468f03
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  6 21:49:51 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan  6 21:52:29 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad697578

sys-libs/libcxx: Add 18.0.0_pre20240106 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild | 212 +++++++++++++++++++++++
 2 files changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3771b9adab37..50e22127a4ef 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,5 +7,6 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 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-17858ce6f3d24f994f6ad8c899bfa4eed39f739d.tar.gz 204267841 BLAKE2B 05232178574de9f7e6d4c2e5eb59cabc70670d14b5f92010a42aa3ab6087abd992672044857e6f8d21cd9d2c3d8129b47420f5e3ec746b50e82a3cac5352e824 SHA512 e7836fc56d7121d762cd714a4cd5e28c8b068ff375928d3b5cd32d7e4488b5cf59b21e16250b4f12a973ada3f73ce246af2cc3cd83efca17dc9c3da5b458196d
+DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d
 DIST llvm-project-a700298b3d538452915703268ca18f7f8f7537e6.tar.gz 204307149 BLAKE2B 70c7bdf9694343145d12fe494bceb7e4c4325136a4d8eecaec0a53cb6193d42a6ce47e048569f4fe3bc1754e6a114cbc97225344f9cfc4f39935323d4cb64f68 SHA512 76b2c621a97ec3fffe504f4e7c9c5af4db1ee63556291078d302c2c88596b7d07d07d607226361d4272f7757cd8246faff64f4ad36b86cde141ded65fd0b7a62
 DIST llvm-project-d37ced88809cb4d2df57ec80887b3f8801ca719b.tar.gz 203826420 BLAKE2B 58448df837f2119720a36b837d0e4f2b2fc00da5658706b193b9d2d180cf0f6c5eb79a9cc0fa9d94310996a95210115a5a46371bd8537f16e105adea14a72399 SHA512 1348e5bf736acaeebf0ae0f613973e6c2d439d360c2272bb4ab112e579b12c297970bb765fd774c768aa55a922c93048b1d8ae6bfd636b241fa86f9427cc2069

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
new file mode 100644
index 000000000000..0e54f131210c
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
@@ -0,0 +1,212 @@
+# 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-util/cmake-3.16
+		sys-devel/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}
+	)
+
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-12  9:24 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-01-12  9:24 UTC (permalink / raw
  To: gentoo-commits

commit:     896e014033b7c42993da5eb839a1201f133e8b06
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 12 09:22:31 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 12 09:22:31 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=896e0140

sys-libs/libcxx: Stabilize 17.0.6 arm64, #920044

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.6.ebuild b/sys-libs/libcxx/libcxx-17.0.6.ebuild
index 0a2b0f266422..2a74861d6cd8 100644
--- a/sys-libs/libcxx/libcxx-17.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.6.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~loong ~riscv ~sparc ~x86 ~x64-macos"
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-12 19:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-12 19:35 UTC (permalink / raw
  To: gentoo-commits

commit:     3cb01752136d72fa25978f97bf8ccd9fdccca674
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 12 19:33:28 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 12 19:35:10 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3cb01752

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild | 212 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231222.ebuild | 212 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild | 212 -----------------------
 4 files changed, 639 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 50e22127a4ef..12f1dacb86ed 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,7 +6,4 @@ 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-17858ce6f3d24f994f6ad8c899bfa4eed39f739d.tar.gz 204267841 BLAKE2B 05232178574de9f7e6d4c2e5eb59cabc70670d14b5f92010a42aa3ab6087abd992672044857e6f8d21cd9d2c3d8129b47420f5e3ec746b50e82a3cac5352e824 SHA512 e7836fc56d7121d762cd714a4cd5e28c8b068ff375928d3b5cd32d7e4488b5cf59b21e16250b4f12a973ada3f73ce246af2cc3cd83efca17dc9c3da5b458196d
 DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d
-DIST llvm-project-a700298b3d538452915703268ca18f7f8f7537e6.tar.gz 204307149 BLAKE2B 70c7bdf9694343145d12fe494bceb7e4c4325136a4d8eecaec0a53cb6193d42a6ce47e048569f4fe3bc1754e6a114cbc97225344f9cfc4f39935323d4cb64f68 SHA512 76b2c621a97ec3fffe504f4e7c9c5af4db1ee63556291078d302c2c88596b7d07d07d607226361d4272f7757cd8246faff64f4ad36b86cde141ded65fd0b7a62
-DIST llvm-project-d37ced88809cb4d2df57ec80887b3f8801ca719b.tar.gz 203826420 BLAKE2B 58448df837f2119720a36b837d0e4f2b2fc00da5658706b193b9d2d180cf0f6c5eb79a9cc0fa9d94310996a95210115a5a46371bd8537f16e105adea14a72399 SHA512 1348e5bf736acaeebf0ae0f613973e6c2d439d360c2272bb4ab112e579b12c297970bb765fd774c768aa55a922c93048b1d8ae6bfd636b241fa86f9427cc2069

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild
deleted file mode 100644
index c90b80b9008d..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231215.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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}
-	)
-
-	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.0.0_pre20231222.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231222.ebuild
deleted file mode 100644
index c90b80b9008d..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231222.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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}
-	)
-
-	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.0.0_pre20231228.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild
deleted file mode 100644
index c90b80b9008d..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20231228.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2023 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-util/cmake-3.16
-		sys-devel/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}
-	)
-
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-13 10:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-13 10:22 UTC (permalink / raw
  To: gentoo-commits

commit:     bafae16c1d86a4da14ddbbfc588bc9cf7cda4fb0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 13 10:12:13 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 13 10:12:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bafae16c

sys-libs/libcxx: Remove redundant cmake dep

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-15.0.7-r1.ebuild          | 1 -
 sys-libs/libcxx/libcxx-16.0.6.ebuild             | 1 -
 sys-libs/libcxx/libcxx-17.0.6.ebuild             | 1 -
 sys-libs/libcxx/libcxx-18.0.0.9999.ebuild        | 1 -
 sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild | 1 -
 5 files changed, 5 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
index adcbd5dcfd57..f07e4e73f9ce 100644
--- a/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
+++ b/sys-libs/libcxx/libcxx-15.0.7-r1.ebuild
@@ -36,7 +36,6 @@ BDEPEND="
 	)
 	test? (
 		dev-debug/gdb[python]
-		>=dev-util/cmake-3.16
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)
 "

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
index 2e15ffb85d0e..88a95143ed66 100644
--- a/sys-libs/libcxx/libcxx-16.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -36,7 +36,6 @@ BDEPEND="
 	)
 	test? (
 		dev-debug/gdb[python]
-		>=dev-util/cmake-3.16
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)
 "

diff --git a/sys-libs/libcxx/libcxx-17.0.6.ebuild b/sys-libs/libcxx/libcxx-17.0.6.ebuild
index 1526a4b1f7e0..c10f6928377d 100644
--- a/sys-libs/libcxx/libcxx-17.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.6.ebuild
@@ -36,7 +36,6 @@ BDEPEND="
 	)
 	test? (
 		dev-debug/gdb[python]
-		>=dev-util/cmake-3.16
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)
 "

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
index d6d02a1f5abe..cecc0698d6a7 100644
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
@@ -35,7 +35,6 @@ BDEPEND="
 	)
 	test? (
 		dev-debug/gdb[python]
-		>=dev-util/cmake-3.16
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)
 "

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
index d6d02a1f5abe..cecc0698d6a7 100644
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
@@ -35,7 +35,6 @@ BDEPEND="
 	)
 	test? (
 		dev-debug/gdb[python]
-		>=dev-util/cmake-3.16
 		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
 	)
 "


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-13 11:30 Joonas Niilola
  0 siblings, 0 replies; 608+ messages in thread
From: Joonas Niilola @ 2024-01-13 11:30 UTC (permalink / raw
  To: gentoo-commits

commit:     d2ac8d457a58238f00b96450051eba14f9f6b3f9
Author:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 13 11:28:25 2024 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Sat Jan 13 11:28:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2ac8d45

sys-libs/libcxx: Stabilize 17.0.6 x86, #920044

Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.6.ebuild b/sys-libs/libcxx/libcxx-17.0.6.ebuild
index c10f6928377d..f29a3fe68fb4 100644
--- a/sys-libs/libcxx/libcxx-17.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.6.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~loong ~riscv ~sparc x86 ~x64-macos"
 IUSE="+clang +libcxxabi +static-libs test"
 REQUIRED_USE="test? ( clang )"
 RESTRICT="!test? ( test )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-13 17:49 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-13 17:49 UTC (permalink / raw
  To: gentoo-commits

commit:     ab14ce7c6125202e4a22914ed1cd0b7575dbe5f6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 13 16:15:07 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 13 17:49:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab14ce7c

sys-libs/libcxx: Add 18.0.0_pre20240113 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                                                | 1 +
 sys-libs/libcxx/libcxx-18.0.0.9999.ebuild                               | 2 ++
 .../{libcxx-18.0.0.9999.ebuild => libcxx-18.0.0_pre20240113.ebuild}     | 2 ++
 3 files changed, 5 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 12f1dacb86ed..565a44864cf3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,4 +6,5 @@ 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-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
 DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
index cecc0698d6a7..a24b477a5ab8 100644
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
@@ -132,6 +132,8 @@ multilib_src_configure() {
 		-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

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240113.ebuild
similarity index 98%
copy from sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
copy to sys-libs/libcxx/libcxx-18.0.0_pre20240113.ebuild
index cecc0698d6a7..a24b477a5ab8 100644
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20240113.ebuild
@@ -132,6 +132,8 @@ multilib_src_configure() {
 		-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


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-22 14:08 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-22 14:08 UTC (permalink / raw
  To: gentoo-commits

commit:     5971a328f72151dfd0684fa157fbb0cd67fff120
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 22 12:58:21 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan 22 14:07:56 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5971a328

sys-libs/libcxx: Add 18.0.0_pre20240120 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-18.0.0_pre20240120.ebuild | 213 +++++++++++++++++++++++
 2 files changed, 214 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 565a44864cf3..949b10a9e895 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -7,4 +7,5 @@ DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43
 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-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
+DIST llvm-project-9eb0f86c279f40a792ec27bf0e9b491b8c90a640.tar.gz 205195168 BLAKE2B c3d051270958216196d6051d41e78168a7027714c5658c7edc70d274ed91f9d4ee16e8d1f92672bf252c65005c636c380766210ac3d80b4ac2f9f6305aefa29b SHA512 ee62acdfa756a2ddeb46fcafa364489885b6ecc50c87f365af42f308ebc87b9674c33c2f5a84c5169d9c9cada08e4fffe35d2eff48f05b70e791e27ac2c8b347
 DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d

diff --git a/sys-libs/libcxx/libcxx-18.0.0_pre20240120.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240120.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.0.0_pre20240120.ebuild
@@ -0,0 +1,213 @@
+# 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-24  6:33 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-24  6:33 UTC (permalink / raw
  To: gentoo-commits

commit:     88b6b4e8496f5f30e243e0d924decde44112d06b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 24 05:44:32 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 24 06:32:55 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88b6b4e8

sys-libs/libcxx: Add 19.x live ebuild

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-19.0.0.9999.ebuild | 213 ++++++++++++++++++++++++++++++
 1 file changed, 213 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
@@ -0,0 +1,213 @@
+# 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-27 20:33 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-27 20:33 UTC (permalink / raw
  To: gentoo-commits

commit:     cde1899cdd10113db3d691276ed90a17b10b2c66
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 27 15:18:26 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 27 20:33:16 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cde1899c

sys-libs/libcxx: Add 19.0.0_pre20240127 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild | 213 +++++++++++++++++++++++
 2 files changed, 214 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 949b10a9e895..cc7200c9f8f0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,7 @@ 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-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
 DIST llvm-project-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
 DIST llvm-project-9eb0f86c279f40a792ec27bf0e9b491b8c90a640.tar.gz 205195168 BLAKE2B c3d051270958216196d6051d41e78168a7027714c5658c7edc70d274ed91f9d4ee16e8d1f92672bf252c65005c636c380766210ac3d80b4ac2f9f6305aefa29b SHA512 ee62acdfa756a2ddeb46fcafa364489885b6ecc50c87f365af42f308ebc87b9674c33c2f5a84c5169d9c9cada08e4fffe35d2eff48f05b70e791e27ac2c8b347
 DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild
@@ -0,0 +1,213 @@
+# 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-30 21:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-30 21:21 UTC (permalink / raw
  To: gentoo-commits

commit:     da2106257170ed84f4dc59dc28814a3bc63face8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 30 20:16:22 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 30 21:21:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da210625

sys-libs/libcxx: Add 18.1.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild | 213 +++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index cc7200c9f8f0..6ea730edd11e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,6 +6,8 @@ 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-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
 DIST llvm-project-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
 DIST llvm-project-9eb0f86c279f40a792ec27bf0e9b491b8c90a640.tar.gz 205195168 BLAKE2B c3d051270958216196d6051d41e78168a7027714c5658c7edc70d274ed91f9d4ee16e8d1f92672bf252c65005c636c380766210ac3d80b4ac2f9f6305aefa29b SHA512 ee62acdfa756a2ddeb46fcafa364489885b6ecc50c87f365af42f308ebc87b9674c33c2f5a84c5169d9c9cada08e4fffe35d2eff48f05b70e791e27ac2c8b347

diff --git a/sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild
@@ -0,0 +1,213 @@
+# 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-01-30 21:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-01-30 21:21 UTC (permalink / raw
  To: gentoo-commits

commit:     c0d52309b6d8704d7637ae18bbe92b1def7610e6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 30 20:17:24 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 30 21:21:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0d52309

sys-libs/libcxx: Remove 18.0.0*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-18.0.0.9999.ebuild        | 213 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild | 211 ----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20240113.ebuild | 213 -----------------------
 sys-libs/libcxx/libcxx-18.0.0_pre20240120.ebuild | 213 -----------------------
 5 files changed, 853 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6ea730edd11e..bf7c9d19521d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,6 +9,3 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 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-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
-DIST llvm-project-8d817f6479a5df874028a8b40fd30aecd3479005.tar.gz 204890108 BLAKE2B 8c57c556371b37d00cda753a40f1162e678d89fa40e8f2b90a38aab7e17f9debfb2ebad53a3a95aa530a9e3e2b4b735828e404e576c8f2738370ec41c28badce SHA512 a38ce082ca1b999888ee0a633b94a02258579591e6ce73ba4722eafb9f0610f9624887eca43e4a6ae567c07ffc014f4ea4137e905899407951265d7c93785f18
-DIST llvm-project-9eb0f86c279f40a792ec27bf0e9b491b8c90a640.tar.gz 205195168 BLAKE2B c3d051270958216196d6051d41e78168a7027714c5658c7edc70d274ed91f9d4ee16e8d1f92672bf252c65005c636c380766210ac3d80b4ac2f9f6305aefa29b SHA512 ee62acdfa756a2ddeb46fcafa364489885b6ecc50c87f365af42f308ebc87b9674c33c2f5a84c5169d9c9cada08e4fffe35d2eff48f05b70e791e27ac2c8b347
-DIST llvm-project-a085402ef54379758e6c996dbaedfcb92ad222b5.tar.gz 204569231 BLAKE2B 75403225fbe54f0921b279b237a90f1922b16997d1538fa5f225e04451fa2fc4a28e886efb7460ef0c26a3a964f0c57084e331b0736fa223926259c76d873200 SHA512 b8c6b0c7c0a4c369ecfa7ac71cf96549a19853e14bdf061b6b54429ce7ed998b236bb9ed3adbd6bf1c70c7e975508f751ebd0031ac2ff474d32216048a1c5f2d

diff --git a/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-18.0.0.9999.ebuild
deleted file mode 100644
index a24b477a5ab8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0.9999.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.0.0_pre20240106.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
deleted file mode 100644
index cecc0698d6a7..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20240106.ebuild
+++ /dev/null
@@ -1,211 +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}
-	)
-
-	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.0.0_pre20240113.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240113.ebuild
deleted file mode 100644
index a24b477a5ab8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20240113.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.0.0_pre20240120.ebuild b/sys-libs/libcxx/libcxx-18.0.0_pre20240120.ebuild
deleted file mode 100644
index a24b477a5ab8..000000000000
--- a/sys-libs/libcxx/libcxx-18.0.0_pre20240120.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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-03 15:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-03 15:02 UTC (permalink / raw
  To: gentoo-commits

commit:     90f23c4333d35155612bba71f2a4cc8eb6afe623
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  3 14:49:39 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb  3 15:01:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90f23c43

sys-libs/libcxx: Add 19.0.0_pre20240203 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild | 213 +++++++++++++++++++++++
 2 files changed, 214 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index bf7c9d19521d..020839605178 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 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-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36
+DIST llvm-project-78b4e7c5e349d8c101b50affbd260eb109748f8f.tar.gz 207433034 BLAKE2B ab7189fe82b5a9309348b499130295b3057dbb263ad9c60b1748e4ea92be3a85f0160baa1408dde5516650994951d9f948223d2d6260492a07b07dde51a51ff9 SHA512 366ecb02720d2b550ebeca989abf74ca1c93b2585a95fa378f44edc6c3329ee4e1548f5fa2cf7a19e59bc817abe6cc8850841415227380114c59b58867959a5a

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
@@ -0,0 +1,213 @@
+# 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-07 16:11 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-07 16:11 UTC (permalink / raw
  To: gentoo-commits

commit:     438f96bb8be2e157e2aa251a96e9d7a31dc72dcb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb  7 15:48:11 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb  7 16:11:28 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=438f96bb

sys-libs/libcxx: Add 18.1.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild | 213 +++++++++++++++++++++++++++++++
 2 files changed, 215 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 020839605178..5813f48354e0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 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

diff --git a/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
new file mode 100644
index 000000000000..a24b477a5ab8
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
@@ -0,0 +1,213 @@
+# 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-10 11:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-10 11:13 UTC (permalink / raw
  To: gentoo-commits

commit:     f236074cd4d5cb8f6496235f4b0a934292b73986
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 10 11:05:39 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 11:13:10 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f236074c

sys-libs/libcxx: Migrate to llvm-utils

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild         | 12 ++++--------
 sys-libs/libcxx/libcxx-19.0.0.9999.ebuild        | 12 ++++--------
 sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild | 12 ++++--------
 3 files changed, 12 insertions(+), 24 deletions(-)

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_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


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-10 11:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-10 11:15 UTC (permalink / raw
  To: gentoo-commits

commit:     232a177181aff5fbb5eeb47e3671b458f6fde8bd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 10 11:14:00 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 11:14:00 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=232a1771

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-18.1.0_rc1.ebuild         | 213 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240127.ebuild | 213 -----------------------
 3 files changed, 429 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5813f48354e0..7da11f7f36d0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,9 +6,6 @@ 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

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-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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-10 17:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-10 17:27 UTC (permalink / raw
  To: gentoo-commits

commit:     5c59e2fdb10ff32ebcb46655b04aae1232e5fcf7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 10 17:15:25 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 10 17:27:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c59e2fd

sys-libs/libcxx: Add 19.0.0_pre20240210 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild | 209 +++++++++++++++++++++++
 2 files changed, 210 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7da11f7f36d0..d469beaaad94 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 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-78b4e7c5e349d8c101b50affbd260eb109748f8f.tar.gz 207433034 BLAKE2B ab7189fe82b5a9309348b499130295b3057dbb263ad9c60b1748e4ea92be3a85f0160baa1408dde5516650994951d9f948223d2d6260492a07b07dde51a51ff9 SHA512 366ecb02720d2b550ebeca989abf74ca1c93b2585a95fa378f44edc6c3329ee4e1548f5fa2cf7a19e59bc817abe6cc8850841415227380114c59b58867959a5a
+DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild
new file mode 100644
index 000000000000..c205f3f21b57
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild
@@ -0,0 +1,209 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-11 13:36 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-02-11 13:36 UTC (permalink / raw
  To: gentoo-commits

commit:     2e71e53b88d541466774f1c3c35fb3c6bcb2d7ff
Author:     Alexey Sokolov <alexey+gentoo <AT> asokolov <DOT> org>
AuthorDate: Wed Feb  7 00:19:40 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Feb 11 13:35:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e71e53b

sys-libs/libcxx: add ~arm64-macos keyword

Bug: https://bugs.gentoo.org/758167
Signed-off-by: Alexey Sokolov <alexey+gentoo <AT> asokolov.org>
Closes: https://github.com/gentoo/gentoo/pull/35249
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-16.0.6.ebuild | 2 +-
 sys-libs/libcxx/libcxx-17.0.6.ebuild | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys-libs/libcxx/libcxx-16.0.6.ebuild b/sys-libs/libcxx/libcxx-16.0.6.ebuild
index 88a95143ed66..f58235f01d4e 100644
--- a/sys-libs/libcxx/libcxx-16.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-16.0.6.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+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 )"

diff --git a/sys-libs/libcxx/libcxx-17.0.6.ebuild b/sys-libs/libcxx/libcxx-17.0.6.ebuild
index f29a3fe68fb4..6cc039d3ed8c 100644
--- a/sys-libs/libcxx/libcxx-17.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.6.ebuild
@@ -12,7 +12,7 @@ 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 ~x64-macos"
+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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-17 19:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-17 19:19 UTC (permalink / raw
  To: gentoo-commits

commit:     1ae3010f3eb5ad7b1f390784722b6cbb1f7a94af
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 17 19:17:59 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 17 19:17:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ae3010f

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild | 209 -----------------------
 2 files changed, 210 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d469beaaad94..c54bf72675b8 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,4 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 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-78b4e7c5e349d8c101b50affbd260eb109748f8f.tar.gz 207433034 BLAKE2B ab7189fe82b5a9309348b499130295b3057dbb263ad9c60b1748e4ea92be3a85f0160baa1408dde5516650994951d9f948223d2d6260492a07b07dde51a51ff9 SHA512 366ecb02720d2b550ebeca989abf74ca1c93b2585a95fa378f44edc6c3329ee4e1548f5fa2cf7a19e59bc817abe6cc8850841415227380114c59b58867959a5a
 DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
deleted file mode 100644
index c205f3f21b57..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240203.ebuild
+++ /dev/null
@@ -1,209 +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.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/"
-
-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() {
-	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() {
-	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
-	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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-18 20:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-18 20:22 UTC (permalink / raw
  To: gentoo-commits

commit:     4f1a69887847beae175c4ae0ce871f781772872f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 18 20:08:17 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Feb 18 20:22:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4f1a6988

sys-libs/libcxx: Enable installing experimental C++23 modules in 19

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-19.0.0.9999.ebuild        | 1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild | 1 +
 2 files changed, 2 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
index c205f3f21b57..e29d57a316d3 100644
--- a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
@@ -127,6 +127,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_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

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
index c205f3f21b57..e29d57a316d3 100644
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
@@ -127,6 +127,7 @@ multilib_src_configure() {
 		-DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_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


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-18 20:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-18 20:22 UTC (permalink / raw
  To: gentoo-commits

commit:     738471ce05fd041c662268cc96bf30a5325c9c42
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 18 19:55:54 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Feb 18 20:22:38 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=738471ce

sys-libs/libcxx: Add 19.0.0_pre20240218 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild | 209 +++++++++++++++++++++++
 2 files changed, 210 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c54bf72675b8..e441fe8bf5e4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,4 +8,5 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 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-3496927edcd0685807351ba88a7e2cfb006e1c0d.tar.gz 206227842 BLAKE2B cd27e9e9bca3622c2241bfa91c78eb8443df7465c1efcec57d5e701e2c61d3b2d3619483199e67b56deed9410f5382fc3164cdc7e864dcd77f4d12f3f9d2b159 SHA512 156d441074aff4d85af956b9abf89f9aefccccbe5b39e315c9c7c249ad01f95b42a303c23e9142292e7746f691c2ee704a7cd4a60916594ea1d468240c9b8152
 DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
new file mode 100644
index 000000000000..c205f3f21b57
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
@@ -0,0 +1,209 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-22  4:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-22  4:23 UTC (permalink / raw
  To: gentoo-commits

commit:     fdefc0ff072d539a520b717eea9deb4a26ded0e2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 21 20:39:33 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb 22 04:23:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fdefc0ff

sys-libs/libcxx: Add 18.1.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-18.1.0_rc3.ebuild | 209 +++++++++++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e441fe8bf5e4..26ca6c8e0cfe 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 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-18.1.0rc3.src.tar.xz 132011280 BLAKE2B 482a0e1b806292598bd646f225705140a463706ec391e4e42f203606b85673601a65fe55f2432d77f4c2f4c6584b35e53eeaded42e0b67aa6538c37d7cceb4ff SHA512 6c0adcf6e4057de8fb1dcd062845d14d725833d23d8e1362cbccab176931f55600a3971f01690179b795ff3feca0af9141b16dee4d4159755596cc9c904bf099
+DIST llvm-project-18.1.0rc3.src.tar.xz.sig 566 BLAKE2B dac9c174e2eeda5e0af0153d78a2e9c8f145efe03250582a27df1bd6a89ba70afdcfa1ed6aa46adb1f7f21077cadb6e43963758358ff17122c36781ee4018c05 SHA512 91a2778f9b66bc80172172f36d6027fb2455f3ffd03b06ad0dd376471c4d4e2e34c8bee69c76cfe95003ae34f0d28c394c7d135fbbb75686ff89aee56b6c45c3
 DIST llvm-project-3496927edcd0685807351ba88a7e2cfb006e1c0d.tar.gz 206227842 BLAKE2B cd27e9e9bca3622c2241bfa91c78eb8443df7465c1efcec57d5e701e2c61d3b2d3619483199e67b56deed9410f5382fc3164cdc7e864dcd77f4d12f3f9d2b159 SHA512 156d441074aff4d85af956b9abf89f9aefccccbe5b39e315c9c7c249ad01f95b42a303c23e9142292e7746f691c2ee704a7cd4a60916594ea1d468240c9b8152
 DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-18.1.0_rc3.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc3.ebuild
new file mode 100644
index 000000000000..c205f3f21b57
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.0_rc3.ebuild
@@ -0,0 +1,209 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-24 14:54 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-24 14:54 UTC (permalink / raw
  To: gentoo-commits

commit:     10ab3f46496a031d27018c741cc6f5460ffa70cb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 24 14:53:18 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 24 14:53:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10ab3f46

sys-libs/libcxx: Add 19.0.0_pre20240224 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240224.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 26ca6c8e0cfe..efcb38fce6d9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,4 +11,5 @@ DIST llvm-project-18.1.0rc2.src.tar.xz.sig 566 BLAKE2B c765549386a92883bd348d9be
 DIST llvm-project-18.1.0rc3.src.tar.xz 132011280 BLAKE2B 482a0e1b806292598bd646f225705140a463706ec391e4e42f203606b85673601a65fe55f2432d77f4c2f4c6584b35e53eeaded42e0b67aa6538c37d7cceb4ff SHA512 6c0adcf6e4057de8fb1dcd062845d14d725833d23d8e1362cbccab176931f55600a3971f01690179b795ff3feca0af9141b16dee4d4159755596cc9c904bf099
 DIST llvm-project-18.1.0rc3.src.tar.xz.sig 566 BLAKE2B dac9c174e2eeda5e0af0153d78a2e9c8f145efe03250582a27df1bd6a89ba70afdcfa1ed6aa46adb1f7f21077cadb6e43963758358ff17122c36781ee4018c05 SHA512 91a2778f9b66bc80172172f36d6027fb2455f3ffd03b06ad0dd376471c4d4e2e34c8bee69c76cfe95003ae34f0d28c394c7d135fbbb75686ff89aee56b6c45c3
 DIST llvm-project-3496927edcd0685807351ba88a7e2cfb006e1c0d.tar.gz 206227842 BLAKE2B cd27e9e9bca3622c2241bfa91c78eb8443df7465c1efcec57d5e701e2c61d3b2d3619483199e67b56deed9410f5382fc3164cdc7e864dcd77f4d12f3f9d2b159 SHA512 156d441074aff4d85af956b9abf89f9aefccccbe5b39e315c9c7c249ad01f95b42a303c23e9142292e7746f691c2ee704a7cd4a60916594ea1d468240c9b8152
+DIST llvm-project-60a904b2ad9842b93cc5fa0ad5bda5e22c550b7e.tar.gz 206511075 BLAKE2B 501924562c3e49eb921adcf3175d55ce0a47992b3b6b8b512ad8f1cc7b7e5f7bc3e2e278b7817c5924fdf8328f97be2f9c5037b1b6414d49e3b525739ecec6da SHA512 b05fcb4600645befb07f2da1efba463389df3fd1d9a26cb0e6ff9ab51edc2d8c5f51a9d44fe4b7f5f29d67cd4dbd15382fdf97f51ddc2c209196533c40611078
 DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240224.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240224.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240224.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-28 20:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-28 20:40 UTC (permalink / raw
  To: gentoo-commits

commit:     b632e66544e57b1be3dc7eb95b5b22ff4f6e4c62
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 28 20:04:40 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 28 20:40:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b632e665

sys-libs/libcxx: Add 18.1.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-18.1.0_rc4.ebuild | 209 +++++++++++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index efcb38fce6d9..dd53b9167e09 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,6 +10,8 @@ DIST llvm-project-18.1.0rc2.src.tar.xz 131993176 BLAKE2B 8df1e34a54214975efe1b9a
 DIST llvm-project-18.1.0rc2.src.tar.xz.sig 566 BLAKE2B c765549386a92883bd348d9be25a3c92b1e66a1bac71385ef99978ec2af413a7616a2d9699c57554d927f95b80a3584572557d26e3df16b2ff6678359d5fd6b0 SHA512 83bb4c133f34faec8a0109689ed7aa18222c9a803ba8c95c571a18e854726024f106a1c8e3a820020255c426b7fa8bda26789ff1546972e233fbe3e3ab3a8e91
 DIST llvm-project-18.1.0rc3.src.tar.xz 132011280 BLAKE2B 482a0e1b806292598bd646f225705140a463706ec391e4e42f203606b85673601a65fe55f2432d77f4c2f4c6584b35e53eeaded42e0b67aa6538c37d7cceb4ff SHA512 6c0adcf6e4057de8fb1dcd062845d14d725833d23d8e1362cbccab176931f55600a3971f01690179b795ff3feca0af9141b16dee4d4159755596cc9c904bf099
 DIST llvm-project-18.1.0rc3.src.tar.xz.sig 566 BLAKE2B dac9c174e2eeda5e0af0153d78a2e9c8f145efe03250582a27df1bd6a89ba70afdcfa1ed6aa46adb1f7f21077cadb6e43963758358ff17122c36781ee4018c05 SHA512 91a2778f9b66bc80172172f36d6027fb2455f3ffd03b06ad0dd376471c4d4e2e34c8bee69c76cfe95003ae34f0d28c394c7d135fbbb75686ff89aee56b6c45c3
+DIST llvm-project-18.1.0rc4.src.tar.xz 132041940 BLAKE2B 1379efd68f765a70e088ac356f69d792c210003c76b15f28b40273aa64825d7a7c7aa03d2d5016b2607626fd63f656ad88402506f23e836c72474be2032d3224 SHA512 3018a843f8e615ee0a4c742d5fafcc67eb6d6a40f81212ce045bdff7012b5acec006ee89c321baf59209daabe66b838709cdaed4e11a34c34b821cfdb77e8a61
+DIST llvm-project-18.1.0rc4.src.tar.xz.sig 566 BLAKE2B cc089aadc50d874b575c23b8c22a5472c8507acd3352786d3ac2ee0ec06f07e99eee81b94c6b5bdca569ccffa8b867eb2265b57d5d07b8ec31e3cfce89bf8fc1 SHA512 2ce82201b7c673884815898069f18cf1e4ab13a0a9ed535339d9c4132b7b0edb6b748b03499e383f8f0268d904589e6aebb9a204ef95d14f56a3fb9dca24571c
 DIST llvm-project-3496927edcd0685807351ba88a7e2cfb006e1c0d.tar.gz 206227842 BLAKE2B cd27e9e9bca3622c2241bfa91c78eb8443df7465c1efcec57d5e701e2c61d3b2d3619483199e67b56deed9410f5382fc3164cdc7e864dcd77f4d12f3f9d2b159 SHA512 156d441074aff4d85af956b9abf89f9aefccccbe5b39e315c9c7c249ad01f95b42a303c23e9142292e7746f691c2ee704a7cd4a60916594ea1d468240c9b8152
 DIST llvm-project-60a904b2ad9842b93cc5fa0ad5bda5e22c550b7e.tar.gz 206511075 BLAKE2B 501924562c3e49eb921adcf3175d55ce0a47992b3b6b8b512ad8f1cc7b7e5f7bc3e2e278b7817c5924fdf8328f97be2f9c5037b1b6414d49e3b525739ecec6da SHA512 b05fcb4600645befb07f2da1efba463389df3fd1d9a26cb0e6ff9ab51edc2d8c5f51a9d44fe4b7f5f29d67cd4dbd15382fdf97f51ddc2c209196533c40611078
 DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-18.1.0_rc4.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc4.ebuild
new file mode 100644
index 000000000000..c205f3f21b57
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.0_rc4.ebuild
@@ -0,0 +1,209 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-02-28 20:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-02-28 20:40 UTC (permalink / raw
  To: gentoo-commits

commit:     272cc2ee824c761dc222b99ac50771aa28945e67
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 28 20:08:43 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 28 20:40:12 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=272cc2ee

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild         | 209 ----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild | 209 ----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild | 210 -----------------------
 4 files changed, 632 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index dd53b9167e09..6fbffd5dec13 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,12 +6,8 @@ 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.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-18.1.0rc3.src.tar.xz 132011280 BLAKE2B 482a0e1b806292598bd646f225705140a463706ec391e4e42f203606b85673601a65fe55f2432d77f4c2f4c6584b35e53eeaded42e0b67aa6538c37d7cceb4ff SHA512 6c0adcf6e4057de8fb1dcd062845d14d725833d23d8e1362cbccab176931f55600a3971f01690179b795ff3feca0af9141b16dee4d4159755596cc9c904bf099
 DIST llvm-project-18.1.0rc3.src.tar.xz.sig 566 BLAKE2B dac9c174e2eeda5e0af0153d78a2e9c8f145efe03250582a27df1bd6a89ba70afdcfa1ed6aa46adb1f7f21077cadb6e43963758358ff17122c36781ee4018c05 SHA512 91a2778f9b66bc80172172f36d6027fb2455f3ffd03b06ad0dd376471c4d4e2e34c8bee69c76cfe95003ae34f0d28c394c7d135fbbb75686ff89aee56b6c45c3
 DIST llvm-project-18.1.0rc4.src.tar.xz 132041940 BLAKE2B 1379efd68f765a70e088ac356f69d792c210003c76b15f28b40273aa64825d7a7c7aa03d2d5016b2607626fd63f656ad88402506f23e836c72474be2032d3224 SHA512 3018a843f8e615ee0a4c742d5fafcc67eb6d6a40f81212ce045bdff7012b5acec006ee89c321baf59209daabe66b838709cdaed4e11a34c34b821cfdb77e8a61
 DIST llvm-project-18.1.0rc4.src.tar.xz.sig 566 BLAKE2B cc089aadc50d874b575c23b8c22a5472c8507acd3352786d3ac2ee0ec06f07e99eee81b94c6b5bdca569ccffa8b867eb2265b57d5d07b8ec31e3cfce89bf8fc1 SHA512 2ce82201b7c673884815898069f18cf1e4ab13a0a9ed535339d9c4132b7b0edb6b748b03499e383f8f0268d904589e6aebb9a204ef95d14f56a3fb9dca24571c
-DIST llvm-project-3496927edcd0685807351ba88a7e2cfb006e1c0d.tar.gz 206227842 BLAKE2B cd27e9e9bca3622c2241bfa91c78eb8443df7465c1efcec57d5e701e2c61d3b2d3619483199e67b56deed9410f5382fc3164cdc7e864dcd77f4d12f3f9d2b159 SHA512 156d441074aff4d85af956b9abf89f9aefccccbe5b39e315c9c7c249ad01f95b42a303c23e9142292e7746f691c2ee704a7cd4a60916594ea1d468240c9b8152
 DIST llvm-project-60a904b2ad9842b93cc5fa0ad5bda5e22c550b7e.tar.gz 206511075 BLAKE2B 501924562c3e49eb921adcf3175d55ce0a47992b3b6b8b512ad8f1cc7b7e5f7bc3e2e278b7817c5924fdf8328f97be2f9c5037b1b6414d49e3b525739ecec6da SHA512 b05fcb4600645befb07f2da1efba463389df3fd1d9a26cb0e6ff9ab51edc2d8c5f51a9d44fe4b7f5f29d67cd4dbd15382fdf97f51ddc2c209196533c40611078
-DIST llvm-project-8884ba43a8485bebef5c4d41e7ed457e3fa84f07.tar.gz 205853916 BLAKE2B 115809efbf062ced32ffe61b25e65e44a0b3c293f68bf40fc4d9e596cd077fc4781a059ad24c4dc7a139c6ec884a6a183ebac06535f2498116266695e19daf00 SHA512 cb496111ec72163a1872fa9a14f8963108d3185f4464a74cc45d26ccc5071bc36895618b81c29063cde0564a50017a0194da4dc559a046a12550d9ab0d9b8347

diff --git a/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
deleted file mode 100644
index c205f3f21b57..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.0_rc2.ebuild
+++ /dev/null
@@ -1,209 +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.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/"
-
-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() {
-	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() {
-	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
-	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_pre20240210.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild
deleted file mode 100644
index c205f3f21b57..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240210.ebuild
+++ /dev/null
@@ -1,209 +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.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/"
-
-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() {
-	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() {
-	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
-	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_pre20240218.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240218.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-02 13:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-02 13:24 UTC (permalink / raw
  To: gentoo-commits

commit:     7479506782afcd805c7417ec4c204b99a2a90559
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  2 11:53:07 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar  2 13:24:38 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74795067

sys-libs/libcxx: Add 19.0.0_pre20240302 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6fbffd5dec13..ea90b1a7e393 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,4 +10,5 @@ DIST llvm-project-18.1.0rc3.src.tar.xz 132011280 BLAKE2B 482a0e1b806292598bd646f
 DIST llvm-project-18.1.0rc3.src.tar.xz.sig 566 BLAKE2B dac9c174e2eeda5e0af0153d78a2e9c8f145efe03250582a27df1bd6a89ba70afdcfa1ed6aa46adb1f7f21077cadb6e43963758358ff17122c36781ee4018c05 SHA512 91a2778f9b66bc80172172f36d6027fb2455f3ffd03b06ad0dd376471c4d4e2e34c8bee69c76cfe95003ae34f0d28c394c7d135fbbb75686ff89aee56b6c45c3
 DIST llvm-project-18.1.0rc4.src.tar.xz 132041940 BLAKE2B 1379efd68f765a70e088ac356f69d792c210003c76b15f28b40273aa64825d7a7c7aa03d2d5016b2607626fd63f656ad88402506f23e836c72474be2032d3224 SHA512 3018a843f8e615ee0a4c742d5fafcc67eb6d6a40f81212ce045bdff7012b5acec006ee89c321baf59209daabe66b838709cdaed4e11a34c34b821cfdb77e8a61
 DIST llvm-project-18.1.0rc4.src.tar.xz.sig 566 BLAKE2B cc089aadc50d874b575c23b8c22a5472c8507acd3352786d3ac2ee0ec06f07e99eee81b94c6b5bdca569ccffa8b867eb2265b57d5d07b8ec31e3cfce89bf8fc1 SHA512 2ce82201b7c673884815898069f18cf1e4ab13a0a9ed535339d9c4132b7b0edb6b748b03499e383f8f0268d904589e6aebb9a204ef95d14f56a3fb9dca24571c
+DIST llvm-project-597f9761c3a5ba278fa930d2fac13f156287d505.tar.gz 206699707 BLAKE2B 5461426f02742cefe5ae7faeb7fed15628741e3fb41ca01ffb8159805f9b55d883d318e7c677e5bf348949b7d8e16e079df09d461abe9b32d804dcb284584fc5 SHA512 b06ae070bb197d18cb8653e290b85e8526cdab4aeb5a02c94295d489d271bd7cea637960b516937e0ba1d7ada29e734c8ea1137335d46756db54632dcdba93e9
 DIST llvm-project-60a904b2ad9842b93cc5fa0ad5bda5e22c550b7e.tar.gz 206511075 BLAKE2B 501924562c3e49eb921adcf3175d55ce0a47992b3b6b8b512ad8f1cc7b7e5f7bc3e2e278b7817c5924fdf8328f97be2f9c5037b1b6414d49e3b525739ecec6da SHA512 b05fcb4600645befb07f2da1efba463389df3fd1d9a26cb0e6ff9ab51edc2d8c5f51a9d44fe4b7f5f29d67cd4dbd15382fdf97f51ddc2c209196533c40611078

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-06 17:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-06 17:03 UTC (permalink / raw
  To: gentoo-commits

commit:     d517adda451eeec0ab30e7565872ee8bdaaaf646
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  6 16:37:36 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  6 17:03:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d517adda

sys-libs/libcxx: Rekeyword 18.1.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.1.0.ebuild | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys-libs/libcxx/libcxx-18.1.0.ebuild b/sys-libs/libcxx/libcxx-18.1.0.ebuild
index c205f3f21b57..a6fca47e6c29 100644
--- a/sys-libs/libcxx/libcxx-18.1.0.ebuild
+++ b/sys-libs/libcxx/libcxx-18.1.0.ebuild
@@ -12,6 +12,7 @@ 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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-09 15:52 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-09 15:52 UTC (permalink / raw
  To: gentoo-commits

commit:     ed37cecd6f74e928a37b78b069d7c9e90aff69c7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  9 15:12:47 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar  9 15:51:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ed37cecd

sys-libs/libcxx: Add 19.0.0_pre20240309 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e3d4d4939bf8..09cbe1ad745f 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,4 +8,5 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.0.src.tar.xz 132034208 BLAKE2B 06ad7c65e1d10946c74027ec46c46f9b78fe764dc6c45e016b3d39006dac40af4cae2e01d07131785711913f311d944e9817036b20b08366382e83f3d4093814 SHA512 b94f837ff0e1aafdd4939e6e50740c8ab6af602b182357ae495359301a6d5fadaa997014895b90e0c91a715c713218396bb10687167ef30b17ebeccf310f2adf
 DIST llvm-project-18.1.0.src.tar.xz.sig 566 BLAKE2B 1ab731c3fb151ce777ad4e2c8c653e5e08c2e97795dae06185d9d92248d4435aae67e1cfa23efb9b0b90ee44183ca69b92c64cb2b6d2c338388bde1fea07d232 SHA512 7bda930945c4b51c33de9918941797a4336020b475f3999a81055bb0b2a080f81e823c6bde43cc445a113e78f5667939bce5da64ccd650e8e9b15646f84ae105
+DIST llvm-project-1c7607e8ee6ec4ca3abce1561dd39a98d4efac96.tar.gz 207112414 BLAKE2B eb028b0b09d0f970d2861578245f4ace7ebe55ef1da33503cad6a1ed3691d29cac2556bc9360e911d64ab617df4cce0d26ea0e1ab49a68ce7e4001c52ed32a71 SHA512 687720278900dd57dae430e965902777946e93b647726410c6310bb1c2c944d7d30d1733204d3db10d527ecff9d9ad78cbcb8a97408383d9c5245a031291674a
 DIST llvm-project-597f9761c3a5ba278fa930d2fac13f156287d505.tar.gz 206699707 BLAKE2B 5461426f02742cefe5ae7faeb7fed15628741e3fb41ca01ffb8159805f9b55d883d318e7c677e5bf348949b7d8e16e079df09d461abe9b32d804dcb284584fc5 SHA512 b06ae070bb197d18cb8653e290b85e8526cdab4aeb5a02c94295d489d271bd7cea637960b516937e0ba1d7ada29e734c8ea1137335d46756db54632dcdba93e9

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-16 16:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-16 16:25 UTC (permalink / raw
  To: gentoo-commits

commit:     fde6e9ed2406eddf8de882c9ea0f276133715990
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 16 16:19:20 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 16 16:25:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fde6e9ed

sys-libs/libcxx: Add 19.0.0_pre20240316 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 09cbe1ad745f..d8ae43cd6a4d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-18.1.0.src.tar.xz 132034208 BLAKE2B 06ad7c65e1d10946c74027ec46
 DIST llvm-project-18.1.0.src.tar.xz.sig 566 BLAKE2B 1ab731c3fb151ce777ad4e2c8c653e5e08c2e97795dae06185d9d92248d4435aae67e1cfa23efb9b0b90ee44183ca69b92c64cb2b6d2c338388bde1fea07d232 SHA512 7bda930945c4b51c33de9918941797a4336020b475f3999a81055bb0b2a080f81e823c6bde43cc445a113e78f5667939bce5da64ccd650e8e9b15646f84ae105
 DIST llvm-project-1c7607e8ee6ec4ca3abce1561dd39a98d4efac96.tar.gz 207112414 BLAKE2B eb028b0b09d0f970d2861578245f4ace7ebe55ef1da33503cad6a1ed3691d29cac2556bc9360e911d64ab617df4cce0d26ea0e1ab49a68ce7e4001c52ed32a71 SHA512 687720278900dd57dae430e965902777946e93b647726410c6310bb1c2c944d7d30d1733204d3db10d527ecff9d9ad78cbcb8a97408383d9c5245a031291674a
 DIST llvm-project-597f9761c3a5ba278fa930d2fac13f156287d505.tar.gz 206699707 BLAKE2B 5461426f02742cefe5ae7faeb7fed15628741e3fb41ca01ffb8159805f9b55d883d318e7c677e5bf348949b7d8e16e079df09d461abe9b32d804dcb284584fc5 SHA512 b06ae070bb197d18cb8653e290b85e8526cdab4aeb5a02c94295d489d271bd7cea637960b516937e0ba1d7ada29e734c8ea1137335d46756db54632dcdba93e9
+DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-20 12:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-20 12:50 UTC (permalink / raw
  To: gentoo-commits

commit:     520fba43cce42fc16532863c5e7c36b22e19dd58
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 20 06:36:33 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar 20 12:50:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=520fba43

sys-libs/libcxx: Add 18.1.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.2.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d8ae43cd6a4d..3fe94ea4a361 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,6 +8,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.0.src.tar.xz 132034208 BLAKE2B 06ad7c65e1d10946c74027ec46c46f9b78fe764dc6c45e016b3d39006dac40af4cae2e01d07131785711913f311d944e9817036b20b08366382e83f3d4093814 SHA512 b94f837ff0e1aafdd4939e6e50740c8ab6af602b182357ae495359301a6d5fadaa997014895b90e0c91a715c713218396bb10687167ef30b17ebeccf310f2adf
 DIST llvm-project-18.1.0.src.tar.xz.sig 566 BLAKE2B 1ab731c3fb151ce777ad4e2c8c653e5e08c2e97795dae06185d9d92248d4435aae67e1cfa23efb9b0b90ee44183ca69b92c64cb2b6d2c338388bde1fea07d232 SHA512 7bda930945c4b51c33de9918941797a4336020b475f3999a81055bb0b2a080f81e823c6bde43cc445a113e78f5667939bce5da64ccd650e8e9b15646f84ae105
+DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
+DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
 DIST llvm-project-1c7607e8ee6ec4ca3abce1561dd39a98d4efac96.tar.gz 207112414 BLAKE2B eb028b0b09d0f970d2861578245f4ace7ebe55ef1da33503cad6a1ed3691d29cac2556bc9360e911d64ab617df4cce0d26ea0e1ab49a68ce7e4001c52ed32a71 SHA512 687720278900dd57dae430e965902777946e93b647726410c6310bb1c2c944d7d30d1733204d3db10d527ecff9d9ad78cbcb8a97408383d9c5245a031291674a
 DIST llvm-project-597f9761c3a5ba278fa930d2fac13f156287d505.tar.gz 206699707 BLAKE2B 5461426f02742cefe5ae7faeb7fed15628741e3fb41ca01ffb8159805f9b55d883d318e7c677e5bf348949b7d8e16e079df09d461abe9b32d804dcb284584fc5 SHA512 b06ae070bb197d18cb8653e290b85e8526cdab4aeb5a02c94295d489d271bd7cea637960b516937e0ba1d7ada29e734c8ea1137335d46756db54632dcdba93e9
 DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490

diff --git a/sys-libs/libcxx/libcxx-18.1.2.ebuild b/sys-libs/libcxx/libcxx-18.1.2.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.2.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-23  6:50 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-23  6:50 UTC (permalink / raw
  To: gentoo-commits

commit:     b5e288a61e1a32ede801273d39daf0e9edb22c31
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 23 06:48:47 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 23 06:48:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5e288a6

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.0.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild | 210 -----------------------
 4 files changed, 634 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3fe94ea4a361..8d6bcb08ddd5 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,10 +6,6 @@ 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.0.src.tar.xz 132034208 BLAKE2B 06ad7c65e1d10946c74027ec46c46f9b78fe764dc6c45e016b3d39006dac40af4cae2e01d07131785711913f311d944e9817036b20b08366382e83f3d4093814 SHA512 b94f837ff0e1aafdd4939e6e50740c8ab6af602b182357ae495359301a6d5fadaa997014895b90e0c91a715c713218396bb10687167ef30b17ebeccf310f2adf
-DIST llvm-project-18.1.0.src.tar.xz.sig 566 BLAKE2B 1ab731c3fb151ce777ad4e2c8c653e5e08c2e97795dae06185d9d92248d4435aae67e1cfa23efb9b0b90ee44183ca69b92c64cb2b6d2c338388bde1fea07d232 SHA512 7bda930945c4b51c33de9918941797a4336020b475f3999a81055bb0b2a080f81e823c6bde43cc445a113e78f5667939bce5da64ccd650e8e9b15646f84ae105
 DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
 DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
-DIST llvm-project-1c7607e8ee6ec4ca3abce1561dd39a98d4efac96.tar.gz 207112414 BLAKE2B eb028b0b09d0f970d2861578245f4ace7ebe55ef1da33503cad6a1ed3691d29cac2556bc9360e911d64ab617df4cce0d26ea0e1ab49a68ce7e4001c52ed32a71 SHA512 687720278900dd57dae430e965902777946e93b647726410c6310bb1c2c944d7d30d1733204d3db10d527ecff9d9ad78cbcb8a97408383d9c5245a031291674a
-DIST llvm-project-597f9761c3a5ba278fa930d2fac13f156287d505.tar.gz 206699707 BLAKE2B 5461426f02742cefe5ae7faeb7fed15628741e3fb41ca01ffb8159805f9b55d883d318e7c677e5bf348949b7d8e16e079df09d461abe9b32d804dcb284584fc5 SHA512 b06ae070bb197d18cb8653e290b85e8526cdab4aeb5a02c94295d489d271bd7cea637960b516937e0ba1d7ada29e734c8ea1137335d46756db54632dcdba93e9
 DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490

diff --git a/sys-libs/libcxx/libcxx-18.1.0.ebuild b/sys-libs/libcxx/libcxx-18.1.0.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.0.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240302.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240302.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240309.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240309.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-23 16:23 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-03-23 16:23 UTC (permalink / raw
  To: gentoo-commits

commit:     64e98161b5ef3a9ee05477769301b41a3b3faa1f
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 23 16:21:18 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Mar 23 16:21:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64e98161

sys-libs/libcxx: Stabilize 17.0.6 sparc, #920044

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-17.0.6.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-17.0.6.ebuild b/sys-libs/libcxx/libcxx-17.0.6.ebuild
index 44daacf0de7d..0f39a16ae5e9 100644
--- a/sys-libs/libcxx/libcxx-17.0.6.ebuild
+++ b/sys-libs/libcxx/libcxx-17.0.6.ebuild
@@ -12,7 +12,7 @@ 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"
+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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-23 17:03 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-23 17:03 UTC (permalink / raw
  To: gentoo-commits

commit:     bb0852a5eace06bbf4f7ca7b763c19796fcc65c7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 23 16:07:53 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 23 17:03:28 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb0852a5

sys-libs/libcxx: Add 19.0.0_pre20240322 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 8d6bcb08ddd5..ee0b4d803973 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
 DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
 DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490
+DIST llvm-project-f3cfe016c5d8429c0dccfa6f85442e2ea0d45a58.tar.gz 208184654 BLAKE2B abd35798f7c921866bb221cecc42aa94915271d0804acbf44dbe5640efb787ef9d928c329eacde768fac4292217ed4d3c4187fba02dd1c826059aeaa1bad33f0 SHA512 513f7278367114ba3fe3271e8a790b62adbca97d280968537e44e5df9a7afb467a5ca93480f4d4fb7c4d5c0734d00ab54559bf68c00f09a1fcff2fee492aa84f

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-03-30 10:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-03-30 10:27 UTC (permalink / raw
  To: gentoo-commits

commit:     c1f242fce0c803f29494488900ebe76fdace4baa
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 30 10:21:45 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 30 10:27:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1f242fc

sys-libs/libcxx: Add 19.0.0_pre20240330 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ee0b4d803973..c1581249dc78 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,4 +9,5 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
 DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
 DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490
+DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
 DIST llvm-project-f3cfe016c5d8429c0dccfa6f85442e2ea0d45a58.tar.gz 208184654 BLAKE2B abd35798f7c921866bb221cecc42aa94915271d0804acbf44dbe5640efb787ef9d928c329eacde768fac4292217ed4d3c4187fba02dd1c826059aeaa1bad33f0 SHA512 513f7278367114ba3fe3271e8a790b62adbca97d280968537e44e5df9a7afb467a5ca93480f4d4fb7c4d5c0734d00ab54559bf68c00f09a1fcff2fee492aa84f

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-04 18:09 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-04 18:09 UTC (permalink / raw
  To: gentoo-commits

commit:     bc596dd478f093902bb92390efcd5632bd03cd0b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr  4 17:45:00 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr  4 18:08:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bc596dd4

sys-libs/libcxx: Add 18.1.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.3.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c1581249dc78..0ba25d95fd61 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,6 +8,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
 DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
+DIST llvm-project-18.1.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
+DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
 DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490
 DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
 DIST llvm-project-f3cfe016c5d8429c0dccfa6f85442e2ea0d45a58.tar.gz 208184654 BLAKE2B abd35798f7c921866bb221cecc42aa94915271d0804acbf44dbe5640efb787ef9d928c329eacde768fac4292217ed4d3c4187fba02dd1c826059aeaa1bad33f0 SHA512 513f7278367114ba3fe3271e8a790b62adbca97d280968537e44e5df9a7afb467a5ca93480f4d4fb7c4d5c0734d00ab54559bf68c00f09a1fcff2fee492aa84f

diff --git a/sys-libs/libcxx/libcxx-18.1.3.ebuild b/sys-libs/libcxx/libcxx-18.1.3.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.3.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-06  4:56 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-06  4:56 UTC (permalink / raw
  To: gentoo-commits

commit:     3c6cb3a87652d93cefb5b4331fec4baad4629f3d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  6 04:54:59 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr  6 04:54:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c6cb3a8

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.2.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild | 210 -----------------------
 4 files changed, 634 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0ba25d95fd61..76a5ca29c883 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,10 +6,6 @@ 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.2.src.tar.xz 132060436 BLAKE2B f21fca02fe9e02a3d440595aafbe0572be318ce69cc6285c1bf3dc9187b37ebf4c76f3ea60b6870c441675288f46e5597b069ec451d5026c5161f84daef6b4b2 SHA512 a0d01b018abbdf1609abc7b63911bb4c6c3619b748a0616b66be0843fcaa4240868412c5d1f77fe6dafdfed665b46570e7ce615da58efcaa91e9ddc8481e6fc4
-DIST llvm-project-18.1.2.src.tar.xz.sig 566 BLAKE2B 97c6b6b4a041316e70abd54ff715d87a62410fe5590c9b90548fff5a5121d8d5e028ec681f7e99c130d6c6726835365825286ef0a01c82a98394d9369ea7a390 SHA512 1cd8d1c227782cb43e269696045cea500a43f3c6b786f2cda8d380f5b8fc28d3ada11c41c4a252f2d3db465f767b27ea50c5659faa43d4aa5655cc3ffd6243c2
 DIST llvm-project-18.1.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
 DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
-DIST llvm-project-6d3cec01a6c29fa4e51ba129fa13dbf55d2b928e.tar.gz 207700152 BLAKE2B 855720b7a9cc7b1d8fdf398394eb5c702dd615c04e7dad51c449cb1c2f46e75f2ccf2ee10fa3a3403d6aec29f557023a11bd8cdb525bc9c3d76c79f23cd15e82 SHA512 ff6269158e165907c69bd3e4d2d6b87b4f4670546b7e290d7e6665e7097ec887d71174fa37bf5e1755524317e8ae8f0c7c7e428049e8b553faa52c614f1f4490
 DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
-DIST llvm-project-f3cfe016c5d8429c0dccfa6f85442e2ea0d45a58.tar.gz 208184654 BLAKE2B abd35798f7c921866bb221cecc42aa94915271d0804acbf44dbe5640efb787ef9d928c329eacde768fac4292217ed4d3c4187fba02dd1c826059aeaa1bad33f0 SHA512 513f7278367114ba3fe3271e8a790b62adbca97d280968537e44e5df9a7afb467a5ca93480f4d4fb7c4d5c0734d00ab54559bf68c00f09a1fcff2fee492aa84f

diff --git a/sys-libs/libcxx/libcxx-18.1.2.ebuild b/sys-libs/libcxx/libcxx-18.1.2.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.2.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240316.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240316.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240322.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240322.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-06 13:44 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-06 13:44 UTC (permalink / raw
  To: gentoo-commits

commit:     51105ef1326be47399577606dae3d63a3eda6bfd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  6 13:04:11 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr  6 13:44:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51105ef1

sys-libs/libcxx: Add 19.0.0_pre20240404 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 76a5ca29c883..389a79484b70 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-project-12735916bd3a63aa9f316af8eebfe9420cfec489.tar.gz 208645973 BLAKE2B 4a64dcaa15cb592634eceb384ecfc11173dbf0285402c32be2b8056374bb8ecef8fa1055fbe353a0836c84b75736cc05f3a14428bc431c18362cfaa7bf96a50a SHA512 ee42f7db322c84dfae3c67ffcfff2ee8d56d6bd4a0412b6bd4f8952ac1da4d57d18fa38011fe514631363b4cc143327be887792dd2e9562942261c99e655d948
 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

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-10 11:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-10 11:10 UTC (permalink / raw
  To: gentoo-commits

commit:     5d9b22456e14e74fa05231de746dfbb63adc8845
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 10 09:52:54 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 10 11:09:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d9b2245

sys-libs/libcxx: Add 19.0.0_pre20240410 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 389a79484b70..bb48b486081b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 DIST llvm-project-18.1.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
 DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
 DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
+DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-18 18:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-18 18:13 UTC (permalink / raw
  To: gentoo-commits

commit:     c7ee4c03146cf07434e7114c3e3582d8a7a5de0f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 18 11:29:37 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr 18 18:13:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7ee4c03

sys-libs/libcxx: Add 18.1.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.4.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index bb48b486081b..49dd164e3f35 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
 DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
+DIST llvm-project-18.1.4.src.tar.xz 132054668 BLAKE2B 94bbad3b185fd07cbace4eff79aba80fbdd5e072739250e3927fe1848bcf3f8d355eb1f384e57306707eb702acc7ab01b732590735be7950221607664d04b0a6 SHA512 b1b214ae91f3705d8ea345547ad53f1e5d7d884c1eb6958bc41c14ac4b3e407771ccc2b693686ff103c8232c2c3942731d6db9a9cb4f735e6c6a0674739d0b29
+DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb25c40e9d8d2c7341de0215d8c31f330f396e9c166ff63513829cdc9cef349f08238f66a4dc949fa97958a7af496abae369eaa SHA512 4f456edf4fb454815acaef6855b1a0991f229810a32e9369af83388e37f0ef8964308e1e93bd6216024cdd67e86caaadc8d5794467857cc6fe561c9fa6ca7386
 DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
 DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1

diff --git a/sys-libs/libcxx/libcxx-18.1.4.ebuild b/sys-libs/libcxx/libcxx-18.1.4.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.4.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-20  4:29 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-20  4:29 UTC (permalink / raw
  To: gentoo-commits

commit:     2e90f2571f7767a2dd7a102c73474d83d0335503
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 20 04:24:01 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 20 04:29:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2e90f257

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.3.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild | 210 -----------------------
 4 files changed, 634 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 49dd164e3f35..0155500a235b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,15 +1,11 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
-DIST llvm-project-12735916bd3a63aa9f316af8eebfe9420cfec489.tar.gz 208645973 BLAKE2B 4a64dcaa15cb592634eceb384ecfc11173dbf0285402c32be2b8056374bb8ecef8fa1055fbe353a0836c84b75736cc05f3a14428bc431c18362cfaa7bf96a50a SHA512 ee42f7db322c84dfae3c67ffcfff2ee8d56d6bd4a0412b6bd4f8952ac1da4d57d18fa38011fe514631363b4cc143327be887792dd2e9562942261c99e655d948
 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
 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.3.src.tar.xz 132049300 BLAKE2B 0681177cfe6a65f5cf11942381078388e8f5d9d5a4bb50b040e4c10a3898e7311ff379fcca008e82e4bef225792a38eb77f722c972725b9251a0fda29d8d7ecc SHA512 b8b8a00c560bc7d4c4b5d533b92dbd52f2c0254f0acf687e787e8b7fa780cd5d96f6e9709356d2c406c0b36b186dee4de6b1bc1928a97de0bda863fa873e0783
-DIST llvm-project-18.1.3.src.tar.xz.sig 566 BLAKE2B dcecf41346cc864c6e5bedd3a7db3db4f32a68534364d2537a15ca7e4e2f2d35a22722385ac556d2a4ac48ab37567566094f223534e696299f98040e702146d0 SHA512 b7e50779841891e9ed9de5ed917c5be3209a52a5d98c67a032509ae8fad8a2a882bf619c66d2ee45bb53dfb03d750cb94dc4b2750ec2a8edb0465700d5bc657c
 DIST llvm-project-18.1.4.src.tar.xz 132054668 BLAKE2B 94bbad3b185fd07cbace4eff79aba80fbdd5e072739250e3927fe1848bcf3f8d355eb1f384e57306707eb702acc7ab01b732590735be7950221607664d04b0a6 SHA512 b1b214ae91f3705d8ea345547ad53f1e5d7d884c1eb6958bc41c14ac4b3e407771ccc2b693686ff103c8232c2c3942731d6db9a9cb4f735e6c6a0674739d0b29
 DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb25c40e9d8d2c7341de0215d8c31f330f396e9c166ff63513829cdc9cef349f08238f66a4dc949fa97958a7af496abae369eaa SHA512 4f456edf4fb454815acaef6855b1a0991f229810a32e9369af83388e37f0ef8964308e1e93bd6216024cdd67e86caaadc8d5794467857cc6fe561c9fa6ca7386
-DIST llvm-project-a8b0ecd2605ff23f495a8af64e06c35f86834e54.tar.gz 208451583 BLAKE2B 3f8557637b9d10ed924cfec0b3e83d85996417df24b317cac55740aa199ef97cf7560fe634debd1dbfc7c9fc25aa2b2643fccaecc4c866481dc57b11eba1d02f SHA512 1f4bf5a8a59582af426ad13cc828e1e482c5c831ed5a4bb0da419ed3cf67e5e485fd36074603ad22328e35be44b8ccd2d92d1382bc7a228fdf38d458a2321e07
 DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1

diff --git a/sys-libs/libcxx/libcxx-18.1.3.ebuild b/sys-libs/libcxx/libcxx-18.1.3.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.3.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240330.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240330.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240404.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240404.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-20  9:41 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-20  9:41 UTC (permalink / raw
  To: gentoo-commits

commit:     f4e5b60d6f4da0f8c8ab1f0882c6d5262a8d3453
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 20 09:38:44 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 20 09:38:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4e5b60d

sys-libs/libcxx: Add 19.0.0_pre20240420 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0155500a235b..baf0ab9370b1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 DIST llvm-project-18.1.4.src.tar.xz 132054668 BLAKE2B 94bbad3b185fd07cbace4eff79aba80fbdd5e072739250e3927fe1848bcf3f8d355eb1f384e57306707eb702acc7ab01b732590735be7950221607664d04b0a6 SHA512 b1b214ae91f3705d8ea345547ad53f1e5d7d884c1eb6958bc41c14ac4b3e407771ccc2b693686ff103c8232c2c3942731d6db9a9cb4f735e6c6a0674739d0b29
 DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb25c40e9d8d2c7341de0215d8c31f330f396e9c166ff63513829cdc9cef349f08238f66a4dc949fa97958a7af496abae369eaa SHA512 4f456edf4fb454815acaef6855b1a0991f229810a32e9369af83388e37f0ef8964308e1e93bd6216024cdd67e86caaadc8d5794467857cc6fe561c9fa6ca7386
 DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1
+DIST llvm-project-f03cd2db91956456f1c5e2da86d3c50183eebd28.tar.gz 209375254 BLAKE2B 1d7e043d04323edb64b2ef2309fbcb4f82a959f45391e815133cc0891d5a497bbb81101aab460e9bf67e75aa906e13ad1877c3850829dcad397ed626dc8f2792 SHA512 6775e03a44b2133bd4a4b473ab007599321daa19dc7f3cc47f95cf9d110e83e982bf48a6b1d43038b0f0a2c0fef2f689aefd20132b25a90ef19342683e2d2e50

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-04-27 10:42 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-04-27 10:42 UTC (permalink / raw
  To: gentoo-commits

commit:     0feec4a5807dd39e57bcb28fc0844244f6f5728d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 27 10:34:16 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 27 10:42:33 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0feec4a5

sys-libs/libcxx: Add 19.0.0_pre20240427 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index baf0ab9370b1..618483c58591 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.4.src.tar.xz 132054668 BLAKE2B 94bbad3b185fd07cbace4eff79aba80fbdd5e072739250e3927fe1848bcf3f8d355eb1f384e57306707eb702acc7ab01b732590735be7950221607664d04b0a6 SHA512 b1b214ae91f3705d8ea345547ad53f1e5d7d884c1eb6958bc41c14ac4b3e407771ccc2b693686ff103c8232c2c3942731d6db9a9cb4f735e6c6a0674739d0b29
 DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb25c40e9d8d2c7341de0215d8c31f330f396e9c166ff63513829cdc9cef349f08238f66a4dc949fa97958a7af496abae369eaa SHA512 4f456edf4fb454815acaef6855b1a0991f229810a32e9369af83388e37f0ef8964308e1e93bd6216024cdd67e86caaadc8d5794467857cc6fe561c9fa6ca7386
+DIST llvm-project-338561657685c1831a53563b1bc36ffc7470239e.tar.gz 209715501 BLAKE2B 49152479d4f2cae430e783784d0cfcc129134f5cc0bf12c72701cd15e59cb3e1be2f61385ba9baa93d1d1193e89374ac8877b909650c163b681d1fcd26732cdc SHA512 d34bbe82e85c5b9d493029ad7b46e802f06f7e7a8a48515d0043c58c3251271f8f3e1e11c47eb91bd3db2477f819d33b43ddebb276eb9601c5ad141e463c9682
 DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1
 DIST llvm-project-f03cd2db91956456f1c5e2da86d3c50183eebd28.tar.gz 209375254 BLAKE2B 1d7e043d04323edb64b2ef2309fbcb4f82a959f45391e815133cc0891d5a497bbb81101aab460e9bf67e75aa906e13ad1877c3850829dcad397ed626dc8f2792 SHA512 6775e03a44b2133bd4a4b473ab007599321daa19dc7f3cc47f95cf9d110e83e982bf48a6b1d43038b0f0a2c0fef2f689aefd20132b25a90ef19342683e2d2e50

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-04  5:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-04  5:35 UTC (permalink / raw
  To: gentoo-commits

commit:     1ab2caf5212412a5ae9fff8ee1ed8b3017c17776
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 05:31:21 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  4 05:32:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ab2caf5

sys-libs/libcxx: Add 18.1.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.5.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 618483c58591..c338624658cb 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,6 +8,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.4.src.tar.xz 132054668 BLAKE2B 94bbad3b185fd07cbace4eff79aba80fbdd5e072739250e3927fe1848bcf3f8d355eb1f384e57306707eb702acc7ab01b732590735be7950221607664d04b0a6 SHA512 b1b214ae91f3705d8ea345547ad53f1e5d7d884c1eb6958bc41c14ac4b3e407771ccc2b693686ff103c8232c2c3942731d6db9a9cb4f735e6c6a0674739d0b29
 DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb25c40e9d8d2c7341de0215d8c31f330f396e9c166ff63513829cdc9cef349f08238f66a4dc949fa97958a7af496abae369eaa SHA512 4f456edf4fb454815acaef6855b1a0991f229810a32e9369af83388e37f0ef8964308e1e93bd6216024cdd67e86caaadc8d5794467857cc6fe561c9fa6ca7386
+DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
+DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
 DIST llvm-project-338561657685c1831a53563b1bc36ffc7470239e.tar.gz 209715501 BLAKE2B 49152479d4f2cae430e783784d0cfcc129134f5cc0bf12c72701cd15e59cb3e1be2f61385ba9baa93d1d1193e89374ac8877b909650c163b681d1fcd26732cdc SHA512 d34bbe82e85c5b9d493029ad7b46e802f06f7e7a8a48515d0043c58c3251271f8f3e1e11c47eb91bd3db2477f819d33b43ddebb276eb9601c5ad141e463c9682
 DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1
 DIST llvm-project-f03cd2db91956456f1c5e2da86d3c50183eebd28.tar.gz 209375254 BLAKE2B 1d7e043d04323edb64b2ef2309fbcb4f82a959f45391e815133cc0891d5a497bbb81101aab460e9bf67e75aa906e13ad1877c3850829dcad397ed626dc8f2792 SHA512 6775e03a44b2133bd4a4b473ab007599321daa19dc7f3cc47f95cf9d110e83e982bf48a6b1d43038b0f0a2c0fef2f689aefd20132b25a90ef19342683e2d2e50

diff --git a/sys-libs/libcxx/libcxx-18.1.5.ebuild b/sys-libs/libcxx/libcxx-18.1.5.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.5.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-04 14:53 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-04 14:53 UTC (permalink / raw
  To: gentoo-commits

commit:     e0828987159b69d7d6174a652c1ecfd6e7fe98b6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 14:50:15 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  4 14:53:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0828987

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild | 210 -----------------------
 3 files changed, 422 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c338624658cb..bebe4a4e3c7e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,5 +11,3 @@ DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb2
 DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
 DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
 DIST llvm-project-338561657685c1831a53563b1bc36ffc7470239e.tar.gz 209715501 BLAKE2B 49152479d4f2cae430e783784d0cfcc129134f5cc0bf12c72701cd15e59cb3e1be2f61385ba9baa93d1d1193e89374ac8877b909650c163b681d1fcd26732cdc SHA512 d34bbe82e85c5b9d493029ad7b46e802f06f7e7a8a48515d0043c58c3251271f8f3e1e11c47eb91bd3db2477f819d33b43ddebb276eb9601c5ad141e463c9682
-DIST llvm-project-ee284d2da0720dc21191d6f545504cbfcf5dcbcf.tar.gz 208883034 BLAKE2B e37c9f1a6a4d0caa9a3091f979dd09f509d458f8b7b30286c77dd2385aea748b7aac6dd488c79573f82feb655aa321717bd2fb46bba4a12b388b52064f6e13bf SHA512 1335ade87cd2accc47ac47ed2ab302999e375808b158b6c9d31fac9059cbb992d2bdaaadf1fd9a1b37268c1123d43346ea4d150894d6d2e6f80ba790b65b93b1
-DIST llvm-project-f03cd2db91956456f1c5e2da86d3c50183eebd28.tar.gz 209375254 BLAKE2B 1d7e043d04323edb64b2ef2309fbcb4f82a959f45391e815133cc0891d5a497bbb81101aab460e9bf67e75aa906e13ad1877c3850829dcad397ed626dc8f2792 SHA512 6775e03a44b2133bd4a4b473ab007599321daa19dc7f3cc47f95cf9d110e83e982bf48a6b1d43038b0f0a2c0fef2f689aefd20132b25a90ef19342683e2d2e50

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240410.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240420.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240420.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-04 19:57 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-04 19:57 UTC (permalink / raw
  To: gentoo-commits

commit:     91a19f62ced8c370d9cc43a8eb6fea64072084ae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May  4 19:24:59 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  4 19:57:10 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91a19f62

sys-libs/libcxx: Add 19.0.0_pre20240504 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index bebe4a4e3c7e..f9af222ada62 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb2
 DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
 DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
 DIST llvm-project-338561657685c1831a53563b1bc36ffc7470239e.tar.gz 209715501 BLAKE2B 49152479d4f2cae430e783784d0cfcc129134f5cc0bf12c72701cd15e59cb3e1be2f61385ba9baa93d1d1193e89374ac8877b909650c163b681d1fcd26732cdc SHA512 d34bbe82e85c5b9d493029ad7b46e802f06f7e7a8a48515d0043c58c3251271f8f3e1e11c47eb91bd3db2477f819d33b43ddebb276eb9601c5ad141e463c9682
+DIST llvm-project-76aa042dde6ba9ba57c680950f5818259ee02690.tar.gz 210235525 BLAKE2B fbbb8e70e0a08bde1fa2277746f692399fa15015b69693f5e8d3297abf02dfb7b36c535880f5c6924c870652dd3106936776d57c34b22234a5419f75b3561bb7 SHA512 9107551ceb2b28aa735006144b3344801ea861d7b49eae4881831af507314fb8da2bf5e8a3a407aeebd2eee01fbfad2ca90269d2331fe43cca5c2cc49dd257b7

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-11 13:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-11 13:39 UTC (permalink / raw
  To: gentoo-commits

commit:     8628f2687d477ceb17b20c3c7e74c56bc30723a1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 11 13:37:57 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 11 13:37:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8628f268

sys-libs/libcxx: Add 19.0.0_pre20240509 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f9af222ada62..23948f7d82f1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,3 +12,4 @@ DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792
 DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
 DIST llvm-project-338561657685c1831a53563b1bc36ffc7470239e.tar.gz 209715501 BLAKE2B 49152479d4f2cae430e783784d0cfcc129134f5cc0bf12c72701cd15e59cb3e1be2f61385ba9baa93d1d1193e89374ac8877b909650c163b681d1fcd26732cdc SHA512 d34bbe82e85c5b9d493029ad7b46e802f06f7e7a8a48515d0043c58c3251271f8f3e1e11c47eb91bd3db2477f819d33b43ddebb276eb9601c5ad141e463c9682
 DIST llvm-project-76aa042dde6ba9ba57c680950f5818259ee02690.tar.gz 210235525 BLAKE2B fbbb8e70e0a08bde1fa2277746f692399fa15015b69693f5e8d3297abf02dfb7b36c535880f5c6924c870652dd3106936776d57c34b22234a5419f75b3561bb7 SHA512 9107551ceb2b28aa735006144b3344801ea861d7b49eae4881831af507314fb8da2bf5e8a3a407aeebd2eee01fbfad2ca90269d2331fe43cca5c2cc49dd257b7
+DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-16 14:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-16 14:58 UTC (permalink / raw
  To: gentoo-commits

commit:     02b98fbe983300b50018b0cc380cf9474d036f33
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu May 16 14:16:49 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May 16 14:58:33 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=02b98fbe

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.4.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild | 210 -----------------------
 4 files changed, 634 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 23948f7d82f1..b70ccebadbac 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,10 +6,6 @@ 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.4.src.tar.xz 132054668 BLAKE2B 94bbad3b185fd07cbace4eff79aba80fbdd5e072739250e3927fe1848bcf3f8d355eb1f384e57306707eb702acc7ab01b732590735be7950221607664d04b0a6 SHA512 b1b214ae91f3705d8ea345547ad53f1e5d7d884c1eb6958bc41c14ac4b3e407771ccc2b693686ff103c8232c2c3942731d6db9a9cb4f735e6c6a0674739d0b29
-DIST llvm-project-18.1.4.src.tar.xz.sig 566 BLAKE2B b74fd219d7bcdf197b4e711cfbb25c40e9d8d2c7341de0215d8c31f330f396e9c166ff63513829cdc9cef349f08238f66a4dc949fa97958a7af496abae369eaa SHA512 4f456edf4fb454815acaef6855b1a0991f229810a32e9369af83388e37f0ef8964308e1e93bd6216024cdd67e86caaadc8d5794467857cc6fe561c9fa6ca7386
 DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
 DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
-DIST llvm-project-338561657685c1831a53563b1bc36ffc7470239e.tar.gz 209715501 BLAKE2B 49152479d4f2cae430e783784d0cfcc129134f5cc0bf12c72701cd15e59cb3e1be2f61385ba9baa93d1d1193e89374ac8877b909650c163b681d1fcd26732cdc SHA512 d34bbe82e85c5b9d493029ad7b46e802f06f7e7a8a48515d0043c58c3251271f8f3e1e11c47eb91bd3db2477f819d33b43ddebb276eb9601c5ad141e463c9682
-DIST llvm-project-76aa042dde6ba9ba57c680950f5818259ee02690.tar.gz 210235525 BLAKE2B fbbb8e70e0a08bde1fa2277746f692399fa15015b69693f5e8d3297abf02dfb7b36c535880f5c6924c870652dd3106936776d57c34b22234a5419f75b3561bb7 SHA512 9107551ceb2b28aa735006144b3344801ea861d7b49eae4881831af507314fb8da2bf5e8a3a407aeebd2eee01fbfad2ca90269d2331fe43cca5c2cc49dd257b7
 DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417

diff --git a/sys-libs/libcxx/libcxx-18.1.4.ebuild b/sys-libs/libcxx/libcxx-18.1.4.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.4.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240427.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240427.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240504.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240504.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-18 13:25 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-18 13:25 UTC (permalink / raw
  To: gentoo-commits

commit:     a6c7a909fbf7ece60b17f89f8408ab0a34b1db31
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 18 13:08:44 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 18 13:25:27 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6c7a909

sys-libs/libcxx: Add 19.0.0_pre20240518 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index b70ccebadbac..c10a5c7ebd4c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,4 +8,5 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
 DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
+DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
 DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-19 11:47 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-19 11:47 UTC (permalink / raw
  To: gentoo-commits

commit:     51abd7bb44066d79f61864bd7e240d3d0268ae36
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun May 19 06:07:15 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun May 19 11:47:01 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51abd7bb

sys-libs/libcxx: Add 18.1.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.6.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c10a5c7ebd4c..06ab3f51e51c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
 DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
+DIST llvm-project-18.1.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c68c8e441a126cf8e89e55a965f3b9e3a629a37d5743fd7859a60bedaddf27ff2da1e0f08c81806871ef542cb7c3f40b23b22cf5 SHA512 89ec276aa41bb2d76cfc3a72d8e728a9ce9176e02c085338b704790524fe329904cf311381805814faa8a6c79637620c01627bf122a51f89e0f3adb47e5df34c
+DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
 DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
 DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417

diff --git a/sys-libs/libcxx/libcxx-18.1.6.ebuild b/sys-libs/libcxx/libcxx-18.1.6.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.6.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-25  8:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-25  8:35 UTC (permalink / raw
  To: gentoo-commits

commit:     f0719a07d9c2bc4e55ed6ba568048940407dd48a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 25 08:32:34 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 25 08:35:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f0719a07

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-18.1.5.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild | 210 -----------------------
 3 files changed, 423 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c9870db429b2..9f17e2b70e1a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,10 +6,7 @@ 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.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
-DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
 DIST llvm-project-18.1.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c68c8e441a126cf8e89e55a965f3b9e3a629a37d5743fd7859a60bedaddf27ff2da1e0f08c81806871ef542cb7c3f40b23b22cf5 SHA512 89ec276aa41bb2d76cfc3a72d8e728a9ce9176e02c085338b704790524fe329904cf311381805814faa8a6c79637620c01627bf122a51f89e0f3adb47e5df34c
 DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
 DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
 DIST llvm-project-7dc2f6602212bf0a0433c157b70e4fc0d70bb730.tar.gz 211903416 BLAKE2B 4a2f12e0aa234d507d2fc2136a1d98a7624147ce6e401831743e640abcaceb5152c80ba2dc312f9256e4a04be2ad065d1a57dbe5dc24f2d3edc9d65888986710 SHA512 c9eb99f666fc15b29f01a1b2a4b3c6edd3a726033533111e60763c6313a4af8c9dba3396856d6650ac5e666d00941efcc944fac85a4483748bbbea9475e6daf8
-DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417

diff --git a/sys-libs/libcxx/libcxx-18.1.5.ebuild b/sys-libs/libcxx/libcxx-18.1.5.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.5.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240509.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240509.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-25  8:35 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-25  8:35 UTC (permalink / raw
  To: gentoo-commits

commit:     9feac0906ac869e78d10b87fb96e8d83056e7ba8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 25 08:31:15 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 25 08:34:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9feac090

sys-libs/libcxx: Add 19.0.0_pre20240525 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 06ab3f51e51c..c9870db429b2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,4 +11,5 @@ DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440
 DIST llvm-project-18.1.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c68c8e441a126cf8e89e55a965f3b9e3a629a37d5743fd7859a60bedaddf27ff2da1e0f08c81806871ef542cb7c3f40b23b22cf5 SHA512 89ec276aa41bb2d76cfc3a72d8e728a9ce9176e02c085338b704790524fe329904cf311381805814faa8a6c79637620c01627bf122a51f89e0f3adb47e5df34c
 DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
 DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
+DIST llvm-project-7dc2f6602212bf0a0433c157b70e4fc0d70bb730.tar.gz 211903416 BLAKE2B 4a2f12e0aa234d507d2fc2136a1d98a7624147ce6e401831743e640abcaceb5152c80ba2dc312f9256e4a04be2ad065d1a57dbe5dc24f2d3edc9d65888986710 SHA512 c9eb99f666fc15b29f01a1b2a4b3c6edd3a726033533111e60763c6313a4af8c9dba3396856d6650ac5e666d00941efcc944fac85a4483748bbbea9475e6daf8
 DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild
new file mode 100644
index 000000000000..e29d57a316d3
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-05-27 17:32 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-05-27 17:32 UTC (permalink / raw
  To: gentoo-commits

commit:     66bd14726b08220668450db3df88b5078dea3aa3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon May 27 17:32:01 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon May 27 17:32:01 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66bd1472

sys-libs/libcxx: Enable py3.13 in 19.0.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-19.0.0.9999.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
index e29d57a316d3..8713b12c69fb 100644
--- a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
 inherit cmake-multilib flag-o-matic llvm.org llvm-utils python-any-r1
 inherit toolchain-funcs
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-07 18:16 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-07 18:16 UTC (permalink / raw
  To: gentoo-commits

commit:     07116af11767fe1a0fb6310d36576267a6c26d39
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  7 18:03:33 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jun  7 18:16:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=07116af1

sys-libs/libcxx: Add 18.1.7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.7.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9f17e2b70e1a..a4706c5e79a6 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c68c8e441a126cf8e89e55a965f3b9e3a629a37d5743fd7859a60bedaddf27ff2da1e0f08c81806871ef542cb7c3f40b23b22cf5 SHA512 89ec276aa41bb2d76cfc3a72d8e728a9ce9176e02c085338b704790524fe329904cf311381805814faa8a6c79637620c01627bf122a51f89e0f3adb47e5df34c
 DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
+DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
+DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
 DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
 DIST llvm-project-7dc2f6602212bf0a0433c157b70e4fc0d70bb730.tar.gz 211903416 BLAKE2B 4a2f12e0aa234d507d2fc2136a1d98a7624147ce6e401831743e640abcaceb5152c80ba2dc312f9256e4a04be2ad065d1a57dbe5dc24f2d3edc9d65888986710 SHA512 c9eb99f666fc15b29f01a1b2a4b3c6edd3a726033533111e60763c6313a4af8c9dba3396856d6650ac5e666d00941efcc944fac85a4483748bbbea9475e6daf8

diff --git a/sys-libs/libcxx/libcxx-18.1.7.ebuild b/sys-libs/libcxx/libcxx-18.1.7.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.7.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-08 10:29 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-08 10:29 UTC (permalink / raw
  To: gentoo-commits

commit:     32d223d187fe3c7afe6cdacd910d7b3765e8dd75
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  8 10:25:13 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun  8 10:28:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=32d223d1

sys-libs/libcxx: Add 19.0.0_pre20240608 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild | 210 +++++++++++++++++++++++
 2 files changed, 211 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a4706c5e79a6..e3e96b837f10 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,6 @@ DIST llvm-project-18.1.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c6
 DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
 DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
 DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
 DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
 DIST llvm-project-7dc2f6602212bf0a0433c157b70e4fc0d70bb730.tar.gz 211903416 BLAKE2B 4a2f12e0aa234d507d2fc2136a1d98a7624147ce6e401831743e640abcaceb5152c80ba2dc312f9256e4a04be2ad065d1a57dbe5dc24f2d3edc9d65888986710 SHA512 c9eb99f666fc15b29f01a1b2a4b3c6edd3a726033533111e60763c6313a4af8c9dba3396856d6650ac5e666d00941efcc944fac85a4483748bbbea9475e6daf8

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild
new file mode 100644
index 000000000000..8713b12c69fb
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild
@@ -0,0 +1,210 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-15 11:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-15 11:01 UTC (permalink / raw
  To: gentoo-commits

commit:     4b51ad25cbad9cd15c46279f3e861bbc950647e7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 15 10:16:26 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 15 11:01:07 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b51ad25

sys-libs/libcxx: Add 19.0.0_pre20240615 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                                         | 1 +
 sys-libs/libcxx/libcxx-19.0.0.9999.ebuild                        | 9 ---------
 ...ibcxx-19.0.0.9999.ebuild => libcxx-19.0.0_pre20240615.ebuild} | 7 +++----
 3 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index e3e96b837f10..5b02dffe2c4a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -13,3 +13,4 @@ DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df5
 DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
 DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
 DIST llvm-project-7dc2f6602212bf0a0433c157b70e4fc0d70bb730.tar.gz 211903416 BLAKE2B 4a2f12e0aa234d507d2fc2136a1d98a7624147ce6e401831743e640abcaceb5152c80ba2dc312f9256e4a04be2ad065d1a57dbe5dc24f2d3edc9d65888986710 SHA512 c9eb99f666fc15b29f01a1b2a4b3c6edd3a726033533111e60763c6313a4af8c9dba3396856d6650ac5e666d00941efcc944fac85a4483748bbbea9475e6daf8
+DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9

diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
index 8713b12c69fb..a0d07e1507f4 100644
--- a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
@@ -58,15 +58,6 @@ pkg_setup() {
 	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

diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240615.ebuild
similarity index 95%
copy from sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
copy to sys-libs/libcxx/libcxx-19.0.0_pre20240615.ebuild
index 8713b12c69fb..931ffd630243 100644
--- a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240615.ebuild
@@ -59,10 +59,9 @@ pkg_setup() {
 }
 
 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
+	# broken test, apparently doesn't like our timezone-data
+	# https://github.com/llvm/llvm-project/pull/89537
+	rm ../libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp || die
 
 	cmake_src_prepare
 }


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-15 11:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-15 11:01 UTC (permalink / raw
  To: gentoo-commits

commit:     56827a919268706dbb1adffd2460dabc7352c23f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 15 10:17:13 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 15 11:01:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56827a91

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.6.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild | 210 -----------------------
 4 files changed, 634 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 5b02dffe2c4a..67e735e61915 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,11 +6,7 @@ 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.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c68c8e441a126cf8e89e55a965f3b9e3a629a37d5743fd7859a60bedaddf27ff2da1e0f08c81806871ef542cb7c3f40b23b22cf5 SHA512 89ec276aa41bb2d76cfc3a72d8e728a9ce9176e02c085338b704790524fe329904cf311381805814faa8a6c79637620c01627bf122a51f89e0f3adb47e5df34c
-DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
 DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
 DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
 DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
-DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
-DIST llvm-project-7dc2f6602212bf0a0433c157b70e4fc0d70bb730.tar.gz 211903416 BLAKE2B 4a2f12e0aa234d507d2fc2136a1d98a7624147ce6e401831743e640abcaceb5152c80ba2dc312f9256e4a04be2ad065d1a57dbe5dc24f2d3edc9d65888986710 SHA512 c9eb99f666fc15b29f01a1b2a4b3c6edd3a726033533111e60763c6313a4af8c9dba3396856d6650ac5e666d00941efcc944fac85a4483748bbbea9475e6daf8
 DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9

diff --git a/sys-libs/libcxx/libcxx-18.1.6.ebuild b/sys-libs/libcxx/libcxx-18.1.6.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.6.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240518.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240518.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240525.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild
deleted file mode 100644
index e29d57a316d3..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240525.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-23 17:33 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-23 17:33 UTC (permalink / raw
  To: gentoo-commits

commit:     4af0036d3449767c726b98143bb407b8c7e52445
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 23 16:27:33 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jun 23 17:32:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4af0036d

sys-libs/libcxx: Add 19.0.0_pre20240623 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 67e735e61915..ac56f504504c 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,5 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
 DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
 DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
 DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-24 13:28 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-24 13:28 UTC (permalink / raw
  To: gentoo-commits

commit:     9cab5fb8b0d9f456e7a50daa9c8d1d90d4992a25
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 24 13:27:51 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 24 13:27:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9cab5fb8

sys-libs/libcxx: Add 18.1.8

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-18.1.8.ebuild | 210 +++++++++++++++++++++++++++++++++++
 2 files changed, 212 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index ac56f504504c..0402167eef47 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,6 +8,8 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
 DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
 DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
 DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9

diff --git a/sys-libs/libcxx/libcxx-18.1.8.ebuild b/sys-libs/libcxx/libcxx-18.1.8.ebuild
new file mode 100644
index 000000000000..a6fca47e6c29
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-18.1.8.ebuild
@@ -0,0 +1,210 @@
+# 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.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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-27  1:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-27  1:39 UTC (permalink / raw
  To: gentoo-commits

commit:     43f3f92eb16a3ea6eb1d96e4f32442241348db65
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 27 01:36:11 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 27 01:36:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=43f3f92e

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-18.1.7.ebuild             | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild | 210 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240615.ebuild | 209 ----------------------
 4 files changed, 633 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 0402167eef47..4b0ece6d1f43 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -6,10 +6,6 @@ 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.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
-DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
-DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
-DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9

diff --git a/sys-libs/libcxx/libcxx-18.1.7.ebuild b/sys-libs/libcxx/libcxx-18.1.7.ebuild
deleted file mode 100644
index a6fca47e6c29..000000000000
--- a/sys-libs/libcxx/libcxx-18.1.7.ebuild
+++ /dev/null
@@ -1,210 +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.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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_pre20240608.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild
deleted file mode 100644
index 8713b12c69fb..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240608.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240615.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240615.ebuild
deleted file mode 100644
index 931ffd630243..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240615.ebuild
+++ /dev/null
@@ -1,209 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	# broken test, apparently doesn't like our timezone-data
-	# https://github.com/llvm/llvm-project/pull/89537
-	rm ../libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.local_time.pass.cpp || die
-
-	cmake_src_prepare
-}
-
-test_compiler() {
-	$(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
-		<<<'int main() { return 0; }' &>/dev/null
-}
-
-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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-06-30 17:00 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-06-30 17:00 UTC (permalink / raw
  To: gentoo-commits

commit:     91e9506910a0ed8b99be291d42cc344ee005d0af
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 30 16:23:46 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jun 30 17:00:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=91e95069

sys-libs/libcxx: Add 19.0.0_pre20240630 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4b0ece6d1f43..1faab8b239ff 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-project-022d15c0039fc1cfaa3cc2eb1a45b71bbb21fadd.tar.gz 215902891 BLAKE2B ecd87b84a4e5f87c91b6df0a2d6849f385bdb7b26b14a2836f1e1fc5a69f9f5b441e47b9251174019f62eabe39a243092cd1a175b5da7d7576cdcfd63083cff0 SHA512 7726e253179bfd9e0b93236e3ce1133b421329b0b3496b10c0a0eecde372fb5e55cce737b6b78db13f2d0833bbc92023d95efa54cb2918b12ce9af166bd90ff4
 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

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-06 11:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-06 11:19 UTC (permalink / raw
  To: gentoo-commits

commit:     9c4cb4bec57aea875bd0c7ce4d030a6153512e73
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul  6 10:46:33 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul  6 11:19:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c4cb4be

sys-libs/libcxx: Add 19.0.0_pre20240706 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 1faab8b239ff..75ef6ca67280 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,7 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
 DIST llvm-project-022d15c0039fc1cfaa3cc2eb1a45b71bbb21fadd.tar.gz 215902891 BLAKE2B ecd87b84a4e5f87c91b6df0a2d6849f385bdb7b26b14a2836f1e1fc5a69f9f5b441e47b9251174019f62eabe39a243092cd1a175b5da7d7576cdcfd63083cff0 SHA512 7726e253179bfd9e0b93236e3ce1133b421329b0b3496b10c0a0eecde372fb5e55cce737b6b78db13f2d0833bbc92023d95efa54cb2918b12ce9af166bd90ff4
+DIST llvm-project-0b9f2847da79298ed09c29493245113f02b32d9f.tar.gz 216399453 BLAKE2B ed13e6639d40bdda6dbd09eba0cc8e4f82f4f53ce3cff9742e902af1c306c60dcb6d5fb008057829d46bbbde391697726cba2096c52cf1592c00faf1e37430e4 SHA512 a5b0bf59fa228a41f0c904a42b4b96740fc5e5caa63248c546eb4a810e86d5d8d1d8df663051ed4444cc0389ffa6ec12ee5dbf7d94d6211a253319550d7fac1c
 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

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-13  7:46 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-13  7:46 UTC (permalink / raw
  To: gentoo-commits

commit:     5848d600fae46634748c32eba084ee4817561d9a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 13 04:47:24 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 13 07:45:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5848d600

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild | 201 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild | 201 -----------------------
 3 files changed, 404 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 75ef6ca67280..2b102944348e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,5 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
-DIST llvm-project-022d15c0039fc1cfaa3cc2eb1a45b71bbb21fadd.tar.gz 215902891 BLAKE2B ecd87b84a4e5f87c91b6df0a2d6849f385bdb7b26b14a2836f1e1fc5a69f9f5b441e47b9251174019f62eabe39a243092cd1a175b5da7d7576cdcfd63083cff0 SHA512 7726e253179bfd9e0b93236e3ce1133b421329b0b3496b10c0a0eecde372fb5e55cce737b6b78db13f2d0833bbc92023d95efa54cb2918b12ce9af166bd90ff4
 DIST llvm-project-0b9f2847da79298ed09c29493245113f02b32d9f.tar.gz 216399453 BLAKE2B ed13e6639d40bdda6dbd09eba0cc8e4f82f4f53ce3cff9742e902af1c306c60dcb6d5fb008057829d46bbbde391697726cba2096c52cf1592c00faf1e37430e4 SHA512 a5b0bf59fa228a41f0c904a42b4b96740fc5e5caa63248c546eb4a810e86d5d8d1d8df663051ed4444cc0389ffa6ec12ee5dbf7d94d6211a253319550d7fac1c
 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
@@ -10,4 +9,3 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240623.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240630.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240630.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-13 14:15 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-13 14:15 UTC (permalink / raw
  To: gentoo-commits

commit:     fac6ff60afccb544705e4f700536096278a1ac88
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 13 12:55:35 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 13 14:14:53 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fac6ff60

sys-libs/libcxx: Add 19.0.0_pre20240712 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2b102944348e..4bc83b3a173a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,3 +9,4 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
+DIST llvm-project-1bad7024561bc64ed4bfda0772b16376b475eba5.tar.gz 216657623 BLAKE2B 99c48a95c427e8fae5568e5f59ab9bec8b2d8bec0c5d3cf453c261a738fe1c295b34e2e10e6b08d2b02cae43e3b0cd4c8eb025d19a83ee51f47a49afadd56d3f SHA512 08fc904122ab346edbfc3903cafae4f50ba57e146b2d821a568f8378c0f3ab4d413e07c5df2bf061374f9db4634b5f6b27f204fc4f2f68984303ceec9c963c0c

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-20 13:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-20 13:27 UTC (permalink / raw
  To: gentoo-commits

commit:     e25becf3a9edccaf3a7049bfb50578319382ad89
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 20 11:33:20 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 13:27:25 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e25becf3

sys-libs/libcxx: Add 19.0.0_pre20240720 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4bc83b3a173a..da26081b50b1 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-1bad7024561bc64ed4bfda0772b16376b475eba5.tar.gz 216657623 BLAKE2B 99c48a95c427e8fae5568e5f59ab9bec8b2d8bec0c5d3cf453c261a738fe1c295b34e2e10e6b08d2b02cae43e3b0cd4c8eb025d19a83ee51f47a49afadd56d3f SHA512 08fc904122ab346edbfc3903cafae4f50ba57e146b2d821a568f8378c0f3ab4d413e07c5df2bf061374f9db4634b5f6b27f204fc4f2f68984303ceec9c963c0c
+DIST llvm-project-72d8c2737bb557af9d0c735b9fa30b1b03485627.tar.gz 217324958 BLAKE2B d43c161ac98860e2ce03e7e2474c55766e7496200b090ebb1cb6dcf0c2ad3a32bae76249feca53cd8b56c63806a740c280e6306890cd28429c4a7e84cae5eada SHA512 af3b44ec3f96d636d919906cf20547eb91d0a83d07731c9db38f28311a52011d8ec66833422fad9bb89ca9ac546e308b02015a7b365086341bee1f3de1b6c5e2

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-23 12:25 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-07-23 12:25 UTC (permalink / raw
  To: gentoo-commits

commit:     949e9d41a5afe1f1010b9a71bd7071eb2df244e6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 12:23:47 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 12:23:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=949e9d41

sys-libs/libcxx: Stabilize 18.1.8 amd64, #935984

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.1.8.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-18.1.8.ebuild b/sys-libs/libcxx/libcxx-18.1.8.ebuild
index a6fca47e6c29..a4fff765b5e1 100644
--- a/sys-libs/libcxx/libcxx-18.1.8.ebuild
+++ b/sys-libs/libcxx/libcxx-18.1.8.ebuild
@@ -12,7 +12,7 @@ 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"
+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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-23 13:36 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-07-23 13:36 UTC (permalink / raw
  To: gentoo-commits

commit:     d7dc2483a4e0e837272f4b602f990bdcd925d70e
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 13:34:47 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 13:34:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d7dc2483

sys-libs/libcxx: Stabilize 18.1.8 arm, #935984

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.1.8.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-18.1.8.ebuild b/sys-libs/libcxx/libcxx-18.1.8.ebuild
index b79fc1f2461c..92b0c5f762dd 100644
--- a/sys-libs/libcxx/libcxx-18.1.8.ebuild
+++ b/sys-libs/libcxx/libcxx-18.1.8.ebuild
@@ -12,7 +12,7 @@ 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"
+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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-23 13:58 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-07-23 13:58 UTC (permalink / raw
  To: gentoo-commits

commit:     f425039500a6d2e4023db6131809ea77b5de26e5
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 13:56:55 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 13:56:55 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f4250395

sys-libs/libcxx: Stabilize 18.1.8 x86, #935984

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.1.8.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-18.1.8.ebuild b/sys-libs/libcxx/libcxx-18.1.8.ebuild
index 92b0c5f762dd..b6fec4c4d1af 100644
--- a/sys-libs/libcxx/libcxx-18.1.8.ebuild
+++ b/sys-libs/libcxx/libcxx-18.1.8.ebuild
@@ -12,7 +12,7 @@ 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"
+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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-23 14:07 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-23 14:07 UTC (permalink / raw
  To: gentoo-commits

commit:     d2c7467bf06f1037ac8ce8ca8056739ef33c37ae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 14:00:52 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 14:07:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d2c7467b

sys-libs/libcxx: Add 20.x live ebuilds

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-20.0.0.9999.ebuild | 201 ++++++++++++++++++++++++++++++
 1 file changed, 201 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-23 14:11 Sam James
  0 siblings, 0 replies; 608+ messages in thread
From: Sam James @ 2024-07-23 14:11 UTC (permalink / raw
  To: gentoo-commits

commit:     6e76a7bc20d2ed9b40b139965e27f86028bcd3ba
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 23 14:10:12 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 23 14:10:12 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e76a7bc

sys-libs/libcxx: Stabilize 18.1.8 sparc, #935984

Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-libs/libcxx/libcxx-18.1.8.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-18.1.8.ebuild b/sys-libs/libcxx/libcxx-18.1.8.ebuild
index b6fec4c4d1af..372665da52df 100644
--- a/sys-libs/libcxx/libcxx-18.1.8.ebuild
+++ b/sys-libs/libcxx/libcxx-18.1.8.ebuild
@@ -12,7 +12,7 @@ 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"
+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 )"


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-27  7:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-27  7:27 UTC (permalink / raw
  To: gentoo-commits

commit:     e1124a2c5fde5b3aaa7ba213256f6fee35273ecb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 27 07:20:45 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 27 07:20:45 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1124a2c

sys-libs/libcxx: Add 19.1.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-19.1.0_rc1.ebuild | 201 +++++++++++++++++++++++++++++++
 2 files changed, 203 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index da26081b50b1..4b8d0d26035e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -9,5 +9,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
+DIST llvm-project-19.1.0-rc1.src.tar.xz 141259912 BLAKE2B e882ff54a96900b4948e572cf073c897df6b4ce159869a42c56a4c830187d83b8d9d9b3940dad22346f142f9674575191cc9d079312f0d9aa1105390c07f504f SHA512 9f43dbe8d5f1322f73fb1c638ce4fc7a8179c9ca33fdbfbb6d72632a3d6bf4bc4993f8f5ec827510af55f4f013fba8fe3d7d9e45f262eec16ecf9ab39296b4b8
+DIST llvm-project-19.1.0-rc1.src.tar.xz.sig 438 BLAKE2B cc1acbd33440bb14f78c19cc3061a5c0cb3d9dbcd6f0d1516fe118ac02c500ba4df129f870ddf3fe1a52519feab4b631866413fce9c726272d52c3865a9eea27 SHA512 a3361992b55be13aeff5d91bb90a15e3a2ab89e486328fa4d9abc9efa3925aee70bea48449b003ae1926909d389bf71afcf6dc56d800ed2e0e3dbc65da6e4e92
 DIST llvm-project-1bad7024561bc64ed4bfda0772b16376b475eba5.tar.gz 216657623 BLAKE2B 99c48a95c427e8fae5568e5f59ab9bec8b2d8bec0c5d3cf453c261a738fe1c295b34e2e10e6b08d2b02cae43e3b0cd4c8eb025d19a83ee51f47a49afadd56d3f SHA512 08fc904122ab346edbfc3903cafae4f50ba57e146b2d821a568f8378c0f3ab4d413e07c5df2bf061374f9db4634b5f6b27f204fc4f2f68984303ceec9c963c0c
 DIST llvm-project-72d8c2737bb557af9d0c735b9fa30b1b03485627.tar.gz 217324958 BLAKE2B d43c161ac98860e2ce03e7e2474c55766e7496200b090ebb1cb6dcf0c2ad3a32bae76249feca53cd8b56c63806a740c280e6306890cd28429c4a7e84cae5eada SHA512 af3b44ec3f96d636d919906cf20547eb91d0a83d07731c9db38f28311a52011d8ec66833422fad9bb89ca9ac546e308b02015a7b365086341bee1f3de1b6c5e2

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc1.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc1.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.0_rc1.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-07-27  7:27 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-07-27  7:27 UTC (permalink / raw
  To: gentoo-commits

commit:     e443751b81552e4262bdc615b3568206e33b15f6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 27 07:21:36 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 27 07:21:36 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e443751b

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-19.0.0.9999.ebuild        | 201 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild | 201 -----------------------
 sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild | 201 -----------------------
 4 files changed, 605 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 4b8d0d26035e..6ee4f023222b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,5 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
-DIST llvm-project-0b9f2847da79298ed09c29493245113f02b32d9f.tar.gz 216399453 BLAKE2B ed13e6639d40bdda6dbd09eba0cc8e4f82f4f53ce3cff9742e902af1c306c60dcb6d5fb008057829d46bbbde391697726cba2096c52cf1592c00faf1e37430e4 SHA512 a5b0bf59fa228a41f0c904a42b4b96740fc5e5caa63248c546eb4a810e86d5d8d1d8df663051ed4444cc0389ffa6ec12ee5dbf7d94d6211a253319550d7fac1c
 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
@@ -11,5 +10,4 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc1.src.tar.xz 141259912 BLAKE2B e882ff54a96900b4948e572cf073c897df6b4ce159869a42c56a4c830187d83b8d9d9b3940dad22346f142f9674575191cc9d079312f0d9aa1105390c07f504f SHA512 9f43dbe8d5f1322f73fb1c638ce4fc7a8179c9ca33fdbfbb6d72632a3d6bf4bc4993f8f5ec827510af55f4f013fba8fe3d7d9e45f262eec16ecf9ab39296b4b8
 DIST llvm-project-19.1.0-rc1.src.tar.xz.sig 438 BLAKE2B cc1acbd33440bb14f78c19cc3061a5c0cb3d9dbcd6f0d1516fe118ac02c500ba4df129f870ddf3fe1a52519feab4b631866413fce9c726272d52c3865a9eea27 SHA512 a3361992b55be13aeff5d91bb90a15e3a2ab89e486328fa4d9abc9efa3925aee70bea48449b003ae1926909d389bf71afcf6dc56d800ed2e0e3dbc65da6e4e92
-DIST llvm-project-1bad7024561bc64ed4bfda0772b16376b475eba5.tar.gz 216657623 BLAKE2B 99c48a95c427e8fae5568e5f59ab9bec8b2d8bec0c5d3cf453c261a738fe1c295b34e2e10e6b08d2b02cae43e3b0cd4c8eb025d19a83ee51f47a49afadd56d3f SHA512 08fc904122ab346edbfc3903cafae4f50ba57e146b2d821a568f8378c0f3ab4d413e07c5df2bf061374f9db4634b5f6b27f204fc4f2f68984303ceec9c963c0c
 DIST llvm-project-72d8c2737bb557af9d0c735b9fa30b1b03485627.tar.gz 217324958 BLAKE2B d43c161ac98860e2ce03e7e2474c55766e7496200b090ebb1cb6dcf0c2ad3a32bae76249feca53cd8b56c63806a740c280e6306890cd28429c4a7e84cae5eada SHA512 af3b44ec3f96d636d919906cf20547eb91d0a83d07731c9db38f28311a52011d8ec66833422fad9bb89ca9ac546e308b02015a7b365086341bee1f3de1b6c5e2

diff --git a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0.9999.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240706.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240706.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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_pre20240712.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240712.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-01 20:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-01 20:20 UTC (permalink / raw
  To: gentoo-commits

commit:     ae02e5d7af8c0c6f61a2dc4a40e97200116ccdb8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  1 19:30:07 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug  1 20:20:06 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae02e5d7

sys-libs/libcxx: Add 20.0.0_pre20240801 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240801.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 6ee4f023222b..af0c093c0d8b 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-project-130c135689ec12ab78c53645808524a8d28f7cae.tar.gz 217788932 BLAKE2B 9ba8ad82597780f24e750272f9439d1e8d464813a607efec4920a13473103975bc181506dcc15c76a6e4ca83622284b77a7903e36aff6145719529630121cf0b SHA512 d9c67155f462e53968ec448e325b35a80c0d207039dd7155568fa366aa1894bc8dfaa2d5c03a67320bdefb1934720a1d23bc4b972c9fae3ff09c7a79d885c53d
 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

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240801.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240801.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240801.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-01 20:20 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-01 20:20 UTC (permalink / raw
  To: gentoo-commits

commit:     b66aea2b9a9ca65699e60d5006450a2987e2ea12
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  1 19:31:47 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug  1 20:20:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b66aea2b

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 -
 sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild | 201 -----------------------
 2 files changed, 202 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index af0c093c0d8b..9c557a28693a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,4 +11,3 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc1.src.tar.xz 141259912 BLAKE2B e882ff54a96900b4948e572cf073c897df6b4ce159869a42c56a4c830187d83b8d9d9b3940dad22346f142f9674575191cc9d079312f0d9aa1105390c07f504f SHA512 9f43dbe8d5f1322f73fb1c638ce4fc7a8179c9ca33fdbfbb6d72632a3d6bf4bc4993f8f5ec827510af55f4f013fba8fe3d7d9e45f262eec16ecf9ab39296b4b8
 DIST llvm-project-19.1.0-rc1.src.tar.xz.sig 438 BLAKE2B cc1acbd33440bb14f78c19cc3061a5c0cb3d9dbcd6f0d1516fe118ac02c500ba4df129f870ddf3fe1a52519feab4b631866413fce9c726272d52c3865a9eea27 SHA512 a3361992b55be13aeff5d91bb90a15e3a2ab89e486328fa4d9abc9efa3925aee70bea48449b003ae1926909d389bf71afcf6dc56d800ed2e0e3dbc65da6e4e92
-DIST llvm-project-72d8c2737bb557af9d0c735b9fa30b1b03485627.tar.gz 217324958 BLAKE2B d43c161ac98860e2ce03e7e2474c55766e7496200b090ebb1cb6dcf0c2ad3a32bae76249feca53cd8b56c63806a740c280e6306890cd28429c4a7e84cae5eada SHA512 af3b44ec3f96d636d919906cf20547eb91d0a83d07731c9db38f28311a52011d8ec66833422fad9bb89ca9ac546e308b02015a7b365086341bee1f3de1b6c5e2

diff --git a/sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild b/sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.0.0_pre20240720.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-05 18:36 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-05 18:36 UTC (permalink / raw
  To: gentoo-commits

commit:     edf30179613ac834eca998b2ba1126f011e289cd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  5 18:22:32 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Aug  5 18:22:32 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=edf30179

sys-libs/libcxx: Add 19.1.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild | 201 +++++++++++++++++++++++++++++++
 2 files changed, 203 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 9c557a28693a..43236149f39a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,5 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc1.src.tar.xz 141259912 BLAKE2B e882ff54a96900b4948e572cf073c897df6b4ce159869a42c56a4c830187d83b8d9d9b3940dad22346f142f9674575191cc9d079312f0d9aa1105390c07f504f SHA512 9f43dbe8d5f1322f73fb1c638ce4fc7a8179c9ca33fdbfbb6d72632a3d6bf4bc4993f8f5ec827510af55f4f013fba8fe3d7d9e45f262eec16ecf9ab39296b4b8
 DIST llvm-project-19.1.0-rc1.src.tar.xz.sig 438 BLAKE2B cc1acbd33440bb14f78c19cc3061a5c0cb3d9dbcd6f0d1516fe118ac02c500ba4df129f870ddf3fe1a52519feab4b631866413fce9c726272d52c3865a9eea27 SHA512 a3361992b55be13aeff5d91bb90a15e3a2ab89e486328fa4d9abc9efa3925aee70bea48449b003ae1926909d389bf71afcf6dc56d800ed2e0e3dbc65da6e4e92
+DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780 SHA512 508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
+DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-08 19:26 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-08 19:26 UTC (permalink / raw
  To: gentoo-commits

commit:     a34d29682d7b5ebf76359c5a0bbfceb5ae2fddcb
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug  8 19:00:16 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug  8 19:26:04 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a34d2968

sys-libs/libcxx: Add 20.0.0_pre20240808 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 43236149f39a..b6b1b6d1a392 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -13,3 +13,4 @@ DIST llvm-project-19.1.0-rc1.src.tar.xz 141259912 BLAKE2B e882ff54a96900b4948e57
 DIST llvm-project-19.1.0-rc1.src.tar.xz.sig 438 BLAKE2B cc1acbd33440bb14f78c19cc3061a5c0cb3d9dbcd6f0d1516fe118ac02c500ba4df129f870ddf3fe1a52519feab4b631866413fce9c726272d52c3865a9eea27 SHA512 a3361992b55be13aeff5d91bb90a15e3a2ab89e486328fa4d9abc9efa3925aee70bea48449b003ae1926909d389bf71afcf6dc56d800ed2e0e3dbc65da6e4e92
 DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780 SHA512 508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
 DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
+DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 BLAKE2B a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277 SHA512 c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-15 20:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-15 20:01 UTC (permalink / raw
  To: gentoo-commits

commit:     9ec6556ddc916065e0d867a0622da4dd1abe05df
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 15 19:16:44 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 15 20:01:41 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ec6556d

sys-libs/libcxx: Add 20.0.0_pre20240815 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index a46d4de3c205..c77b759dbeb5 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,4 +10,5 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780 SHA512 508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
 DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
+DIST llvm-project-db8ef6188cbbe2125e6d60bdef77a535105772df.tar.gz 218416682 BLAKE2B 691e3881e4a60c008c6b766b51ecc856122de1f40242ff1d91ebaa12682fea0a22f84783eb930c42d196f50ba0d3b2010f9010ed73ee7e292fe78c93d6e3f324 SHA512 2dc16a603b60607cc3daee2de0126a567a78c4fff72b2fbcb94c82472bc5ec64ac354ba8592b9a643248a5bfd43b34e2a60f2751a0c9e9e28b7f895fc50a5e9d
 DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 BLAKE2B a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277 SHA512 c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-20 15:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-20 15:40 UTC (permalink / raw
  To: gentoo-commits

commit:     732194ce42de27215441a0d886a69983a305e8b9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 20 14:51:29 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 20 15:40:29 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=732194ce

sys-libs/libcxx: Add 19.1.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild | 201 +++++++++++++++++++++++++++++++
 2 files changed, 203 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c77b759dbeb5..dd2fdf7efd98 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780 SHA512 508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
 DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
+DIST llvm-project-19.1.0-rc3.src.tar.xz 141250388 BLAKE2B 6530bede000d2e4b8ce10b445bfc1f81dc25c2d7121fc953581cd9b6989b3ba197707cd79d3c7b94c055bf2e21b0d07ab3cb401d3f73d22eefba6da4b71dca7b SHA512 3ee4eab848e5e38c396e6f5addf5eb42570d451fc8e7cd77150dc5542f8f710f4a9db51836f7a799996dd1b8194defe4d58efe7c19e5d5e1c5f3dbdda94c0cf3
+DIST llvm-project-19.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 86bad4d4fb805340096473bc603d7a3483f030f62b6f52b64d12c33561fbbb999c2ab69cc94857a32747492c846a5ab631a84da200b03475fd401335373bbccf SHA512 ef0fd2e3e7069fbfd410cbcf71294d1b7182456330ff151348058b5cb0f292edaecb9dcbf613ee4fc979214a23bd3bb8077d71e674635359da36b938dc143266
 DIST llvm-project-db8ef6188cbbe2125e6d60bdef77a535105772df.tar.gz 218416682 BLAKE2B 691e3881e4a60c008c6b766b51ecc856122de1f40242ff1d91ebaa12682fea0a22f84783eb930c42d196f50ba0d3b2010f9010ed73ee7e292fe78c93d6e3f324 SHA512 2dc16a603b60607cc3daee2de0126a567a78c4fff72b2fbcb94c82472bc5ec64ac354ba8592b9a643248a5bfd43b34e2a60f2751a0c9e9e28b7f895fc50a5e9d
 DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 BLAKE2B a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277 SHA512 c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-22 11:23 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-22 11:23 UTC (permalink / raw
  To: gentoo-commits

commit:     bb3317c4708d465c3d056a48ea03084c8f9d73be
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 22 11:16:23 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 22 11:23:43 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb3317c4

sys-libs/libcxx: Add 20.0.0_pre20240822 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index dd2fdf7efd98..40360c06137a 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,5 +12,6 @@ DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990
 DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
 DIST llvm-project-19.1.0-rc3.src.tar.xz 141250388 BLAKE2B 6530bede000d2e4b8ce10b445bfc1f81dc25c2d7121fc953581cd9b6989b3ba197707cd79d3c7b94c055bf2e21b0d07ab3cb401d3f73d22eefba6da4b71dca7b SHA512 3ee4eab848e5e38c396e6f5addf5eb42570d451fc8e7cd77150dc5542f8f710f4a9db51836f7a799996dd1b8194defe4d58efe7c19e5d5e1c5f3dbdda94c0cf3
 DIST llvm-project-19.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 86bad4d4fb805340096473bc603d7a3483f030f62b6f52b64d12c33561fbbb999c2ab69cc94857a32747492c846a5ab631a84da200b03475fd401335373bbccf SHA512 ef0fd2e3e7069fbfd410cbcf71294d1b7182456330ff151348058b5cb0f292edaecb9dcbf613ee4fc979214a23bd3bb8077d71e674635359da36b938dc143266
+DIST llvm-project-503907dc505db1e439e7061113bf84dd105f2e35.tar.gz 218750576 BLAKE2B 40904dbf62cffe9cb757cc1382a765d5c89791948e86bfa4fbdc5a78ebc11cc82588bc730e6c5c84b6d84922cd32290df0146733a013ffa4e408b8a7c2313a1f SHA512 a121cca2ef49c6b25f137e66d23d332d2f9e3bd0d349b1202b6869f7c85a141aecfe20a6c4d4eff84e32a243216740f20114968589207d39df229daf6443ba0d
 DIST llvm-project-db8ef6188cbbe2125e6d60bdef77a535105772df.tar.gz 218416682 BLAKE2B 691e3881e4a60c008c6b766b51ecc856122de1f40242ff1d91ebaa12682fea0a22f84783eb930c42d196f50ba0d3b2010f9010ed73ee7e292fe78c93d6e3f324 SHA512 2dc16a603b60607cc3daee2de0126a567a78c4fff72b2fbcb94c82472bc5ec64ac354ba8592b9a643248a5bfd43b34e2a60f2751a0c9e9e28b7f895fc50a5e9d
 DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 BLAKE2B a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277 SHA512 c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-27 13:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-27 13:19 UTC (permalink / raw
  To: gentoo-commits

commit:     36e8c5fd15a60deac8c98b1caaac0ee6dcaa5681
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 27 13:16:46 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 27 13:16:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36e8c5fd

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild         | 201 -----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild | 201 -----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild | 201 -----------------------
 4 files changed, 607 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 40360c06137a..2e222d79ecf9 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,10 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780 SHA512 508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
-DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
 DIST llvm-project-19.1.0-rc3.src.tar.xz 141250388 BLAKE2B 6530bede000d2e4b8ce10b445bfc1f81dc25c2d7121fc953581cd9b6989b3ba197707cd79d3c7b94c055bf2e21b0d07ab3cb401d3f73d22eefba6da4b71dca7b SHA512 3ee4eab848e5e38c396e6f5addf5eb42570d451fc8e7cd77150dc5542f8f710f4a9db51836f7a799996dd1b8194defe4d58efe7c19e5d5e1c5f3dbdda94c0cf3
 DIST llvm-project-19.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 86bad4d4fb805340096473bc603d7a3483f030f62b6f52b64d12c33561fbbb999c2ab69cc94857a32747492c846a5ab631a84da200b03475fd401335373bbccf SHA512 ef0fd2e3e7069fbfd410cbcf71294d1b7182456330ff151348058b5cb0f292edaecb9dcbf613ee4fc979214a23bd3bb8077d71e674635359da36b938dc143266
 DIST llvm-project-503907dc505db1e439e7061113bf84dd105f2e35.tar.gz 218750576 BLAKE2B 40904dbf62cffe9cb757cc1382a765d5c89791948e86bfa4fbdc5a78ebc11cc82588bc730e6c5c84b6d84922cd32290df0146733a013ffa4e408b8a7c2313a1f SHA512 a121cca2ef49c6b25f137e66d23d332d2f9e3bd0d349b1202b6869f7c85a141aecfe20a6c4d4eff84e32a243216740f20114968589207d39df229daf6443ba0d
-DIST llvm-project-db8ef6188cbbe2125e6d60bdef77a535105772df.tar.gz 218416682 BLAKE2B 691e3881e4a60c008c6b766b51ecc856122de1f40242ff1d91ebaa12682fea0a22f84783eb930c42d196f50ba0d3b2010f9010ed73ee7e292fe78c93d6e3f324 SHA512 2dc16a603b60607cc3daee2de0126a567a78c4fff72b2fbcb94c82472bc5ec64ac354ba8592b9a643248a5bfd43b34e2a60f2751a0c9e9e28b7f895fc50a5e9d
-DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 BLAKE2B a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277 SHA512 c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.1.0_rc2.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20240808.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240808.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20240815.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240815.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-08-31  8:33 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-08-31  8:33 UTC (permalink / raw
  To: gentoo-commits

commit:     6c892a30a3520bec83d60e761a2f5f63cf7d32b5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 31 08:29:42 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 31 08:32:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c892a30

sys-libs/libcxx: Add 20.0.0_pre20240830 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild | 201 +++++++++++++++++++++++
 2 files changed, 202 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 2e222d79ecf9..c5ee477094a4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.0-rc3.src.tar.xz 141250388 BLAKE2B 6530bede000d2e4b8ce10b445bfc1f81dc25c2d7121fc953581cd9b6989b3ba197707cd79d3c7b94c055bf2e21b0d07ab3cb401d3f73d22eefba6da4b71dca7b SHA512 3ee4eab848e5e38c396e6f5addf5eb42570d451fc8e7cd77150dc5542f8f710f4a9db51836f7a799996dd1b8194defe4d58efe7c19e5d5e1c5f3dbdda94c0cf3
 DIST llvm-project-19.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 86bad4d4fb805340096473bc603d7a3483f030f62b6f52b64d12c33561fbbb999c2ab69cc94857a32747492c846a5ab631a84da200b03475fd401335373bbccf SHA512 ef0fd2e3e7069fbfd410cbcf71294d1b7182456330ff151348058b5cb0f292edaecb9dcbf613ee4fc979214a23bd3bb8077d71e674635359da36b938dc143266
 DIST llvm-project-503907dc505db1e439e7061113bf84dd105f2e35.tar.gz 218750576 BLAKE2B 40904dbf62cffe9cb757cc1382a765d5c89791948e86bfa4fbdc5a78ebc11cc82588bc730e6c5c84b6d84922cd32290df0146733a013ffa4e408b8a7c2313a1f SHA512 a121cca2ef49c6b25f137e66d23d332d2f9e3bd0d349b1202b6869f7c85a141aecfe20a6c4d4eff84e32a243216740f20114968589207d39df229daf6443ba0d
+DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-03 19:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-03 19:45 UTC (permalink / raw
  To: gentoo-commits

commit:     3ac8fb686089982fad424bd3a4775dd8373cf29a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  3 19:41:50 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  3 19:45:00 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3ac8fb68

sys-libs/libcxx: Add 19.1.0_rc4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                 |   2 +
 sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild | 201 +++++++++++++++++++++++++++++++
 2 files changed, 203 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c5ee477094a4..10bb0f338353 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc3.src.tar.xz 141250388 BLAKE2B 6530bede000d2e4b8ce10b445bfc1f81dc25c2d7121fc953581cd9b6989b3ba197707cd79d3c7b94c055bf2e21b0d07ab3cb401d3f73d22eefba6da4b71dca7b SHA512 3ee4eab848e5e38c396e6f5addf5eb42570d451fc8e7cd77150dc5542f8f710f4a9db51836f7a799996dd1b8194defe4d58efe7c19e5d5e1c5f3dbdda94c0cf3
 DIST llvm-project-19.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 86bad4d4fb805340096473bc603d7a3483f030f62b6f52b64d12c33561fbbb999c2ab69cc94857a32747492c846a5ab631a84da200b03475fd401335373bbccf SHA512 ef0fd2e3e7069fbfd410cbcf71294d1b7182456330ff151348058b5cb0f292edaecb9dcbf613ee4fc979214a23bd3bb8077d71e674635359da36b938dc143266
+DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
+DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
 DIST llvm-project-503907dc505db1e439e7061113bf84dd105f2e35.tar.gz 218750576 BLAKE2B 40904dbf62cffe9cb757cc1382a765d5c89791948e86bfa4fbdc5a78ebc11cc82588bc730e6c5c84b6d84922cd32290df0146733a013ffa4e408b8a7c2313a1f SHA512 a121cca2ef49c6b25f137e66d23d332d2f9e3bd0d349b1202b6869f7c85a141aecfe20a6c4d4eff84e32a243216740f20114968589207d39df229daf6443ba0d
 DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild
new file mode 100644
index 000000000000..a0d07e1507f4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild
@@ -0,0 +1,201 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-10  7:10 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-10  7:10 UTC (permalink / raw
  To: gentoo-commits

commit:     6e386478889ca869f2d229d1b9ce74f500eb20e7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 10 07:08:44 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 07:08:44 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e386478

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild         | 201 -----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild | 201 -----------------------
 3 files changed, 405 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 10bb0f338353..55f6746e37ca 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,9 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.0-rc3.src.tar.xz 141250388 BLAKE2B 6530bede000d2e4b8ce10b445bfc1f81dc25c2d7121fc953581cd9b6989b3ba197707cd79d3c7b94c055bf2e21b0d07ab3cb401d3f73d22eefba6da4b71dca7b SHA512 3ee4eab848e5e38c396e6f5addf5eb42570d451fc8e7cd77150dc5542f8f710f4a9db51836f7a799996dd1b8194defe4d58efe7c19e5d5e1c5f3dbdda94c0cf3
-DIST llvm-project-19.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 86bad4d4fb805340096473bc603d7a3483f030f62b6f52b64d12c33561fbbb999c2ab69cc94857a32747492c846a5ab631a84da200b03475fd401335373bbccf SHA512 ef0fd2e3e7069fbfd410cbcf71294d1b7182456330ff151348058b5cb0f292edaecb9dcbf613ee4fc979214a23bd3bb8077d71e674635359da36b938dc143266
 DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
 DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
-DIST llvm-project-503907dc505db1e439e7061113bf84dd105f2e35.tar.gz 218750576 BLAKE2B 40904dbf62cffe9cb757cc1382a765d5c89791948e86bfa4fbdc5a78ebc11cc82588bc730e6c5c84b6d84922cd32290df0146733a013ffa4e408b8a7c2313a1f SHA512 a121cca2ef49c6b25f137e66d23d332d2f9e3bd0d349b1202b6869f7c85a141aecfe20a6c4d4eff84e32a243216740f20114968589207d39df229daf6443ba0d
 DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.1.0_rc3.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20240822.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240822.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-10 12:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-10 12:58 UTC (permalink / raw
  To: gentoo-commits

commit:     4c0df1554143725d5059079b9938f0cdab1350d1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 10 11:44:56 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 12:58:40 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c0df155

sys-libs/libcxx: Update for temporary install test-suite install

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-20.0.0.9999.ebuild | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
index a0d07e1507f4..43c213cc6426 100644
--- a/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
@@ -144,6 +144,11 @@ multilib_src_compile() {
 
 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
 }
 


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-10 12:58 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-10 12:58 UTC (permalink / raw
  To: gentoo-commits

commit:     ff91e27fc8a46a05c8dae6daf917505143bdce44
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 10 11:45:31 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 10 12:58:52 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ff91e27f

sys-libs/libcxx: Add 20.0.0_pre20240910 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild | 206 +++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 55f6746e37ca..b7e2286d6b9e 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
 DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
 DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
+DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild
new file mode 100644
index 000000000000..43c213cc6426
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-17 12:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-17 12:13 UTC (permalink / raw
  To: gentoo-commits

commit:     a658cdcc3008de1fa76a6d763413c50867a5779f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 17 09:56:57 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 17 12:12:57 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a658cdcc

sys-libs/libcxx: Add 20.0.0_pre20240917 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild | 206 +++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index b7e2286d6b9e..7987d237e330 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,6 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
 DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
+DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
 DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
 DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild
new file mode 100644
index 000000000000..43c213cc6426
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-24  5:31 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-24  5:31 UTC (permalink / raw
  To: gentoo-commits

commit:     bad27755ec3ea1da085b8f352301b9da99023ec5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 24 05:04:37 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 24 05:31:43 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bad27755

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild         | 201 ----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild | 201 ----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild | 206 -----------------------
 4 files changed, 612 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 64c22660a3d8..164358dffbe6 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,10 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.0-rc4.src.tar.xz 141255904 BLAKE2B c693dc94aeb4b59ad4a05a426037075449535c398cbc1ae9b4371d42ea0962b267a3be8af93f4fe47b21c11964fbea6e8eb662225e6f79b20bbc35e706588435 SHA512 826978a596b26040124f2ceba858f91031f78faca22f32de2eea1a4d299a849dcb1fffdfb01601adc39d733dd0cdee43b21af05159d45dcebc842f6b6b540ba8
-DIST llvm-project-19.1.0-rc4.src.tar.xz.sig 438 BLAKE2B aef02737285d2faa1b21cec1a32fff6e776ac4bb5c4fd6f26d3d1a9b9244ed1fc0a1eb786a444a6549dda8683485f67964b4d4e48393e1780e7938ee0d94348a SHA512 5b9dcbf232229fdd87824bc87d0ad4ebd54127c9288708fb3304166422d378b77a843d7c5d8258850a0de59310c24e65042d636a5314e2af8513627a43bdb6e8
 DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
 DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
 DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
-DIST llvm-project-5500e21942f7047344b6fee62d3e08c0ba2f9182.tar.gz 219148250 BLAKE2B 61880a13086c46ac9a9f8326b1e007146afb1662a0a223703fe36a91da230d5708b368f1177e76ac13c1e5a30f620c4ce6346484a0a67a0f011a816bba4d13f9 SHA512 a6d4fcae960b450be2abd2da485cea638b73290b17ceeabf560651d614f55925f86ee6f76a116262d8a1ff70ba699468cb4cf4c32015e26540ba6e47c58db1b7
-DIST llvm-project-bece0d7517bd0a036dc8a319514e4a8a5c497dee.tar.gz 218241938 BLAKE2B 7ac08a21ab2899823683dc700bd2f6226e22653f5be553fe0278868f9fa0d8946fabe6aae40f68cfd14e019b1a3795affb64bf41ebcc949394b73a90e7cd019c SHA512 8893512dcbc1171d2c91aeb0aa9e5fd424474c4d6b5215fb1a078dc8757ab2d404b55ed90709e09368e0794c8306f489be8339d5c502dd6c2ef1852e24636e85

diff --git a/sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild b/sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-19.1.0_rc4.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20240830.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild
deleted file mode 100644
index a0d07e1507f4..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240830.ebuild
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20240910.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild
deleted file mode 100644
index 43c213cc6426..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240910.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-		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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-09-24 18:02 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-09-24 18:02 UTC (permalink / raw
  To: gentoo-commits

commit:     fc087185149ddd4ddd77d39040d96b8eac05f018
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 24 17:36:26 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 24 18:02:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc087185

sys-libs/libcxx: Add 20.0.0_pre20240924 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild | 206 +++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 164358dffbe6..fd07c627de42 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,3 +11,4 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
 DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
 DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
+DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild
new file mode 100644
index 000000000000..43c213cc6426
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-01 19:19 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-01 19:19 UTC (permalink / raw
  To: gentoo-commits

commit:     fcdb363407df4ddb2417de6f26313d4f2552f5ad
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct  1 19:18:13 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct  1 19:18:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fcdb3634

sys-libs/libcxx: Add 19.1.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-19.1.1.ebuild | 202 +++++++++++++++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index fd07c627de42..d12bb6616f61 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
 DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
+DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
+DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
 DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
 DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f

diff --git a/sys-libs/libcxx/libcxx-19.1.1.ebuild b/sys-libs/libcxx/libcxx-19.1.1.ebuild
new file mode 100644
index 000000000000..80dbe207d4c4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.1.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-04 19:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-04 19:40 UTC (permalink / raw
  To: gentoo-commits

commit:     8777623903c00ef4a4dd646a43b36ea272d9609f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  4 19:00:04 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  4 19:40:28 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87776239

sys-libs/libcxx: Add 20.0.0_pre20241004 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild | 206 +++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index d12bb6616f61..c0a604870137 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -13,4 +13,5 @@ DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a
 DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
 DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
 DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
+DIST llvm-project-b837c9e289dab93c7f8a06876e3f70b6864f40ab.tar.gz 219631219 BLAKE2B d8a5d7de537ad91e94fc85dc0f624eba92f31cab2a345706250a66ad424fff151d5b86c430d993a35fd938095774411080cee4cab47a8258af348743dc145b56 SHA512 fe23f72b73553e3755af335a2a2a2225eafdcf2ed93191c9f4ac7bcf7b5b5391f73c2dccbb082279e0c7389a8f12b889a8d061389785cf9219ca861a8d4b41cc
 DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild
new file mode 100644
index 000000000000..43c213cc6426
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-04 19:40 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-04 19:40 UTC (permalink / raw
  To: gentoo-commits

commit:     f8555fab5b1df79f036afef01e15981d93c74559
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  4 19:03:53 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  4 19:40:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f8555fab

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-19.1.0.ebuild             | 202 ----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild | 206 -----------------------
 3 files changed, 411 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c0a604870137..91c2224b7f1d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,10 +8,7 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.0.src.tar.xz 141244872 BLAKE2B 972d028599006d528acdb0ff107b30af8bef247a0f174991646d07f0a47e7d237a5a1700ae668a9f4496295535d688eeeebe550669e78b0775aaab044f5b268e SHA512 396b34886f8442eeb5bc23152e8c2577e834d88f1d21a67829f9ca651b77c5ceb32df4e70c34dc1e6fea24abe45fa00f08502628de25fdbf32864f5b9066d23d
-DIST llvm-project-19.1.0.src.tar.xz.sig 438 BLAKE2B b044fcc6f331e75f9340e390ef8a95242a7f74e7c9835e67161fc4dd0ba0a8a5400e8ec4efd0fe50d2a9a9d950d0b37d5c0725868f450619b161a36ebded6a67 SHA512 d596d4942750818f489f114ff953a2b27e220abcf132d4d4ce0d910b73dfc283262507fc35cc0b61363c4af22cb9112dd7a662a89ea4b9667827fa1bde6785ed
 DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
 DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
-DIST llvm-project-41f1b467a29d2ca4e35df37c3aa79a0a8c04bc4f.tar.gz 218633363 BLAKE2B 9367923a4257e0ce01cf443eca790a567c6d9224126ebff15849c829f04dbac39aee60de1f28eab71ee4143341105c46466e1983e0f2a1a478e75fd5363a8d02 SHA512 eca094df135f184e2c3a42a3984ac353b7a8286446da80f042aef8047761f5f5cc6eeccb9bff6056ff0ddd1babe31a468e279b028b9618364f88ae9f26053c22
 DIST llvm-project-b837c9e289dab93c7f8a06876e3f70b6864f40ab.tar.gz 219631219 BLAKE2B d8a5d7de537ad91e94fc85dc0f624eba92f31cab2a345706250a66ad424fff151d5b86c430d993a35fd938095774411080cee4cab47a8258af348743dc145b56 SHA512 fe23f72b73553e3755af335a2a2a2225eafdcf2ed93191c9f4ac7bcf7b5b5391f73c2dccbb082279e0c7389a8f12b889a8d061389785cf9219ca861a8d4b41cc
 DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f

diff --git a/sys-libs/libcxx/libcxx-19.1.0.ebuild b/sys-libs/libcxx/libcxx-19.1.0.ebuild
deleted file mode 100644
index 80dbe207d4c4..000000000000
--- a/sys-libs/libcxx/libcxx-19.1.0.ebuild
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20240917.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild
deleted file mode 100644
index 43c213cc6426..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240917.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-		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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-09 11:45 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-09 11:45 UTC (permalink / raw
  To: gentoo-commits

commit:     55ad2afd2e91eef5c0ee70eb1e38919e50478fc3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  9 11:28:23 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  9 11:45:38 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=55ad2afd

sys-libs/libcxx: Add 20.0.0_pre20241009 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild | 206 +++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 91c2224b7f1d..7e07bbef33dd 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,3 +12,4 @@ DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269e
 DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
 DIST llvm-project-b837c9e289dab93c7f8a06876e3f70b6864f40ab.tar.gz 219631219 BLAKE2B d8a5d7de537ad91e94fc85dc0f624eba92f31cab2a345706250a66ad424fff151d5b86c430d993a35fd938095774411080cee4cab47a8258af348743dc145b56 SHA512 fe23f72b73553e3755af335a2a2a2225eafdcf2ed93191c9f4ac7bcf7b5b5391f73c2dccbb082279e0c7389a8f12b889a8d061389785cf9219ca861a8d4b41cc
 DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f
+DIST llvm-project-fb2960aad93f6c02e0ea8de0568c0aef8896eee8.tar.gz 219704020 BLAKE2B 91f7226d7c6dcfa82c6b892ec0a80b47b5abd435c39996d8a6e0611355d434a86eb42bd5dce849dcc9a2f0ed2ae9844e5672f45283984ad10c7c12c62c82d47b SHA512 f0b56a4ab532aaf4bb841aac4e2faf63f213f3cd71d24555b46805406502805e6cc46cb0aae0fbf5f49ddec99da801ab8e54410a9bd8a7bcb0e9fb13619c30bf

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild
new file mode 100644
index 000000000000..43c213cc6426
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-15  7:17 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-15  7:17 UTC (permalink / raw
  To: gentoo-commits

commit:     aa5604186d9b160210536a75d99d294ade0a6c07
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 15 07:02:41 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 15 07:17:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa560418

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   2 -
 sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild | 206 -----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild | 206 -----------------------
 3 files changed, 414 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 7e07bbef33dd..52371b12f268 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,6 +10,4 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
 DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
-DIST llvm-project-b837c9e289dab93c7f8a06876e3f70b6864f40ab.tar.gz 219631219 BLAKE2B d8a5d7de537ad91e94fc85dc0f624eba92f31cab2a345706250a66ad424fff151d5b86c430d993a35fd938095774411080cee4cab47a8258af348743dc145b56 SHA512 fe23f72b73553e3755af335a2a2a2225eafdcf2ed93191c9f4ac7bcf7b5b5391f73c2dccbb082279e0c7389a8f12b889a8d061389785cf9219ca861a8d4b41cc
-DIST llvm-project-cde7b30268a85a3e7900a31534a97e7eb4de9236.tar.gz 219048549 BLAKE2B 53bdfea814b2cdf60bfdd27f6135b9f9d5156bdc78d22a361214399c5101b6fafaaefb9109377c1d977c67ebcb1feed69d6aaee0f2e38881480d68ac8be9b3d9 SHA512 0def6da5c2443753f37ba40a893b41dd5c7676b7be57102a5a6e820fe4fe235cad1da9a1c0eff1abc4c4ed5cc188522cae23afeddeee1876ea8ffde5c4f33b9f
 DIST llvm-project-fb2960aad93f6c02e0ea8de0568c0aef8896eee8.tar.gz 219704020 BLAKE2B 91f7226d7c6dcfa82c6b892ec0a80b47b5abd435c39996d8a6e0611355d434a86eb42bd5dce849dcc9a2f0ed2ae9844e5672f45283984ad10c7c12c62c82d47b SHA512 f0b56a4ab532aaf4bb841aac4e2faf63f213f3cd71d24555b46805406502805e6cc46cb0aae0fbf5f49ddec99da801ab8e54410a9bd8a7bcb0e9fb13619c30bf

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild
deleted file mode 100644
index 43c213cc6426..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20240924.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-		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-20.0.0_pre20241004.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild
deleted file mode 100644
index 43c213cc6426..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20241004.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-		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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-15 13:13 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-15 13:13 UTC (permalink / raw
  To: gentoo-commits

commit:     2209e2da713906aa36d277cebc35374e13d15085
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 15 12:58:24 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 15 12:58:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2209e2da

sys-libs/libcxx: Add 20.0.0_pre20241015 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild | 206 +++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 52371b12f268..39d61ef00385 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,4 +10,5 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
 DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
+DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba
 DIST llvm-project-fb2960aad93f6c02e0ea8de0568c0aef8896eee8.tar.gz 219704020 BLAKE2B 91f7226d7c6dcfa82c6b892ec0a80b47b5abd435c39996d8a6e0611355d434a86eb42bd5dce849dcc9a2f0ed2ae9844e5672f45283984ad10c7c12c62c82d47b SHA512 f0b56a4ab532aaf4bb841aac4e2faf63f213f3cd71d24555b46805406502805e6cc46cb0aae0fbf5f49ddec99da801ab8e54410a9bd8a7bcb0e9fb13619c30bf

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild
new file mode 100644
index 000000000000..43c213cc6426
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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() {
+	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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-16 12:06 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-16 12:06 UTC (permalink / raw
  To: gentoo-commits

commit:     a854d41d80afbd3cb8a938ccbe903b1763f9e4c9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 16 11:58:51 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 16 12:06:48 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a854d41d

sys-libs/libcxx: Add 19.1.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-19.1.2.ebuild | 202 +++++++++++++++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 39d61ef00385..217fc4b435f3 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,5 +10,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
 DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
+DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
+DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
 DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba
 DIST llvm-project-fb2960aad93f6c02e0ea8de0568c0aef8896eee8.tar.gz 219704020 BLAKE2B 91f7226d7c6dcfa82c6b892ec0a80b47b5abd435c39996d8a6e0611355d434a86eb42bd5dce849dcc9a2f0ed2ae9844e5672f45283984ad10c7c12c62c82d47b SHA512 f0b56a4ab532aaf4bb841aac4e2faf63f213f3cd71d24555b46805406502805e6cc46cb0aae0fbf5f49ddec99da801ab8e54410a9bd8a7bcb0e9fb13619c30bf

diff --git a/sys-libs/libcxx/libcxx-19.1.2.ebuild b/sys-libs/libcxx/libcxx-19.1.2.ebuild
new file mode 100644
index 000000000000..80dbe207d4c4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.2.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-19 15:24 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-19 15:24 UTC (permalink / raw
  To: gentoo-commits

commit:     6e3199343251ce7f38f0ed021ec4f2ccdb3cc486
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 19 14:58:11 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Oct 19 15:24:18 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e319934

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   3 -
 sys-libs/libcxx/libcxx-19.1.1.ebuild             | 202 ----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild | 206 -----------------------
 3 files changed, 411 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 217fc4b435f3..62ae7de66cd5 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -8,9 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.1.src.tar.xz 141244648 BLAKE2B 7c9250f99c8e5ae2097e89269ebf5bfdfb0fba8f67ab934377d24030c985013fe5475d0c9bd6d60a679e169772ad1723bc6e44ff9e4c7aed5627b9f1f1a2477a SHA512 84adab40ffb9ec236dbf203d86c08a0c2c651f98278a9d0936490c7901159eb26eabd3db9316013886b549426d4acb43b75d866f7dc670ab299bf93ba35b1891
-DIST llvm-project-19.1.1.src.tar.xz.sig 438 BLAKE2B 6967194abf6939291abc716f862a46ea7c5e195b98eebc26928a57dbd5034f82a8ecb5b7cc1b7c2428168309308b19df1c7db828703e80d3f7bf578e3542874d SHA512 07bb7bffb2b035417d702ca47be9d5759250f1a2cd57606855027d458ceb972a293b45d3d93bcda195588986acbb5eace60524f4aecdc0da7aeb3a8414c37c31
 DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
 DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
 DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba
-DIST llvm-project-fb2960aad93f6c02e0ea8de0568c0aef8896eee8.tar.gz 219704020 BLAKE2B 91f7226d7c6dcfa82c6b892ec0a80b47b5abd435c39996d8a6e0611355d434a86eb42bd5dce849dcc9a2f0ed2ae9844e5672f45283984ad10c7c12c62c82d47b SHA512 f0b56a4ab532aaf4bb841aac4e2faf63f213f3cd71d24555b46805406502805e6cc46cb0aae0fbf5f49ddec99da801ab8e54410a9bd8a7bcb0e9fb13619c30bf

diff --git a/sys-libs/libcxx/libcxx-19.1.1.ebuild b/sys-libs/libcxx/libcxx-19.1.1.ebuild
deleted file mode 100644
index 80dbe207d4c4..000000000000
--- a/sys-libs/libcxx/libcxx-19.1.1.ebuild
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20241009.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild
deleted file mode 100644
index 43c213cc6426..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20241009.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-		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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-23 12:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-23 12:18 UTC (permalink / raw
  To: gentoo-commits

commit:     8112fd8113c2a57921efc6985b1ed969df356129
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 23 10:35:04 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 23 12:18:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8112fd81

sys-libs/libcxx: libc sources are required for building now

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/libcxx-20.0.0.9999.ebuild | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
index 43c213cc6426..73b362d082dd 100644
--- a/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-20.0.0.9999.ebuild
@@ -39,7 +39,9 @@ BDEPEND="
 	)
 "
 
-LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake )
+LLVM_COMPONENTS=(
+	runtimes libcxx{,abi} libc llvm/{cmake,utils/llvm-lit} cmake
+)
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-23 12:18 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-23 12:18 UTC (permalink / raw
  To: gentoo-commits

commit:     3dffbc5684fae6e9d76188be802267d93acf8020
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 23 12:01:16 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 23 12:18:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3dffbc56

sys-libs/libcxx: Add 20.0.0_pre20241023 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild | 208 +++++++++++++++++++++++
 2 files changed, 209 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 62ae7de66cd5..c2a2a65b9af7 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-project-0cb80c4f00689ca00a85e1f38bc6ae9dd0bf980e.tar.gz 220327440 BLAKE2B b58d9fe8527d5849266c56400d451faff3b9138ee7d71f24d904c146dfcf05a1734e1234bab1b4035b55a9588633f05264ebf87886aab27a2a2f18a945869041 SHA512 d0d443bc4b21c9b32bd079d0538702737bb4cb4218edfdfd24164e9b14ee25d5809e7aa840f6c1bb0e3d73cd1fe59053aff041df93274fdbcf436ae57cef99ae
 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

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild
new file mode 100644
index 000000000000..73b362d082dd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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} 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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-29 13:01 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-29 13:01 UTC (permalink / raw
  To: gentoo-commits

commit:     b21a419eea0470bbfd61c863acee5459429648ca
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 29 13:00:22 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 29 13:01:37 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b21a419e

sys-libs/libcxx: Add 20.0.0_pre20241029 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241029.ebuild | 208 +++++++++++++++++++++++
 2 files changed, 209 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index c2a2a65b9af7..f637485e0cf0 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,4 +11,5 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
 DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
+DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
 DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241029.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241029.ebuild
new file mode 100644
index 000000000000..73b362d082dd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241029.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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} 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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-10-30 19:29 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-10-30 19:29 UTC (permalink / raw
  To: gentoo-commits

commit:     7cca4eb96fbddddf3ed1b4e6dced43d47275d022
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 30 19:27:27 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 30 19:29:17 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7cca4eb9

sys-libs/libcxx: Add 19.1.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-19.1.3.ebuild | 202 +++++++++++++++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index f637485e0cf0..465683d19469 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,5 +11,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
 DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
+DIST llvm-project-19.1.3.src.tar.xz 141247864 BLAKE2B 4ccb30accd632a7d54eb065b724ff81ec8a50380fa527111d58acd728eecb798d42f680119b6d1cbc980523e2f39220921ca1f530daa7afea05ab27436dedb7e SHA512 0abaf158b373892d5afc184158600df17a0797547ad7238ca9018d6fcdd7310b0db803d158daa82a2e04bd42d9daebaa2c3e4b9024c0fa2df72a88596575df5c
+DIST llvm-project-19.1.3.src.tar.xz.sig 438 BLAKE2B 44717741ae13bb0c52382647352e52273d8401728dc5cc1cf0c11a8f08cd74b6e3d789e788793aad767030b36fdec62e3a05bdc0b7ff60556cec7ceac17fc239 SHA512 84ef22ee78dbaad4710becbcb02119d06063099f9102bb86f3cd44fbb7e2d87bafe239d8e0cbf22ab5a479f99a11a77125f22394d5006ed86262076ccbf1634d
 DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
 DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba

diff --git a/sys-libs/libcxx/libcxx-19.1.3.ebuild b/sys-libs/libcxx/libcxx-19.1.3.ebuild
new file mode 100644
index 000000000000..80dbe207d4c4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.3.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-11-02  7:22 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-11-02  7:22 UTC (permalink / raw
  To: gentoo-commits

commit:     988561cf07e9fe02d3756fc3936b0958f89b15db
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  2 07:19:23 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Nov  2 07:19:23 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=988561cf

sys-libs/libcxx: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   4 -
 sys-libs/libcxx/libcxx-19.1.2.ebuild             | 202 ----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild | 206 ----------------------
 sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild | 208 -----------------------
 4 files changed, 620 deletions(-)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 465683d19469..55f75241cfe4 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,6 +1,5 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
-DIST llvm-project-0cb80c4f00689ca00a85e1f38bc6ae9dd0bf980e.tar.gz 220327440 BLAKE2B b58d9fe8527d5849266c56400d451faff3b9138ee7d71f24d904c146dfcf05a1734e1234bab1b4035b55a9588633f05264ebf87886aab27a2a2f18a945869041 SHA512 d0d443bc4b21c9b32bd079d0538702737bb4cb4218edfdfd24164e9b14ee25d5809e7aa840f6c1bb0e3d73cd1fe59053aff041df93274fdbcf436ae57cef99ae
 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
@@ -9,9 +8,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
-DIST llvm-project-19.1.2.src.tar.xz 141241032 BLAKE2B 38a3f528ddae7cd738236a317551fdb94acd8fb736a57def15b75e1ed2f6572e1370fb3f1e4ff261d3cfb87df7d50d4db8fa9e70dc5e3dde617af09eb059fdd3 SHA512 e98ee405f5c30004b39f0de0470400dd2965adf4cda4b47a1d3792ae362ed43eb45e96a9b1689f31e1064e0b39252379270bd95bf8081cf9b92ecb9b371bf43b
-DIST llvm-project-19.1.2.src.tar.xz.sig 438 BLAKE2B f5bc0cc43bc10ee2438289d62aa8169cbb9e0ea598381b4c744e6a09daf710650fbec0656a9ac7c0e6f84a0ff3541fe223fa9efc61fb3d4c496cad9df7b9edd4 SHA512 307cd88116e68f901229fc2f6db72bad5f964bacee178e2efad3419cec277b5a7e23fb347386fb4e83e1886551bbc78d187259518193cac7654573ee17e3cb63
 DIST llvm-project-19.1.3.src.tar.xz 141247864 BLAKE2B 4ccb30accd632a7d54eb065b724ff81ec8a50380fa527111d58acd728eecb798d42f680119b6d1cbc980523e2f39220921ca1f530daa7afea05ab27436dedb7e SHA512 0abaf158b373892d5afc184158600df17a0797547ad7238ca9018d6fcdd7310b0db803d158daa82a2e04bd42d9daebaa2c3e4b9024c0fa2df72a88596575df5c
 DIST llvm-project-19.1.3.src.tar.xz.sig 438 BLAKE2B 44717741ae13bb0c52382647352e52273d8401728dc5cc1cf0c11a8f08cd74b6e3d789e788793aad767030b36fdec62e3a05bdc0b7ff60556cec7ceac17fc239 SHA512 84ef22ee78dbaad4710becbcb02119d06063099f9102bb86f3cd44fbb7e2d87bafe239d8e0cbf22ab5a479f99a11a77125f22394d5006ed86262076ccbf1634d
 DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
-DIST llvm-project-9aef0fd52a0b2bf31cf3bae8a0693d6df8db6e04.tar.gz 219987707 BLAKE2B a3f0acd0fd3b66c3a826ac6760653fa6ea893ffba7587cf4a14f472026a9d9d8bf6b63c26d8bc39e83936afe6b735496bd88ce6c00d16abe1d0ccd1f9a644302 SHA512 5104669d78930363afeba045dc27a4c36ca8bb7537d432c765e023cbd91155b248c3a60d4768e1f8690c88e82d4ff95a44fb73f26d25d6646dddc857992485ba

diff --git a/sys-libs/libcxx/libcxx-19.1.2.ebuild b/sys-libs/libcxx/libcxx-19.1.2.ebuild
deleted file mode 100644
index 80dbe207d4c4..000000000000
--- a/sys-libs/libcxx/libcxx-19.1.2.ebuild
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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? (
-		~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() {
-	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() {
-	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
-	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_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 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-20.0.0_pre20241015.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild
deleted file mode 100644
index 43c213cc6426..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20241015.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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() {
-	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() {
-	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
-	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_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 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
-		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-20.0.0_pre20241023.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild
deleted file mode 100644
index 73b362d082dd..000000000000
--- a/sys-libs/libcxx/libcxx-20.0.0_pre20241023.ebuild
+++ /dev/null
@@ -1,208 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-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/"
-
-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} 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() {
-	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
-	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_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 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
-		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
-}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-11-07  5:28 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-11-07  5:28 UTC (permalink / raw
  To: gentoo-commits

commit:     e652693fb4c2219fde913fbc6242254ad55eb8b2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  6 14:53:38 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Nov  7 05:26:54 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e652693f

sys-libs/libcxx: Add 20.0.0_pre20241106 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241106.ebuild | 208 +++++++++++++++++++++++
 2 files changed, 209 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 55f75241cfe4..3339c172ba04 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -1,5 +1,6 @@
 DIST llvm-gentoo-patchset-15.0.7-r1.tar.xz 21400 BLAKE2B 6b149cb721ac476b728bf9b0197f630d3db40622b85e3d099cdbc1d85ec14872d4e1eb0c94be6edc20fc6187da29b42f934dfb765f2077425a5b919900bb97c0 SHA512 d84d48caa3781633c7c6147e0b786417e93e4b5c9d1393809164e6d355a56673013ed0ea9bc3309488d7cfb794c1b336c888adc52dcd95e70c16d9208c36bd15
 DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-project-0e907c17214aa3b1a60b66867fea3cc0f0dcbaa0.tar.gz 222324382 BLAKE2B 8023108460d2af1688871d5534e18aa52e29f0e466bb5431194d1e710d7cd11bdab4be000433536b2d69c815a68624e347c69378a697d6fc55433bb4c2156767 SHA512 f0c23a0ac25de31f4c81f76ee82f3189da65d825579e923ace2b54714649c60d4d078220c9f2200b11f08d0c0e32c5b81a57ba368c11d67e763936df8a609279
 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

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241106.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241106.ebuild
new file mode 100644
index 000000000000..73b362d082dd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241106.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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} 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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-11-13 18:21 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-11-13 18:21 UTC (permalink / raw
  To: gentoo-commits

commit:     44cc7599db8d80dd4ae2dce190e77d5c3fe8e41a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 13 17:19:28 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov 13 18:21:29 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44cc7599

sys-libs/libcxx: Add 20.0.0_pre20241113 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241113.ebuild | 208 +++++++++++++++++++++++
 2 files changed, 209 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 3339c172ba04..03d9630f33dc 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,3 +12,4 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.3.src.tar.xz 141247864 BLAKE2B 4ccb30accd632a7d54eb065b724ff81ec8a50380fa527111d58acd728eecb798d42f680119b6d1cbc980523e2f39220921ca1f530daa7afea05ab27436dedb7e SHA512 0abaf158b373892d5afc184158600df17a0797547ad7238ca9018d6fcdd7310b0db803d158daa82a2e04bd42d9daebaa2c3e4b9024c0fa2df72a88596575df5c
 DIST llvm-project-19.1.3.src.tar.xz.sig 438 BLAKE2B 44717741ae13bb0c52382647352e52273d8401728dc5cc1cf0c11a8f08cd74b6e3d789e788793aad767030b36fdec62e3a05bdc0b7ff60556cec7ceac17fc239 SHA512 84ef22ee78dbaad4710becbcb02119d06063099f9102bb86f3cd44fbb7e2d87bafe239d8e0cbf22ab5a479f99a11a77125f22394d5006ed86262076ccbf1634d
 DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
+DIST llvm-project-c7df10643bda4acdc9a02406a2eee8aa4ced747f.tar.gz 222622409 BLAKE2B 8b6b53e0d51a681ec2e3ea1c873df95357e1333a598d26921c72f4ce05872aa5fe00a046bfe8811e2c8c1a2ffced7a325a0399bd931e54cf2aeb23abe887bde7 SHA512 e78219c87f001c813844ff652bf065f7c1d1bbf09af801ed1e99e9f40b981896bcee699d2ab15c71478388987c4030750a7958265d374b9f568fdf7af3dd3a21

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241113.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241113.ebuild
new file mode 100644
index 000000000000..73b362d082dd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241113.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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} 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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-11-18 19:32 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-11-18 19:32 UTC (permalink / raw
  To: gentoo-commits

commit:     08ccac7ca2b6266e3a0c94866dd6930008e25d0e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Nov 18 18:41:52 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Nov 18 19:32:27 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=08ccac7c

sys-libs/libcxx: Add 20.0.0_pre20241118 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest                         |   1 +
 sys-libs/libcxx/libcxx-20.0.0_pre20241118.ebuild | 208 +++++++++++++++++++++++
 2 files changed, 209 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 03d9630f33dc..49add2002483 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -12,4 +12,5 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.3.src.tar.xz 141247864 BLAKE2B 4ccb30accd632a7d54eb065b724ff81ec8a50380fa527111d58acd728eecb798d42f680119b6d1cbc980523e2f39220921ca1f530daa7afea05ab27436dedb7e SHA512 0abaf158b373892d5afc184158600df17a0797547ad7238ca9018d6fcdd7310b0db803d158daa82a2e04bd42d9daebaa2c3e4b9024c0fa2df72a88596575df5c
 DIST llvm-project-19.1.3.src.tar.xz.sig 438 BLAKE2B 44717741ae13bb0c52382647352e52273d8401728dc5cc1cf0c11a8f08cd74b6e3d789e788793aad767030b36fdec62e3a05bdc0b7ff60556cec7ceac17fc239 SHA512 84ef22ee78dbaad4710becbcb02119d06063099f9102bb86f3cd44fbb7e2d87bafe239d8e0cbf22ab5a479f99a11a77125f22394d5006ed86262076ccbf1634d
 DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
+DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
 DIST llvm-project-c7df10643bda4acdc9a02406a2eee8aa4ced747f.tar.gz 222622409 BLAKE2B 8b6b53e0d51a681ec2e3ea1c873df95357e1333a598d26921c72f4ce05872aa5fe00a046bfe8811e2c8c1a2ffced7a325a0399bd931e54cf2aeb23abe887bde7 SHA512 e78219c87f001c813844ff652bf065f7c1d1bbf09af801ed1e99e9f40b981896bcee699d2ab15c71478388987c4030750a7958265d374b9f568fdf7af3dd3a21

diff --git a/sys-libs/libcxx/libcxx-20.0.0_pre20241118.ebuild b/sys-libs/libcxx/libcxx-20.0.0_pre20241118.ebuild
new file mode 100644
index 000000000000..73b362d082dd
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-20.0.0_pre20241118.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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} 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() {
+	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
+	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_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 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
+		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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
@ 2024-11-19 19:39 Michał Górny
  0 siblings, 0 replies; 608+ messages in thread
From: Michał Górny @ 2024-11-19 19:39 UTC (permalink / raw
  To: gentoo-commits

commit:     940627bcd7865aba1e6803658f2989a512fbe771
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 19 19:38:31 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 19 19:39:35 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=940627bc

sys-libs/libcxx: Add 19.1.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-libs/libcxx/Manifest             |   2 +
 sys-libs/libcxx/libcxx-19.1.4.ebuild | 202 +++++++++++++++++++++++++++++++++++
 2 files changed, 204 insertions(+)

diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 49add2002483..2ac0a05d9ba2 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -11,6 +11,8 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.3.src.tar.xz 141247864 BLAKE2B 4ccb30accd632a7d54eb065b724ff81ec8a50380fa527111d58acd728eecb798d42f680119b6d1cbc980523e2f39220921ca1f530daa7afea05ab27436dedb7e SHA512 0abaf158b373892d5afc184158600df17a0797547ad7238ca9018d6fcdd7310b0db803d158daa82a2e04bd42d9daebaa2c3e4b9024c0fa2df72a88596575df5c
 DIST llvm-project-19.1.3.src.tar.xz.sig 438 BLAKE2B 44717741ae13bb0c52382647352e52273d8401728dc5cc1cf0c11a8f08cd74b6e3d789e788793aad767030b36fdec62e3a05bdc0b7ff60556cec7ceac17fc239 SHA512 84ef22ee78dbaad4710becbcb02119d06063099f9102bb86f3cd44fbb7e2d87bafe239d8e0cbf22ab5a479f99a11a77125f22394d5006ed86262076ccbf1634d
+DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
+DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-3f4468faaa9525ad615118675c3c68938f4a8d5f.tar.gz 221860252 BLAKE2B 6c531df34163dc0879c79b029a13215d1bef2cd95bbaf4a6d5e10b81a8352236283d40f14b62e23a57cc1cf8edce138fb6e2720ced2397d6469c5863564c626d SHA512 4aa485f4547e210cf8f6f8147c4adab3e75afe77f1e4e1bc4718fe681b64bdcf8937f843964542f8ead90ceef52cc0fd4bd8275824d1a4c6961eddafc7d35115
 DIST llvm-project-a6385a3fc8a88f092d07672210a1e773481c2919.tar.gz 222866102 BLAKE2B 9346275b18dcd7eedb699ed3494c027f597f68ceb8ff902fbff9f805a2c423d4fb86619974b3bb6fea30c5fe948e3793fb5c499f9e206b61794e13908d830327 SHA512 ac507feeaba787c6df1ece65e03d065c4f8fbabef686b583f671745e09c9a585be8c9359aeb3aa77815711a2ff9621c1b36a4d24cfe9f8d04e3288b53d7c9c69
 DIST llvm-project-c7df10643bda4acdc9a02406a2eee8aa4ced747f.tar.gz 222622409 BLAKE2B 8b6b53e0d51a681ec2e3ea1c873df95357e1333a598d26921c72f4ce05872aa5fe00a046bfe8811e2c8c1a2ffced7a325a0399bd931e54cf2aeb23abe887bde7 SHA512 e78219c87f001c813844ff652bf065f7c1d1bbf09af801ed1e99e9f40b981896bcee699d2ab15c71478388987c4030750a7958265d374b9f568fdf7af3dd3a21

diff --git a/sys-libs/libcxx/libcxx-19.1.4.ebuild b/sys-libs/libcxx/libcxx-19.1.4.ebuild
new file mode 100644
index 000000000000..80dbe207d4c4
--- /dev/null
+++ b/sys-libs/libcxx/libcxx-19.1.4.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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/"
+
+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? (
+		~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() {
+	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() {
+	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
+	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_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 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
+}


^ permalink raw reply related	[flat|nested] 608+ messages in thread

end of thread, other threads:[~2024-11-19 19:39 UTC | newest]

Thread overview: 608+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-05 14:12 [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2024-11-19 19:39 Michał Górny
2024-11-18 19:32 Michał Górny
2024-11-13 18:21 Michał Górny
2024-11-07  5:28 Michał Górny
2024-11-02  7:22 Michał Górny
2024-10-30 19:29 Michał Górny
2024-10-29 13:01 Michał Górny
2024-10-23 12:18 Michał Górny
2024-10-23 12:18 Michał Górny
2024-10-19 15:24 Michał Górny
2024-10-16 12:06 Michał Górny
2024-10-15 13:13 Michał Górny
2024-10-15  7:17 Michał Górny
2024-10-09 11:45 Michał Górny
2024-10-04 19:40 Michał Górny
2024-10-04 19:40 Michał Górny
2024-10-01 19:19 Michał Górny
2024-09-24 18:02 Michał Górny
2024-09-24  5:31 Michał Górny
2024-09-17 12:13 Michał Górny
2024-09-10 12:58 Michał Górny
2024-09-10 12:58 Michał Górny
2024-09-10  7:10 Michał Górny
2024-09-03 19:45 Michał Górny
2024-08-31  8:33 Michał Górny
2024-08-27 13:19 Michał Górny
2024-08-22 11:23 Michał Górny
2024-08-20 15:40 Michał Górny
2024-08-15 20:01 Michał Górny
2024-08-08 19:26 Michał Górny
2024-08-05 18:36 Michał Górny
2024-08-01 20:20 Michał Górny
2024-08-01 20:20 Michał Górny
2024-07-27  7:27 Michał Górny
2024-07-27  7:27 Michał Górny
2024-07-23 14:11 Sam James
2024-07-23 14:07 Michał Górny
2024-07-23 13:58 Sam James
2024-07-23 13:36 Sam James
2024-07-23 12:25 Sam James
2024-07-20 13:27 Michał Górny
2024-07-13 14:15 Michał Górny
2024-07-13  7:46 Michał Górny
2024-07-06 11:19 Michał Górny
2024-06-30 17:00 Michał Górny
2024-06-27  1:39 Michał Górny
2024-06-24 13:28 Michał Górny
2024-06-23 17:33 Michał Górny
2024-06-15 11:01 Michał Górny
2024-06-15 11:01 Michał Górny
2024-06-08 10:29 Michał Górny
2024-06-07 18:16 Michał Górny
2024-05-27 17:32 Michał Górny
2024-05-25  8:35 Michał Górny
2024-05-25  8:35 Michał Górny
2024-05-19 11:47 Michał Górny
2024-05-18 13:25 Michał Górny
2024-05-16 14:58 Michał Górny
2024-05-11 13:39 Michał Górny
2024-05-04 19:57 Michał Górny
2024-05-04 14:53 Michał Górny
2024-05-04  5:35 Michał Górny
2024-04-27 10:42 Michał Górny
2024-04-20  9:41 Michał Górny
2024-04-20  4:29 Michał Górny
2024-04-18 18:13 Michał Górny
2024-04-10 11:10 Michał Górny
2024-04-06 13:44 Michał Górny
2024-04-06  4:56 Michał Górny
2024-04-04 18:09 Michał Górny
2024-03-30 10:27 Michał Górny
2024-03-23 17:03 Michał Górny
2024-03-23 16:23 Sam James
2024-03-23  6:50 Michał Górny
2024-03-20 12:50 Michał Górny
2024-03-16 16:25 Michał Górny
2024-03-09 15:52 Michał Górny
2024-03-06 17:03 Michał Górny
2024-03-02 13:24 Michał Górny
2024-02-28 20:40 Michał Górny
2024-02-28 20:40 Michał Górny
2024-02-24 14:54 Michał Górny
2024-02-22  4:23 Michał Górny
2024-02-18 20:22 Michał Górny
2024-02-18 20:22 Michał Górny
2024-02-17 19:19 Michał Górny
2024-02-11 13:36 Sam James
2024-02-10 17:27 Michał Górny
2024-02-10 11:15 Michał Górny
2024-02-10 11:13 Michał Górny
2024-02-07 16:11 Michał Górny
2024-02-03 15:02 Michał Górny
2024-01-30 21:21 Michał Górny
2024-01-30 21:21 Michał Górny
2024-01-27 20:33 Michał Górny
2024-01-24  6:33 Michał Górny
2024-01-22 14:08 Michał Górny
2024-01-13 17:49 Michał Górny
2024-01-13 11:30 Joonas Niilola
2024-01-13 10:22 Michał Górny
2024-01-12 19:35 Michał Górny
2024-01-12  9:24 Sam James
2024-01-06 21:52 Michał Górny
2023-12-28 15:06 Michał Górny
2023-12-22 16:43 Michał Górny
2023-12-22 16:43 Michał Górny
2023-12-15 17:51 Michał Górny
2023-12-09 18:35 Michał Górny
2023-11-29 15:15 Michał Górny
2023-11-29  7:44 Michał Górny
2023-11-25 11:21 Michał Górny
2023-11-19 11:10 Michał Górny
2023-11-14 18:26 Michał Górny
2023-11-14 13:06 Michał Górny
2023-11-11 20:23 Michał Górny
2023-11-11 10:36 Michał Górny
2023-11-04 18:03 Michał Górny
2023-10-31 19:12 Michał Górny
2023-10-31  8:38 Michał Górny
2023-10-26  2:10 Michał Górny
2023-10-19 19:50 Michał Górny
2023-10-19 15:13 Michał Górny
2023-10-19 15:02 Michał Górny
2023-10-17 15:11 Michał Górny
2023-10-13 16:15 Michał Górny
2023-10-13 12:17 Michał Górny
2023-10-04  8:44 Michał Górny
2023-10-02 19:39 Michał Górny
2023-10-02 15:24 Michał Górny
2023-10-02 15:19 Michał Górny
2023-09-25 18:45 Michał Górny
2023-09-19 19:47 Michał Górny
2023-09-19 12:42 Michał Górny
2023-09-08 11:38 Michał Górny
2023-09-06 18:13 Michał Górny
2023-09-05 19:58 Michał Górny
2023-08-29 11:20 Michał Górny
2023-08-29  5:48 Michał Górny
2023-08-25 19:17 Michał Górny
2023-08-23 10:17 Michał Górny
2023-08-20 12:02 Michał Górny
2023-08-10 17:49 Michał Górny
2023-08-08 18:31 Michał Górny
2023-08-03 15:43 Michał Górny
2023-08-03  9:15 Michał Górny
2023-08-02 16:11 Sam James
2023-07-29 19:25 Michał Górny
2023-07-25 16:11 Michał Górny
2023-07-22 13:04 Michał Górny
2023-07-17 14:14 Michał Górny
2023-07-16 15:06 Sam James
2023-07-14 16:17 Michał Górny
2023-07-14 15:52 Arthur Zamarin
2023-07-11 10:41 Michał Górny
2023-07-05 15:31 Michał Górny
2023-07-05  8:38 Michał Górny
2023-06-30 19:42 Michał Górny
2023-06-20 17:53 Michał Górny
2023-06-20 14:23 Michał Górny
2023-06-20 14:20 Michał Górny
2023-06-17 23:22 Sam James
2023-06-17 19:10 Michał Górny
2023-06-17 19:10 Michał Górny
2023-06-14 10:31 Michał Górny
2023-06-14  5:34 Michał Górny
2023-06-11  9:36 Michał Górny
2023-06-10 11:23 Michał Górny
2023-06-04  6:21 Michał Górny
2023-06-02 15:31 Michał Górny
2023-05-27 13:21 Michał Górny
2023-05-27  5:52 Michał Górny
2023-05-21  4:59 Michał Górny
2023-05-18  3:14 Michał Górny
2023-05-17  6:25 Michał Górny
2023-05-12 18:26 Michał Górny
2023-05-06 14:10 Michał Górny
2023-05-03 11:09 Michał Górny
2023-05-02 17:18 Michał Górny
2023-04-21 17:16 Michał Górny
2023-04-19 19:42 Michał Górny
2023-04-19 15:43 Michał Górny
2023-04-14 19:06 Michał Górny
2023-04-11  3:14 Michał Górny
2023-04-05 18:12 Michał Górny
2023-04-05  6:25 Michał Górny
2023-04-05  6:20 Michał Górny
2023-03-25 11:22 Michał Górny
2023-03-20 13:10 Michał Górny
2023-03-19  3:44 Michał Górny
2023-03-18 15:03 Michał Górny
2023-03-14 19:43 Michał Górny
2023-03-12  6:31 WANG Xuerui
2023-03-11 15:46 Michał Górny
2023-03-10 19:23 Michał Górny
2023-03-05 12:02 Michał Górny
2023-02-28 13:10 Michał Górny
2023-02-25 19:08 Michał Górny
2023-02-24  2:55 WANG Xuerui
2023-02-23 15:14 Michał Górny
2023-02-18 10:07 Michał Górny
2023-02-15 12:15 Michał Górny
2023-02-11 12:47 Michał Górny
2023-02-10  4:51 WANG Xuerui
2023-02-08 18:09 Michał Górny
2023-02-08 17:36 Michał Górny
2023-02-04 15:45 Michał Górny
2023-02-01  5:15 Michał Górny
2023-02-01  4:32 WANG Xuerui
2023-01-30 20:33 Michał Górny
2023-01-27 17:25 Michał Górny
2023-01-27 11:00 Michał Górny
2023-01-27 10:11 Jakov Smolić
2023-01-26 22:42 Sam James
2023-01-26 22:31 Sam James
2023-01-26 22:08 Sam James
2023-01-26 22:08 Sam James
2023-01-25 19:34 Arthur Zamarin
2023-01-25 12:28 Michał Górny
2023-01-25  8:12 Michał Górny
2023-01-24  8:53 Michał Górny
2023-01-13 13:21 Michał Górny
2023-01-13  8:08 Michał Górny
2023-01-10  7:29 WANG Xuerui
2023-01-08  5:46 Michał Górny
2023-01-07 14:43 Michał Górny
2023-01-07 14:38 Michał Górny
2023-01-07  6:50 Sam James
2023-01-07  6:48 Sam James
2023-01-03  4:10 WANG Xuerui
2023-01-01 21:00 Michał Górny
2022-12-27 11:29 Michał Górny
2022-12-25  9:45 Michał Górny
2022-12-19  5:55 Michał Górny
2022-12-19  5:41 WANG Xuerui
2022-12-18  7:27 Michał Górny
2022-12-18  4:58 Sam James
2022-12-17 20:49 Arthur Zamarin
2022-12-10 20:43 Michał Górny
2022-12-06  6:02 Michał Górny
2022-12-02 15:32 Michał Górny
2022-12-02  8:04 Arthur Zamarin
2022-11-29 19:56 Michał Górny
2022-11-29 13:52 Michał Górny
2022-11-26 11:09 Michał Górny
2022-11-26 11:04 Michał Górny
2022-11-25 17:12 Arthur Zamarin
2022-11-25  9:00 Arthur Zamarin
2022-11-22  7:49 Arthur Zamarin
2022-11-20 16:43 Michał Górny
2022-11-16 12:32 Michał Górny
2022-11-16 12:05 Michał Górny
2022-11-16  7:16 Michał Górny
2022-11-13 15:40 Michał Górny
2022-11-10 16:18 Michał Górny
2022-11-05 11:33 Joonas Niilola
2022-11-04 17:14 Michał Górny
2022-11-04 10:31 Michał Górny
2022-11-03 14:50 Michał Górny
2022-11-02 13:50 Agostino Sarubbo
2022-10-29  7:22 Agostino Sarubbo
2022-10-26 17:10 Arthur Zamarin
2022-10-25 10:15 Arthur Zamarin
2022-10-24 13:16 Michał Górny
2022-10-23 15:17 Michał Górny
2022-10-23 11:43 Michał Górny
2022-10-23 11:35 Michał Górny
2022-10-18 15:00 Michał Górny
2022-10-17 15:41 Michał Górny
2022-10-16 19:35 Michał Górny
2022-10-16 18:59 Michał Górny
2022-10-11 16:12 Michał Górny
2022-10-11 15:48 Michał Górny
2022-10-10 20:52 Michał Górny
2022-10-10 20:10 Michał Górny
2022-10-10  8:34 Michał Górny
2022-10-07 16:41 Michał Górny
2022-10-07  9:01 Michał Górny
2022-10-06 20:11 Michał Górny
2022-10-04 17:14 Michał Górny
2022-10-03 13:04 Michał Górny
2022-09-30 14:52 Michał Górny
2022-09-26 15:58 Michał Górny
2022-09-26  7:36 Michał Górny
2022-09-26  7:36 Michał Górny
2022-09-21  8:25 Michał Górny
2022-09-21  8:23 Michał Górny
2022-09-20 11:12 Michał Górny
2022-09-20 11:04 Michał Górny
2022-09-20  6:38 Michał Górny
2022-09-19 10:40 Michał Górny
2022-09-16 12:14 Michał Górny
2022-09-14  6:01 Michał Górny
2022-09-06 19:18 Michał Górny
2022-09-06 17:34 Michał Górny
2022-09-06  8:01 Michał Górny
2022-09-06  7:59 Michał Górny
2022-08-26  8:43 Michał Górny
2022-08-11 10:38 Sam James
2022-08-09 17:36 Michał Górny
2022-08-05 19:50 Michał Górny
2022-08-03  7:02 Michał Górny
2022-08-02 19:50 Arthur Zamarin
2022-07-31 19:44 Michał Górny
2022-07-31 13:56 Michał Górny
2022-07-31 13:56 Michał Górny
2022-07-31 11:13 Agostino Sarubbo
2022-07-30 17:55 Arthur Zamarin
2022-07-30  8:59 Agostino Sarubbo
2022-07-29 10:09 Michał Górny
2022-07-29 10:09 Michał Górny
2022-07-28 13:58 Michał Górny
2022-07-28 13:20 Sam James
2022-07-28 12:57 Michał Górny
2022-07-27  4:14 Sam James
2022-07-19  7:47 Michał Górny
2022-07-19  6:33 Michał Górny
2022-07-18 16:05 Sam James
2022-06-25 13:08 Michał Górny
2022-06-11 11:07 Michał Górny
2022-06-04 19:58 Agostino Sarubbo
2022-06-04 19:55 Agostino Sarubbo
2022-06-04 19:53 Agostino Sarubbo
2022-05-29 19:58 Michał Górny
2022-04-30  7:35 Michał Górny
2022-04-27 12:27 Michał Górny
2022-04-24 14:41 Michał Górny
2022-04-21 19:37 Sam James
2022-04-21 19:31 Michał Górny
2022-04-21 16:36 Jakov Smolić
2022-04-15  0:03 Sam James
2022-04-13 23:10 Sam James
2022-04-13 21:55 Sam James
2022-04-13 21:43 Sam James
2022-03-23 13:01 Michał Górny
2022-03-23 13:00 Michał Górny
2022-03-14 15:22 Michał Górny
2022-03-12  9:20 Michał Górny
2022-03-10 23:53 Sam James
2022-03-07  2:00 Sam James
2022-03-06 16:07 Michał Górny
2022-03-06 16:03 Michał Górny
2022-03-06 16:03 Michał Górny
2022-03-02  9:09 Michał Górny
2022-02-11 12:16 Michał Górny
2022-02-09 13:02 Michał Górny
2022-02-06 15:35 Michał Górny
2022-02-03 15:45 Michał Górny
2022-02-02 21:16 Michał Górny
2022-02-02  7:20 Sam James
2022-01-21 15:37 Michał Górny
2022-01-13 12:06 Michał Górny
2022-01-03 23:26 David Seifert
2021-12-29 20:04 Michał Górny
2021-12-01 16:47 Michał Górny
2021-11-30 16:44 Michał Górny
2021-11-30 10:01 Michał Górny
2021-11-30  9:38 Michał Górny
2021-11-13  8:21 Sam James
2021-11-08 11:25 Michał Górny
2021-11-05 20:07 Sam James
2021-11-05 19:16 Sam James
2021-11-05  7:19 Sam James
2021-10-01 13:27 Michał Górny
2021-10-01 13:27 Michał Górny
2021-09-25  7:45 Michał Górny
2021-09-14 15:23 Michał Górny
2021-09-11  7:25 Michał Górny
2021-09-11  7:24 Michał Górny
2021-09-11  6:06 Sam James
2021-09-11  6:02 Sam James
2021-09-10  1:25 Sam James
2021-08-27 20:10 Michał Górny
2021-08-04  4:53 Sam James
2021-08-03 20:44 Michał Górny
2021-08-03 18:59 Michał Górny
2021-08-03 11:13 Michał Górny
2021-07-30 18:14 Michał Górny
2021-07-10 17:51 Michał Górny
2021-07-09 14:44 Michał Górny
2021-07-09 14:44 Michał Górny
2021-07-06 15:21 Michał Górny
2021-07-06 13:51 Michał Górny
2021-07-06 13:49 Michał Górny
2021-07-05 22:54 Michał Górny
2021-07-05  5:50 Michał Górny
2021-06-21  7:19 Sam James
2021-06-20 22:55 Sam James
2021-06-18 22:28 Sam James
2021-06-18 15:30 Sam James
2021-06-17  9:05 Michał Górny
2021-05-26 12:08 Michał Górny
2021-05-26 12:08 Michał Górny
2021-05-17  7:01 Michał Górny
2021-05-17  6:49 Michał Górny
2021-04-15 20:44 Michał Górny
2021-04-15 20:44 Michał Górny
2021-04-09 11:46 Michał Górny
2021-04-05 16:53 Sam James
2021-04-01 16:17 Michał Górny
2021-03-30  0:21 Thomas Deutschmann
2021-03-19 18:14 Mikle Kolyada
2021-03-11 22:59 Michał Górny
2021-03-11 18:54 Michał Górny
2021-03-06 12:09 Michał Górny
2021-02-26 22:45 Sam James
2021-02-25 13:24 Michał Górny
2021-02-24 11:59 Mikle Kolyada
2021-02-20 10:10 Michał Górny
2021-02-19 17:07 Thomas Deutschmann
2021-02-17 13:03 Michał Górny
2021-02-09 15:28 Michał Górny
2021-02-07  6:56 Sergei Trofimovich
2021-01-28 10:58 Michał Górny
2021-01-28  9:04 Michał Górny
2021-01-23 11:49 Michał Górny
2021-01-14 21:30 Michał Górny
2021-01-06 21:23 Michał Górny
2021-01-06 21:23 Michał Górny
2021-01-01 13:01 Fabian Groffen
2020-12-27 19:12 Sam James
2020-12-19  9:14 Michał Górny
2020-11-29 10:57 Michał Górny
2020-11-29 10:40 Michał Górny
2020-11-29  8:59 Michał Górny
2020-11-29  8:26 Michał Górny
2020-11-17 20:24 Thomas Deutschmann
2020-11-16 21:03 Sam James
2020-11-16  6:41 Mikle Kolyada
2020-11-16  6:40 Mikle Kolyada
2020-10-14 21:14 Michał Górny
2020-10-12 12:38 Michał Górny
2020-10-12 12:38 Michał Górny
2020-10-07 18:37 Michał Górny
2020-10-06 13:41 Sam James
2020-09-28 21:41 Michał Górny
2020-09-23 10:35 Michał Górny
2020-09-22 20:40 Michał Górny
2020-09-20 21:14 Thomas Deutschmann
2020-09-20 15:16 Sam James
2020-09-19 20:17 Mikle Kolyada
2020-08-21 19:39 Michał Górny
2020-07-31 22:15 Sam James
2020-07-30 22:11 Michał Górny
2020-07-29 11:27 Michał Górny
2020-07-21 19:31 Michał Górny
2020-07-18 14:44 Sam James
2020-07-15 18:41 Michał Górny
2020-07-08  8:26 Michał Górny
2020-07-07 20:01 Michał Górny
2020-07-04 12:36 Mart Raudsepp
2020-06-29 18:37 Michał Górny
2020-06-29 15:56 Mikle Kolyada
2020-06-23 18:30 Michał Górny
2020-06-20 16:34 Michał Górny
2020-06-20 16:34 Michał Górny
2020-06-20 16:34 Michał Górny
2020-05-20 11:22 Michał Górny
2020-05-20 11:22 Michał Górny
2020-05-05 21:40 Sergei Trofimovich
2020-05-04 10:13 Michał Górny
2020-05-04  9:04 Michał Górny
2020-05-01  8:54 Michał Górny
2020-04-29  6:24 Michał Górny
2020-03-25 17:59 Michał Górny
2020-03-24 21:46 Michał Górny
2020-03-23 20:35 Michał Górny
2020-03-16  7:06 Michał Górny
2020-03-09 18:30 Mart Raudsepp
2020-03-04 18:39 Michał Górny
2020-03-04 18:39 Michał Górny
2020-03-04 16:24 Michał Górny
2020-02-14 10:24 Michał Górny
2020-02-14  7:51 Michał Górny
2020-02-14  7:51 Michał Górny
2020-02-13 18:47 Michał Górny
2020-02-10 13:26 Michał Górny
2020-01-30 20:51 Michał Górny
2020-01-27 12:20 Mikle Kolyada
2020-01-23 10:24 Mikle Kolyada
2020-01-23 10:20 Mikle Kolyada
2020-01-18 17:18 Michał Górny
2020-01-06 14:04 Michał Górny
2019-12-21  8:30 Michał Górny
2019-12-21  8:30 Michał Górny
2019-12-14  9:55 Michał Górny
2019-12-09 19:20 Michał Górny
2019-12-08 21:20 Michał Górny
2019-12-07  9:15 Michał Górny
2019-12-07  9:15 Michał Górny
2019-11-27  8:58 Michał Górny
2019-11-23  7:58 Michał Górny
2019-11-03 11:46 Michał Górny
2019-11-03 10:00 Michał Górny
2019-11-01 13:16 Michał Górny
2019-10-12 11:27 Michał Górny
2019-10-11 18:57 Michał Górny
2019-09-21  9:15 Michał Górny
2019-09-21  9:15 Michał Górny
2019-09-20 22:12 Michał Górny
2019-09-17 21:01 Michał Górny
2019-09-16 22:13 Aaron Bauman
2019-09-13 18:03 Mikle Kolyada
2019-09-13 15:47 Mikle Kolyada
2019-09-10  7:10 Agostino Sarubbo
2019-09-10  7:06 Agostino Sarubbo
2019-08-18 10:07 Michał Górny
2019-07-21 19:40 Michał Górny
2019-07-21 19:40 Michał Górny
2019-07-21  7:34 Michał Górny
2019-07-21  7:34 Michał Górny
2019-07-20 22:34 Michał Górny
2019-07-20 12:50 Michał Górny
2019-06-17  6:25 Michał Górny
2019-05-15  9:53 Michał Górny
2019-05-13 17:36 Aaron Bauman
2019-05-11 11:25 Mikle Kolyada
2019-05-11 11:25 Mikle Kolyada
2019-04-19 20:11 Michał Górny
2019-04-17 20:09 Michał Górny
2019-03-20 15:02 Michał Górny
2019-03-20 15:02 Michał Górny
2019-03-13  8:22 Michał Górny
2019-03-12 13:14 Michał Górny
2019-02-28 17:41 Michał Górny
2019-02-13 12:46 Michał Górny
2019-01-16 14:52 Michał Górny
2018-12-30 11:39 Michał Górny
2018-12-20 12:41 Michał Górny
2018-12-02 12:53 Mikle Kolyada
2018-11-06 11:06 Michał Górny
2018-10-04 21:10 Michał Górny
2018-09-19 20:22 Michał Górny
2018-09-11  6:22 Michał Górny
2018-08-28 16:00 Michał Górny
2018-08-15 20:44 Michał Górny
2018-08-09 10:32 Michał Górny
2018-08-01 20:53 Michał Górny
2018-07-22 18:50 Mikle Kolyada
2018-07-22 18:19 Thomas Deutschmann
2018-07-22  8:23 Michał Górny
2018-06-27  8:44 Michał Górny
2018-06-07 17:21 Thomas Deutschmann
2018-06-07 13:03 Mikle Kolyada
2018-05-05 15:27 Michał Górny
2018-03-16  9:32 Michał Górny
2018-03-15 21:12 Michał Górny
2018-03-13 17:40 Michał Górny
2018-03-11 18:19 Michał Górny
2018-03-09 23:11 Michał Górny
2018-03-09 15:46 Michał Górny
2018-03-09 14:58 Michał Górny
2018-03-08 22:19 Michał Górny
2018-02-26 14:05 Michał Górny
2018-02-09 16:00 Michał Górny
2018-01-29  1:06 Thomas Deutschmann
2018-01-20  8:54 Michał Górny
2018-01-18 21:43 Michał Górny
2018-01-18 21:43 Michał Górny
2018-01-18 21:25 Michał Górny
2018-01-17 22:14 Mikle Kolyada
2018-01-03 22:21 Michał Górny
2017-12-21 21:01 Michał Górny
2017-12-20 20:58 Michał Górny
2017-12-15 16:20 Michał Górny
2017-12-14 22:31 Matt Turner
2017-12-01 23:40 Michał Górny
2017-11-19 19:14 Thomas Deutschmann
2017-10-01  9:03 Michał Górny
2017-10-01  9:03 Michał Górny
2017-10-01  9:03 Michał Górny
2017-09-08 17:30 Michał Górny
2017-07-25  7:58 Michał Górny
2017-07-24 19:13 Michał Górny
2017-07-24 19:04 Michał Górny
2017-07-08 23:25 Michał Górny
2017-07-08 23:18 Michał Górny
2017-06-27 19:18 Michał Górny
2017-04-02 18:06 Agostino Sarubbo
2017-04-02 18:01 Agostino Sarubbo
2017-03-14 22:22 Michał Górny
2017-03-13 17:37 Michał Górny
2017-03-08 21:30 Michał Górny
2017-03-08 21:30 Michał Górny
2017-03-06 22:18 Michał Górny
2017-02-25  7:54 Markus Meier
2017-02-15 12:47 Michał Górny
2017-01-24 19:08 Michał Górny
2017-01-19  9:14 Michał Górny
2017-01-15 14:31 Michał Górny
2017-01-12 15:25 Michał Górny
2017-01-01 16:32 Johannes Huber
2016-12-21 21:01 Michał Górny
2016-11-12 10:50 Michał Górny
2016-10-07  8:41 Michał Górny
2016-10-07  8:41 Michał Górny
2016-10-05 14:46 Michał Górny
2016-10-05 14:12 Michał Górny
2016-10-05 13:38 Michał Górny
2016-10-05 13:38 Michał Górny
2016-10-03 12:47 Michał Górny
2016-10-03 12:00 Michał Górny
2016-10-03  8:51 Alexis Ballier
2016-08-01 22:05 Michał Górny
2016-03-10  9:46 Alexis Ballier
2016-01-05  8:34 Alexis Ballier
2016-01-05  8:34 Alexis Ballier
2015-09-14 13:24 Alexis Ballier

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