summaryrefslogtreecommitdiff
path: root/sys-libs/libcxxabi
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/libcxxabi')
-rw-r--r--sys-libs/libcxxabi/Manifest10
-rw-r--r--sys-libs/libcxxabi/libcxxabi-4.0.1.ebuild42
-rw-r--r--sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild47
-rw-r--r--sys-libs/libcxxabi/libcxxabi-6.0.0.ebuild47
-rw-r--r--sys-libs/libcxxabi/libcxxabi-6.0.9999.ebuild40
-rw-r--r--sys-libs/libcxxabi/libcxxabi-9999.ebuild40
6 files changed, 174 insertions, 52 deletions
diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest
index 4ab40bc0753e..773a341c179f 100644
--- a/sys-libs/libcxxabi/Manifest
+++ b/sys-libs/libcxxabi/Manifest
@@ -9,9 +9,9 @@ DIST libcxxabi-4.0.1.src.tar.xz 515820 BLAKE2B 7d9e0dee4f6cb3eaa22647d959f8bf3d8
DIST libcxxabi-5.0.1.src.tar.xz 521504 BLAKE2B e8263f458545ffb8ec27234e554427696644dcde3b46bea4fa0ee14b2b174d0c6c8dcc7905477140afaf567347e91815827aa6700c92ccfbfbea5364f591fc2a SHA512 a8d448653772690a19f68c1270f9cf18f27d7225847825f29c6ea21846c1074aa61c31b81bc2ae4007067985d389071c32e69b2560282ddb85864a99e9bdd884
DIST libcxxabi-6.0.0.src.tar.xz 529212 BLAKE2B ae020e8831a6ae71d59d71e294bbb0aa6dbedf1b3036b2536d9456db8c51f21e57d082c5abf5e00921a14876328bdfafab3c04b4d761cb76d52e35ff97107510 SHA512 c5e4cc05105770b42b20595fdbda5e1483be4582bc94335da1a15531ba43a0ecf30e1e0a252f62d4d0e6c79cda9d44ff5fdbe69a0a295b2431fd6de158410e2e
EBUILD libcxxabi-3.9.1.ebuild 2646 BLAKE2B a1f66067e57f09aca9d2f44735f3c7b01af38b381ecab526f9bae8ffbc5c96856c5a6d8c829b2d95f0a0afffefd319670c8484c826ce81b94a63c51bb53ed114 SHA512 4849fbfe11876cb403d78852abd6df27a0dbeada69c15fd1af6e7a20d742fcca064b227592e3ac69e32546cef94c790f28d63d40c8522213a9910f0b625ea379
-EBUILD libcxxabi-4.0.1.ebuild 2491 BLAKE2B 9f0bf316a6c451379291ab2825411f1a11c5924a4b9aa2dc7f742961c15072572240f945583373a3016be4cfde7993c123cb72cc6a93d31a56a7037d126f7df3 SHA512 fea9cfc1ee9389aad2e11a63802de0dd7c2f2e82ccefb5afa25349b64bba296022f293ffc66c5ba7c8e704513b17a77d911b2de7ef800db5f9a484596a9e147e
-EBUILD libcxxabi-5.0.1.ebuild 2570 BLAKE2B d53b97db7f0e3db97255f93ef6458fe3b4b4a2ad505ee7e1736460b64c08d11caee3841057169e914ebf0596eee2e68074ba8a2eb825c34a88306116f1522fa1 SHA512 cf2d215bf05a61e043277c29e9297ac021db01eb9a8aab471c38474f9d13f7498326ca6ef04443cd5af983a2eb2a840f6793bd7deb7f0042ba5cc81ac05d400b
-EBUILD libcxxabi-6.0.0.ebuild 2697 BLAKE2B d7645ecd5418fabd6f0c82d0606c1de0a47f231eb504668c7ddee020118b47520450eabff3e3c6aea61560bb99390eae9f98a90f0d4cc9396b4f74bee426b86d SHA512 0223cbc68e5c812ad83e9de8e93ebcaf38753aaeedfb24a7482878187f475ec45e578d4849bb3f53887eff5d576058cd2d2032fe9713e11cf47e53e0f0ac86a3
-EBUILD libcxxabi-6.0.9999.ebuild 2625 BLAKE2B a380210246a0875eb5b505c04ae43bc337d8ec175d559f685faf6346b2928bdf7788202097e0253083447af626e9ccb045e9022b0e4bd3e702ea14afb3c795d6 SHA512 f4228a84828bb3df7085283bb11936d9f94f371a867ffe519ccac66a8c899cd8cec0d2d05b62746989d65ae59c2a244e7d681c07f0ba8ab41e893e93f88841cf
-EBUILD libcxxabi-9999.ebuild 2600 BLAKE2B 42fc6777627a3a3575508c2626df99dc98d6d3417ab27f79c36e4883cb8a6db32a979181a750105a3c0cad55bc9c96272865e9f60d4bf023508163e9709bfc19 SHA512 63f9bd33199ca54165c2dca0e7b1d10d120404a3789abb8fedcbdac10b26dc0a874beeab196efee92382134645aa90f9ecd5b2108dde579f1be974b82238edce
+EBUILD libcxxabi-4.0.1.ebuild 3328 BLAKE2B 2cc64e780a60b79a5eed18840b3048256a9cd5374abaa61594085587ee120c2ac134287ece9fbc5c58ed947657cd280c32520719e6c4996c2593be20ab19894c SHA512 822b5056c1e62d1dd116349f6cb47fa023a20899a7ef18f91b80e7440ff857d55500bdf8adb9286c1f3f3ba2a45a7a95ba78430b58267e3e70296201951c66d3
+EBUILD libcxxabi-5.0.1.ebuild 3193 BLAKE2B b1157a436e40da0b67d012c903b9a137f3544a404e91a414a3d451be7f1b6c5e0a79c3e424f8c0cbf58b33166332988ecc13ee84a3c5840ad54de7c033770a97 SHA512 1330ec5b22bb11f5e142eea5acf03cbe6f1282a58206de9039453100a5fb72a30d46fe3ac3be6c52ddc07eb4b71486fd1be3e83a15a7ae76fa999fb2660cd908
+EBUILD libcxxabi-6.0.0.ebuild 3174 BLAKE2B 15e674f92e5388b16ee1e68f4ec99ad2c05fd1e0f80652f0fa1706c8e8303ff501203197e543644223cfd003c97ca99ccc1f7ea96e58be7d8aab8bd000dfb376 SHA512 44e004150486f6d270fec0dfa7f03e2c3a14ecf21d883250044f45ee6b2ea8828c51bda3b1f23dd867cb88acdf3c529a295d7882cde04184527f6fd8531aa1a9
+EBUILD libcxxabi-6.0.9999.ebuild 3288 BLAKE2B d43aa5dc53732dbc943b67625d54a4e97c2dc782722922e05f5906056c09345f5dbbeadc50af993e9b04c52218d9da9efb535aeba5e511ae8553549d2c867e1c SHA512 a75f53ab525c011fb834f24cfbe3ba5911e302cb080514146ea0f05fcb06b1cb0b3fa2342ccb3c1ca70873cc6e9fb0e1032479546f99ac85efbb6fa07aa5e3f2
+EBUILD libcxxabi-9999.ebuild 3263 BLAKE2B 26e1877ef423b0f869b6033601c584599c00f6f46b7296ba213ff080bb060c81995a2be2693b16b73e94c979c46fa5632b0fcf110ba2bc86c1b8f30bb548f74d SHA512 28ee56c5c823aa82e02e7fa680455e425d2ec5c4ae4c98c82a18f7afa1d0a663d22f4a85299fb44c3c10d5367bf33637f68a70516b02c6c206293038a65e22ef
MISC metadata.xml 350 BLAKE2B 67b70b8d7292327882a845b76667ce24fee728cd84f27ed7e329bc7963631cba4c28bafce5e6a5fefb4ba1df5c7fd572b3b0d7a2b31ef649496f2f991b691bff SHA512 317dd7b59a711dd0461b5369f7e31ea196882b018e047e1dbae8077274d06cb68542c8762efb852cce0b8021bedea69c19aa0c124b9414a36cf1a9c00e0b9703
diff --git a/sys-libs/libcxxabi/libcxxabi-4.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-4.0.1.ebuild
index 0610e3424371..6fc52bd3ce46 100644
--- a/sys-libs/libcxxabi/libcxxabi-4.0.1.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-4.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"
-IUSE="+libunwind +static-libs test"
+IUSE="+libunwind +static-libs test elibc_musl"
RDEPEND="
libunwind? (
@@ -31,7 +31,6 @@ RDEPEND="
DEPEND="${RDEPEND}
>=sys-devel/llvm-4
test? ( >=sys-devel/clang-3.9.0
- ~sys-libs/libcxx-${PV}[libcxxabi(-)]
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
S=${WORKDIR}/${P/_/}.src
@@ -72,19 +71,50 @@ multilib_src_configure() {
-DLIBCXXABI_LIBUNWIND_SOURCES="${T}"
)
if use test; then
- mycmakeargs+=(
- -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
}
+build_libcxx() {
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+
+ cmake-utils_src_configure
+ cmake-utils_src_compile
+}
+
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
+ # build a local copy of libc++ for testing to avoid circular dep
+ build_libcxx
+ mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
+
cmake-utils_src_make check-libcxxabi
}
diff --git a/sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild
index b273a72c3cc1..758b743df7e5 100644
--- a/sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="0"
KEYWORDS="amd64 ~arm64 x86"
-IUSE="+libunwind +static-libs test"
+IUSE="+libunwind +static-libs test elibc_musl"
RDEPEND="
libunwind? (
@@ -34,7 +34,6 @@ RDEPEND="
DEPEND="${RDEPEND}
>=sys-devel/llvm-4
test? ( >=sys-devel/clang-3.9.0
- ~sys-libs/libcxx-${PV}[libcxxabi(-)]
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
S=${WORKDIR}/${MY_P}
@@ -52,12 +51,7 @@ pkg_setup() {
}
src_unpack() {
- einfo "Unpacking ${MY_P}.tar.xz ..."
- tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die
-
- einfo "Unpacking parts of ${LIBCXX_P}.tar.xz ..."
- tar -xf "${DISTDIR}/${LIBCXX_P}.tar.xz" \
- "${LIBCXX_P}"/{include,utils/libcxx} || die
+ default
mv "${LIBCXX_P}" libcxx || die
}
@@ -76,19 +70,50 @@ multilib_src_configure() {
-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
)
if use test; then
- mycmakeargs+=(
- -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
}
+build_libcxx() {
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+
+ cmake-utils_src_configure
+ cmake-utils_src_compile
+}
+
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
+ # build a local copy of libc++ for testing to avoid circular dep
+ build_libcxx
+ mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
+
cmake-utils_src_make check-libcxxabi
}
diff --git a/sys-libs/libcxxabi/libcxxabi-6.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-6.0.0.ebuild
index 282a95a9cd30..5c5a3146b60f 100644
--- a/sys-libs/libcxxabi/libcxxabi-6.0.0.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-6.0.0.ebuild
@@ -20,8 +20,8 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-fbsd"
-IUSE="+libunwind +static-libs test"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd"
+IUSE="+libunwind +static-libs test elibc_musl"
RESTRICT="!test? ( test )"
RDEPEND="
@@ -35,7 +35,6 @@ RDEPEND="
DEPEND="${RDEPEND}
>=sys-devel/llvm-6
test? ( >=sys-devel/clang-3.9.0
- ~sys-libs/libcxx-${PV}[libcxxabi(-)]
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
S=${WORKDIR}/${MY_P}
@@ -53,12 +52,7 @@ pkg_setup() {
}
src_unpack() {
- einfo "Unpacking ${MY_P}.tar.xz ..."
- tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die
-
- einfo "Unpacking parts of ${LIBCXX_P}.tar.xz ..."
- tar -xf "${DISTDIR}/${LIBCXX_P}.tar.xz" \
- "${LIBCXX_P}"/{include,utils/libcxx} || die
+ default
mv "${LIBCXX_P}" libcxx || die
}
@@ -77,19 +71,44 @@ multilib_src_configure() {
-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
)
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)
+build_libcxx() {
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
- [[ -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_configure
+ cmake-utils_src_compile
+}
+
+multilib_src_test() {
+ # build a local copy of libc++ for testing to avoid circular dep
+ build_libcxx
+ mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
cmake-utils_src_make check-libcxxabi
}
diff --git a/sys-libs/libcxxabi/libcxxabi-6.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-6.0.9999.ebuild
index b9675a9e147f..32451233234f 100644
--- a/sys-libs/libcxxabi/libcxxabi-6.0.9999.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-6.0.9999.ebuild
@@ -20,7 +20,7 @@ EGIT_BRANCH="release_60"
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="0"
KEYWORDS=""
-IUSE="+libunwind +static-libs test"
+IUSE="+libunwind +static-libs test elibc_musl"
RESTRICT="!test? ( test )"
RDEPEND="
@@ -34,7 +34,6 @@ RDEPEND="
DEPEND="${RDEPEND}
>=sys-devel/llvm-6
test? ( >=sys-devel/clang-3.9.0
- ~sys-libs/libcxx-${PV}[libcxxabi(-)]
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
# least intrusive of all
@@ -56,7 +55,7 @@ src_unpack() {
git-r3_fetch
git-r3_checkout https://llvm.org/git/libcxx.git \
- "${WORKDIR}"/libcxx '' include utils/libcxx
+ "${WORKDIR}"/libcxx ''
git-r3_checkout
}
@@ -75,19 +74,44 @@ multilib_src_configure() {
-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
)
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)
+build_libcxx() {
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
- [[ -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_configure
+ cmake-utils_src_compile
+}
+
+multilib_src_test() {
+ # build a local copy of libc++ for testing to avoid circular dep
+ build_libcxx
+ mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
cmake-utils_src_make check-libcxxabi
}
diff --git a/sys-libs/libcxxabi/libcxxabi-9999.ebuild b/sys-libs/libcxxabi/libcxxabi-9999.ebuild
index 9cf976d80c3f..a5db8cc56c06 100644
--- a/sys-libs/libcxxabi/libcxxabi-9999.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-9999.ebuild
@@ -19,7 +19,7 @@ EGIT_REPO_URI="https://git.llvm.org/git/libcxxabi.git
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="0"
KEYWORDS=""
-IUSE="+libunwind +static-libs test"
+IUSE="+libunwind +static-libs test elibc_musl"
RESTRICT="!test? ( test )"
RDEPEND="
@@ -33,7 +33,6 @@ RDEPEND="
DEPEND="${RDEPEND}
>=sys-devel/llvm-6
test? ( >=sys-devel/clang-3.9.0
- ~sys-libs/libcxx-${PV}[libcxxabi(-)]
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
# least intrusive of all
@@ -55,7 +54,7 @@ src_unpack() {
git-r3_fetch
git-r3_checkout https://llvm.org/git/libcxx.git \
- "${WORKDIR}"/libcxx '' include utils/libcxx
+ "${WORKDIR}"/libcxx ''
git-r3_checkout
}
@@ -74,19 +73,44 @@ multilib_src_configure() {
-DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
)
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)
+build_libcxx() {
+ local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
+ local CMAKE_USE_DIR=${WORKDIR}/libcxx
+ local BUILD_DIR=${BUILD_DIR}/libcxx
+ local mycmakeargs=(
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
- [[ -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_configure
+ cmake-utils_src_compile
+}
+
+multilib_src_test() {
+ # build a local copy of libc++ for testing to avoid circular dep
+ build_libcxx
+ mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die
cmake-utils_src_make check-libcxxabi
}