commit: f24f51ecacae2848e95c0fefedfd91708d53c564
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 5 14:14:55 2016 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct 5 14:46:45 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f24f51ec
sys-libs/libcxx: Backport libcxxabi support to 3.9.0
sys-libs/libcxx/libcxx-3.9.0.ebuild | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild
b/sys-libs/libcxx/libcxx-3.9.0.ebuild
index 110038b..656a979 100644
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild
@@ -32,11 +32,14 @@ if [[ ${PV} != 9999 ]] ; then
else
KEYWORDS=""
fi
-IUSE="elibc_glibc elibc_musl +libcxxrt libunwind +static-libs test"
-REQUIRED_USE="libunwind? ( libcxxrt )"
-
-RDEPEND="libcxxrt? (
sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
- !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )"
+IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test"
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
+ ?? ( libcxxabi libcxxrt )"
+
+RDEPEND="
+ libcxxabi? (
~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+ libcxxrt? (
sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
+ !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
# llvm-3.9.0 needed because its cmake files installation path changed, which is
# needed by libcxx
# clang-3.9.0 installs necessary target symlinks unconditionally
@@ -66,7 +69,7 @@ python_check_deps() {
pkg_setup() {
use test && python-any-r1_pkg_setup
- if ! use libcxxrt && ! tc-is-gcc ; then
+ if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then
eerror "To build ${PN} against libsupc++, you have to use gcc.
Other"
eerror "compilers are not supported. Please set CC=gcc and
CXX=g++"
eerror "and try again."
@@ -87,7 +90,10 @@ src_configure() {
multilib_src_configure() {
local cxxabi cxxabi_incs
- if use libcxxrt; then
+ if use libcxxabi; then
+ cxxabi=libcxxabi
+ cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
+ elif use libcxxrt; then
cxxabi=libcxxrt
cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
else
@@ -149,7 +155,7 @@ END_LDSCRIPT
gen_static_ldscript() {
local libdir=$(get_libdir)
- local cxxabi_lib=$(usex libcxxrt "libcxxrt.a" "libsupc++.a")
+ local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt
"libcxxrt.a" "libsupc++.a")")
# Move it first.
mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a"
|| die
@@ -168,7 +174,7 @@ gen_static_ldscript() {
gen_shared_ldscript() {
local libdir=$(get_libdir)
# libsupc++ doesn't have a shared version
- local cxxabi_lib=$(usex libcxxrt "libcxxrt.so" "libsupc++.a")
+ 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}"