From 5510d9d7d1c93c2ea71a2bd6f0666168808d5dd6 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 18 Mar 2018 04:54:42 +0000 Subject: gentoo resync : 18.03.2018 --- sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild | 47 +++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 11 deletions(-) (limited to 'sys-libs/libcxxabi/libcxxabi-5.0.1.ebuild') 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 } -- cgit v1.2.3