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/llvm-libunwind/
Date: Wed, 02 Mar 2022 09:09:11
Message-Id: 1646212140.b0f63c9c1e7f31c987ad0984836ad0bf80a1a174.mgorny@gentoo
1 commit: b0f63c9c1e7f31c987ad0984836ad0bf80a1a174
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Wed Mar 2 09:02:34 2022 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Wed Mar 2 09:09:00 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0f63c9c
7
8 sys-libs/llvm-libunwind: Bump to 14.0.0_rc2
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-libs/llvm-libunwind/Manifest | 1 +
13 .../llvm-libunwind-14.0.0_rc2.ebuild | 141 +++++++++++++++++++++
14 2 files changed, 142 insertions(+)
15
16 diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest
17 index 927820022e8b..57839d0edcd7 100644
18 --- a/sys-libs/llvm-libunwind/Manifest
19 +++ b/sys-libs/llvm-libunwind/Manifest
20 @@ -4,3 +4,4 @@ DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f6
21 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2
22 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f
23 DIST llvmorg-14.0.0-rc1.tar.gz 158019694 BLAKE2B c0494bfa5cc92be73d2a2736ce04a1ce11003aba477393639a6fc1b4114bb604ddd1929f288f831997693d2d3d7feb9eb7aa4bc1a2eb60d4b01777314ab90973 SHA512 62aac6a033ef0e321aef5060dcc61eb721b115a9cc1b7570497f72183d9e70a66b5910e90df14428bf56d33a44d4582c919e19f4477c0cfb3209e249b53fe534
24 +DIST llvmorg-14.0.0-rc2.tar.gz 158069989 BLAKE2B 06dcf5d82cd100bd792eadb3816cb297a11dc64dc8b699ccb2eac8ef0da4f10a24ba1984376427b638def6c8c8ae5bc9562e1cc30281fc55f044aa2a9657fc81 SHA512 c77d8c6db2ee6536f7e980465d5a3eb34403c6529e2012a4778ce76a559a6d639cf4c5ec84f965287d4b0739a73dc3e65d7deb27815d74c35e823839e579d2a3
25
26 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0_rc2.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0_rc2.ebuild
27 new file mode 100644
28 index 000000000000..b56cae043ae1
29 --- /dev/null
30 +++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0_rc2.ebuild
31 @@ -0,0 +1,141 @@
32 +# Copyright 1999-2022 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=7
36 +
37 +CMAKE_ECLASS=cmake
38 +PYTHON_COMPAT=( python3_{8..10} )
39 +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs
40 +
41 +DESCRIPTION="C++ runtime stack unwinder from LLVM"
42 +HOMEPAGE="https://github.com/llvm-mirror/libunwind"
43 +
44 +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
45 +SLOT="0"
46 +KEYWORDS=""
47 +IUSE="debug static-libs test"
48 +RESTRICT="!test? ( test )"
49 +
50 +RDEPEND="!sys-libs/libunwind"
51 +# llvm-6 for new lit options
52 +DEPEND="
53 + >=sys-devel/llvm-6"
54 +BDEPEND="
55 + test? ( >=sys-devel/clang-3.9.0
56 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
57 + )"
58 +
59 +LLVM_COMPONENTS=( libunwind libcxx llvm/cmake cmake )
60 +LLVM_TEST_COMPONENTS=( libcxxabi )
61 +llvm.org_set_globals
62 +
63 +python_check_deps() {
64 + has_version "dev-python/lit[${PYTHON_USEDEP}]"
65 +}
66 +
67 +pkg_setup() {
68 + use test && python-any-r1_pkg_setup
69 +}
70 +
71 +multilib_src_configure() {
72 + local use_compiler_rt=OFF
73 + local libdir=$(get_libdir)
74 +
75 + # link to compiler-rt
76 + # https://github.com/gentoo/gentoo/pull/21516
77 + if tc-is-clang; then
78 + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \
79 + ${LD_FLAGS} -print-libgcc-file-name)
80 + if [[ ${compiler_rt} == *libclang_rt* ]]; then
81 + use_compiler_rt=ON
82 + fi
83 + fi
84 +
85 + local mycmakeargs=(
86 + -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
87 + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
88 + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
89 + -DLIBUNWIND_INSTALL_HEADERS=ON
90 + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}"
91 + -DLLVM_INCLUDE_TESTS=$(usex test)
92 +
93 + # support non-native unwinding; given it's small enough,
94 + # enable it unconditionally
95 + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON
96 +
97 + # avoid dependency on libgcc_s if compiler-rt is used
98 + -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt}
99 + )
100 + if use test; then
101 + mycmakeargs+=(
102 + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
103 + -DLLVM_LIT_ARGS="$(get_lit_flags)"
104 + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx"
105 + )
106 + fi
107 +
108 + cmake_src_configure
109 +
110 + if use test; then
111 + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
112 + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
113 +
114 + # meh, we need to override the compiler explicitly
115 + sed -e "/%{cxx}/s@, '.*'@, '${clang_path}'@" \
116 + -i "${BUILD_DIR}"/test/lit.site.cfg || die
117 + fi
118 +}
119 +
120 +wrap_libcxxabi() {
121 + local mycmakeargs=(
122 + -DLIBCXXABI_LIBDIR_SUFFIX=
123 + -DLIBCXXABI_ENABLE_SHARED=OFF
124 + -DLIBCXXABI_ENABLE_STATIC=ON
125 + -DLIBCXXABI_USE_LLVM_UNWINDER=ON
126 + -DLIBCXXABI_INCLUDE_TESTS=OFF
127 +
128 + -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1
129 + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include
130 + )
131 +
132 + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)"
133 + local CMAKE_USE_DIR=${WORKDIR}/libcxxabi
134 + local BUILD_DIR=${BUILD_DIR}/libcxxabi
135 +
136 + "${@}"
137 +}
138 +
139 +wrap_libcxx() {
140 + local mycmakeargs=(
141 + -DLIBCXX_LIBDIR_SUFFIX=
142 + -DLIBCXX_ENABLE_SHARED=OFF
143 + -DLIBCXX_ENABLE_STATIC=ON
144 + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
145 + -DLIBCXX_CXX_ABI=libcxxabi
146 + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include
147 + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
148 + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl)
149 + -DLIBCXX_HAS_GCC_S_LIB=OFF
150 + -DLIBCXX_INCLUDE_TESTS=OFF
151 + -DLIBCXX_INCLUDE_BENCHMARKS=OFF
152 + )
153 +
154 + local CMAKE_USE_DIR=${WORKDIR}/libcxx
155 + local BUILD_DIR=${BUILD_DIR}/libcxx
156 +
157 + "${@}"
158 +}
159 +
160 +multilib_src_test() {
161 + # build local copies of libc++ & libc++abi for testing to avoid
162 + # circular deps
163 + wrap_libcxx cmake_src_configure
164 + wrap_libcxx cmake_build generate-cxx-headers
165 + wrap_libcxxabi cmake_src_configure
166 + wrap_libcxxabi cmake_src_compile
167 + wrap_libcxx cmake_src_compile
168 + mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/lib/" || die
169 +
170 + local -x LIT_PRESERVES_TMP=1
171 + cmake_build check-unwind
172 +}