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

Reply via email to