1 |
commit: f24f51ecacae2848e95c0fefedfd91708d53c564 |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Oct 5 14:14:55 2016 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Oct 5 14:46:45 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f24f51ec |
7 |
|
8 |
sys-libs/libcxx: Backport libcxxabi support to 3.9.0 |
9 |
|
10 |
sys-libs/libcxx/libcxx-3.9.0.ebuild | 24 +++++++++++++++--------- |
11 |
1 file changed, 15 insertions(+), 9 deletions(-) |
12 |
|
13 |
diff --git a/sys-libs/libcxx/libcxx-3.9.0.ebuild b/sys-libs/libcxx/libcxx-3.9.0.ebuild |
14 |
index 110038b..656a979 100644 |
15 |
--- a/sys-libs/libcxx/libcxx-3.9.0.ebuild |
16 |
+++ b/sys-libs/libcxx/libcxx-3.9.0.ebuild |
17 |
@@ -32,11 +32,14 @@ if [[ ${PV} != 9999 ]] ; then |
18 |
else |
19 |
KEYWORDS="" |
20 |
fi |
21 |
-IUSE="elibc_glibc elibc_musl +libcxxrt libunwind +static-libs test" |
22 |
-REQUIRED_USE="libunwind? ( libcxxrt )" |
23 |
- |
24 |
-RDEPEND="libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) |
25 |
- !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] )" |
26 |
+IUSE="elibc_glibc elibc_musl libcxxabi +libcxxrt libunwind +static-libs test" |
27 |
+REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) ) |
28 |
+ ?? ( libcxxabi libcxxrt )" |
29 |
+ |
30 |
+RDEPEND=" |
31 |
+ libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) |
32 |
+ libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) |
33 |
+ !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )" |
34 |
# llvm-3.9.0 needed because its cmake files installation path changed, which is |
35 |
# needed by libcxx |
36 |
# clang-3.9.0 installs necessary target symlinks unconditionally |
37 |
@@ -66,7 +69,7 @@ python_check_deps() { |
38 |
pkg_setup() { |
39 |
use test && python-any-r1_pkg_setup |
40 |
|
41 |
- if ! use libcxxrt && ! tc-is-gcc ; then |
42 |
+ if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then |
43 |
eerror "To build ${PN} against libsupc++, you have to use gcc. Other" |
44 |
eerror "compilers are not supported. Please set CC=gcc and CXX=g++" |
45 |
eerror "and try again." |
46 |
@@ -87,7 +90,10 @@ src_configure() { |
47 |
|
48 |
multilib_src_configure() { |
49 |
local cxxabi cxxabi_incs |
50 |
- if use libcxxrt; then |
51 |
+ if use libcxxabi; then |
52 |
+ cxxabi=libcxxabi |
53 |
+ cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" |
54 |
+ elif use libcxxrt; then |
55 |
cxxabi=libcxxrt |
56 |
cxxabi_incs="${EPREFIX}/usr/include/libcxxrt" |
57 |
else |
58 |
@@ -149,7 +155,7 @@ END_LDSCRIPT |
59 |
|
60 |
gen_static_ldscript() { |
61 |
local libdir=$(get_libdir) |
62 |
- local cxxabi_lib=$(usex libcxxrt "libcxxrt.a" "libsupc++.a") |
63 |
+ local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")") |
64 |
|
65 |
# Move it first. |
66 |
mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die |
67 |
@@ -168,7 +174,7 @@ gen_static_ldscript() { |
68 |
gen_shared_ldscript() { |
69 |
local libdir=$(get_libdir) |
70 |
# libsupc++ doesn't have a shared version |
71 |
- local cxxabi_lib=$(usex libcxxrt "libcxxrt.so" "libsupc++.a") |
72 |
+ local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")") |
73 |
|
74 |
mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die |
75 |
local deps="libc++_shared.so ${cxxabi_lib}" |