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: Thu, 30 Jul 2020 22:11:38
Message-Id: 1596146995.5f8e31860febcdd65e3f7dba05bc3f2680d4e820.mgorny@gentoo
1 commit: 5f8e31860febcdd65e3f7dba05bc3f2680d4e820
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Jul 29 11:48:28 2020 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Thu Jul 30 22:09:55 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5f8e3186
7
8 sys-libs/libcxx: Remove 8*
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-libs/libcxx/Manifest | 1 -
13 sys-libs/libcxx/libcxx-8.0.1.ebuild | 210 ------------------------------------
14 2 files changed, 211 deletions(-)
15
16 diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
17 index 42dd0e50a44..082dafda8ad 100644
18 --- a/sys-libs/libcxx/Manifest
19 +++ b/sys-libs/libcxx/Manifest
20 @@ -1,4 +1,3 @@
21 -DIST libcxx-8.0.1.src.tar.xz 1739524 BLAKE2B 6e641cb6bda0de12c8408d3ab33f627389ac014aa65b3391c870aa96ffd347784e6b70b953bd1ee8eba56554e0f78a723ab77b9dba5f85e6219e2b95ca50c160 SHA512 75749d08b2b343c6f5f9aefb04be63e42f6d12efc51101d3647ed6f70c7a6d050afb3ab2f3636eae78cb523f5844de67b960a7a3145ed89ab0c7015deb14921e
22 DIST llvmorg-10.0.0.tar.gz 120804856 BLAKE2B 6b0254f5b913398cdcf2b2ec1ff219888706d2b79d5296590934714e42ac79f6a6547941ac2b1d2c4e6313dd18b6c7068e748aa6ac033e49fccbf5d355aa8191 SHA512 baa182d62fef1851836013ae8a1a00861ea89769778d67fb97b407a9de664e6c85da2af9c5b3f75d2bf34ff6b00004e531ca7e4b3115a26c0e61c575cf2303a0
23 DIST llvmorg-10.0.1.tar.gz 120880730 BLAKE2B 30f19f56c4d1f6abcda5fec76256219d1e3c8a6ff1a1f152f94bfe362c07884339fe571ff7fe903ed3b3deb150b2fa868c387887a0dea2930dc08b81db71a5b1 SHA512 48078fff9293a87f1a973f3348f79506f04c3da774295f5eb67d74dd2d1aa94f0973f8ced3f4ab9e8339902071f82c603b43d5608ad7227046c4da769c5d2151
24 DIST llvmorg-11.0.0-rc1.tar.gz 122688246 BLAKE2B 10ff3f08ff3780abb1d86ac67942e6aac52ff5daf820a2e3d23d8b79dbade1c5b1d398d0a577028d2d7c8759ab9a8b552a0305b5750310a015585c06cdadf844 SHA512 09564ed903902a5795fffaa4679badc30bf49739889a48074b5ae2c93bd29000cfb36a650208d5cae5d74899bade066f84b4aa023fc852eec246ff67bf64a267
25
26 diff --git a/sys-libs/libcxx/libcxx-8.0.1.ebuild b/sys-libs/libcxx/libcxx-8.0.1.ebuild
27 deleted file mode 100644
28 index f1ddc2f89dd..00000000000
29 --- a/sys-libs/libcxx/libcxx-8.0.1.ebuild
30 +++ /dev/null
31 @@ -1,210 +0,0 @@
32 -# Copyright 1999-2020 Gentoo Authors
33 -# Distributed under the terms of the GNU General Public License v2
34 -
35 -EAPI=6
36 -
37 -# Ninja provides better scalability and cleaner verbose output, and is used
38 -# throughout all LLVM projects.
39 -: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
40 -# (needed due to CMAKE_BUILD_TYPE != Gentoo)
41 -CMAKE_MIN_VERSION=3.7.0-r1
42 -PYTHON_COMPAT=( python2_7 )
43 -
44 -inherit cmake-multilib llvm multiprocessing python-any-r1 \
45 - toolchain-funcs
46 -
47 -MY_P=${P}.src
48 -DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
49 -HOMEPAGE="https://libcxx.llvm.org/"
50 -SRC_URI="https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/${MY_P}.tar.xz"
51 -
52 -LICENSE="|| ( UoI-NCSA MIT )"
53 -SLOT="0"
54 -KEYWORDS="amd64 arm arm64 x86"
55 -IUSE="elibc_glibc elibc_musl +libcxxabi libcxxrt +libunwind +static-libs test"
56 -REQUIRED_USE="libunwind? ( || ( libcxxabi libcxxrt ) )
57 - ?? ( libcxxabi libcxxrt )"
58 -RESTRICT="!test? ( test )"
59 -
60 -RDEPEND="
61 - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
62 - libcxxrt? ( sys-libs/libcxxrt[libunwind=,static-libs?,${MULTILIB_USEDEP}] )
63 - !libcxxabi? ( !libcxxrt? ( >=sys-devel/gcc-4.7:=[cxx] ) )"
64 -# llvm-6 for new lit options
65 -# clang-3.9.0 installs necessary target symlinks unconditionally
66 -# which removes the need for MULTILIB_USEDEP
67 -DEPEND="${RDEPEND}
68 - test? ( >=sys-devel/clang-3.9.0
69 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )
70 - app-arch/xz-utils
71 - >=sys-devel/llvm-6"
72 -
73 -S=${WORKDIR}/${MY_P}
74 -
75 -DOCS=( CREDITS.TXT )
76 -
77 -PATCHES=(
78 - # Add link flag "-Wl,-z,defs" to avoid underlinking; this is needed in a
79 - # out-of-tree build.
80 - "${FILESDIR}/${PN}-3.9-cmake-link-flags.patch"
81 -)
82 -
83 -# least intrusive of all
84 -CMAKE_BUILD_TYPE=RelWithDebInfo
85 -
86 -python_check_deps() {
87 - has_version "dev-python/lit[${PYTHON_USEDEP}]"
88 -}
89 -
90 -pkg_setup() {
91 - llvm_pkg_setup
92 - use test && python-any-r1_pkg_setup
93 -
94 - if ! use libcxxabi && ! use libcxxrt && ! tc-is-gcc ; then
95 - eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
96 - eerror "compilers are not supported. Please set CC=gcc and CXX=g++"
97 - eerror "and try again."
98 - die
99 - fi
100 -}
101 -
102 -test_compiler() {
103 - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
104 - <<<'int main() { return 0; }' &>/dev/null
105 -}
106 -
107 -src_configure() {
108 - # note: we need to do this before multilib kicks in since it will
109 - # alter the CHOST
110 - local cxxabi cxxabi_incs
111 - if use libcxxabi; then
112 - cxxabi=libcxxabi
113 - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi"
114 - elif use libcxxrt; then
115 - cxxabi=libcxxrt
116 - cxxabi_incs="${EPREFIX}/usr/include/libcxxrt"
117 - else
118 - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
119 - cxxabi=libsupc++
120 - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
121 - fi
122 -
123 - multilib-minimal_src_configure
124 -}
125 -
126 -multilib_src_configure() {
127 - # we want -lgcc_s for unwinder, and for compiler runtime when using
128 - # gcc, clang with gcc runtime (or any unknown compiler)
129 - local extra_libs=() want_gcc_s=ON
130 - if use libunwind; then
131 - # work-around missing -lunwind upstream
132 - extra_libs+=( -lunwind )
133 - # if we're using libunwind and clang with compiler-rt, we want
134 - # to link to compiler-rt instead of -lgcc_s
135 - if tc-is-clang; then
136 - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
137 - ${LDFLAGS} -print-libgcc-file-name)
138 - if [[ ${compiler_rt} == *libclang_rt* ]]; then
139 - want_gcc_s=OFF
140 - extra_libs+=( "${compiler_rt}" )
141 - fi
142 - fi
143 - fi
144 -
145 - # bootstrap: cmake is unhappy if compiler can't link to stdlib
146 - local nolib_flags=( -nodefaultlibs -lc )
147 - if ! test_compiler; then
148 - if test_compiler "${nolib_flags[@]}"; then
149 - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
150 - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}"
151 - fi
152 - fi
153 -
154 - local libdir=$(get_libdir)
155 - local mycmakeargs=(
156 - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib}
157 - -DLIBCXX_ENABLE_SHARED=ON
158 - -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
159 - -DLIBCXX_CXX_ABI=${cxxabi}
160 - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
161 - # we're using our own mechanism for generating linker scripts
162 - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
163 - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
164 - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s}
165 - -DLIBCXX_INCLUDE_TESTS=$(usex test)
166 - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}"
167 - )
168 -
169 - if use test; then
170 - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
171 - local jobs=${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}
172 -
173 - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
174 -
175 - mycmakeargs+=(
176 - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
177 - -DLLVM_LIT_ARGS="-vv;-j;${jobs};--param=cxx_under_test=${clang_path}"
178 - )
179 - fi
180 - cmake-utils_src_configure
181 -}
182 -
183 -multilib_src_test() {
184 - cmake-utils_src_make check-libcxx
185 -}
186 -
187 -# Usage: deps
188 -gen_ldscript() {
189 - local output_format
190 - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
191 - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
192 -
193 - cat <<-END_LDSCRIPT
194 -/* GNU ld script
195 - Include missing dependencies
196 -*/
197 -${output_format}
198 -GROUP ( $@ )
199 -END_LDSCRIPT
200 -}
201 -
202 -gen_static_ldscript() {
203 - local libdir=$(get_libdir)
204 - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "$(usex libcxxrt "libcxxrt.a" "libsupc++.a")")
205 -
206 - # Move it first.
207 - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die
208 - # Generate libc++.a ldscript for inclusion of its dependencies so that
209 - # clang++ -stdlib=libc++ -static works out of the box.
210 - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)"
211 - # On Linux/glibc it does not link without libpthread or libdl. It is
212 - # fine on FreeBSD.
213 - use elibc_glibc && deps+=" libpthread.a libdl.a"
214 -
215 - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die
216 -}
217 -
218 -gen_shared_ldscript() {
219 - local libdir=$(get_libdir)
220 - # libsupc++ doesn't have a shared version
221 - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "$(usex libcxxrt "libcxxrt.so" "libsupc++.a")")
222 -
223 - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die
224 - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)"
225 -
226 - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die
227 -}
228 -
229 -multilib_src_install() {
230 - cmake-utils_src_install
231 - gen_shared_ldscript
232 - use static-libs && gen_static_ldscript
233 -}
234 -
235 -pkg_postinst() {
236 - elog "This package (${PN}) is mainly intended as a replacement for the C++"
237 - elog "standard library when using clang."
238 - elog "To use it, instead of libstdc++, use:"
239 - elog " clang++ -stdlib=libc++"
240 - elog "to compile your C++ programs."
241 -}