summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--profiles/prefix/darwin/macos/package.use.force4
-rw-r--r--sys-libs/libcxx/libcxx-11.0.0.ebuild27
-rw-r--r--sys-libs/libcxx/libcxx-11.0.1.9999.ebuild25
-rw-r--r--sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild25
-rw-r--r--sys-libs/libcxx/libcxx-11.0.1_rc2.ebuild25
-rw-r--r--sys-libs/libcxx/libcxx-12.0.0.9999.ebuild25
6 files changed, 115 insertions, 16 deletions
diff --git a/profiles/prefix/darwin/macos/package.use.force b/profiles/prefix/darwin/macos/package.use.force
index 4b4798eb7ee5..c1677ba92529 100644
--- a/profiles/prefix/darwin/macos/package.use.force
+++ b/profiles/prefix/darwin/macos/package.use.force
@@ -21,3 +21,7 @@ media-gfx/tachyon threads opengl
# Elias Pipping <pipping@gentoo.org> (2007-11-29)
# won't compile without
media-libs/libsdl opengl
+
+# Jacob Floyd <cognifloyd@gmail.org> (2020-12-20)
+# Make sure we always use libcxxabi on macos prefix
+sys-libs/libcxx libcxxabi
diff --git a/sys-libs/libcxx/libcxx-11.0.0.ebuild b/sys-libs/libcxx/libcxx-11.0.0.ebuild
index d4ba5210700f..cb077d76d64b 100644
--- a/sys-libs/libcxx/libcxx-11.0.0.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.0.ebuild
@@ -14,7 +14,7 @@ llvm.org_set_globals
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~riscv x86 ~x64-macos"
IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind +static-libs test"
REQUIRED_USE="libunwind? ( libcxxabi )"
RESTRICT="!test? ( test )"
@@ -41,7 +41,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
@@ -58,6 +62,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() {
@@ -99,6 +107,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
@@ -188,8 +205,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() {
diff --git a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
index dd1a1a1f3a2f..8d2f6ea86216 100644
--- a/sys-libs/libcxx/libcxx-11.0.1.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1.9999.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() {
diff --git a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
index dd1a1a1f3a2f..8d2f6ea86216 100644
--- a/sys-libs/libcxx/libcxx-11.0.1_rc1.ebuild
+++ b/sys-libs/libcxx/libcxx-11.0.1_rc1.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() {
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() {
diff --git a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
index dd1a1a1f3a2f..8d2f6ea86216 100644
--- a/sys-libs/libcxx/libcxx-12.0.0.9999.ebuild
+++ b/sys-libs/libcxx/libcxx-12.0.0.9999.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() {