Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/libcxx/
Date: Wed, 05 Oct 2016 14:46:55
Message-Id: 1475678805.f24f51ecacae2848e95c0fefedfd91708d53c564.mgorny@gentoo
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}"