From 5d5f3ac1f6d24c6893be04c9f1637a408b62c713 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 6 Oct 2016 17:19:42 +0200 Subject: [PATCH] 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 656a9799a33d..a92f0f8091ab 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 a5e7c7fc2575..bbc218b36af3 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 } -- 2.26.2