summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild')
-rw-r--r--sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild25
1 files changed, 22 insertions, 3 deletions
diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
index dd1a1a1f3a2f..8d2f6ea86216 100644
--- a/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild
@@ -42,7 +42,11 @@ python_check_deps() {
}
pkg_setup() {
- 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
use test && python-any-r1_pkg_setup
if ! use libcxxabi && ! tc-is-gcc ; then
@@ -59,6 +63,10 @@ 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() {
@@ -100,6 +108,15 @@ multilib_src_configure() {
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
@@ -189,8 +206,10 @@ gen_shared_ldscript() {
multilib_src_install() {
cmake_src_install
- gen_shared_ldscript
- use static-libs && gen_static_ldscript
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ gen_shared_ldscript
+ use static-libs && gen_static_ldscript
+ fi
}
pkg_postinst() {