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/compiler-rt-sanitizers/
Date: Tue, 12 Mar 2019 13:14:24
Message-Id: 1552396445.d81edef64e797f9d0a075b949ebdc28b138201b4.mgorny@gentoo
1 commit: d81edef64e797f9d0a075b949ebdc28b138201b4
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Tue Mar 12 13:00:04 2019 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 12 13:14:05 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d81edef6
7
8 sys-libs/compiler-rt-sanitizers: Bump to 8.0.0rc5
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-libs/compiler-rt-sanitizers/Manifest | 2 +
13 .../compiler-rt-sanitizers-8.0.0_rc5.ebuild | 171 +++++++++++++++++++++
14 2 files changed, 173 insertions(+)
15
16 diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest
17 index 44de27412fd..1e6d7672953 100644
18 --- a/sys-libs/compiler-rt-sanitizers/Manifest
19 +++ b/sys-libs/compiler-rt-sanitizers/Manifest
20 @@ -4,6 +4,7 @@ DIST compiler-rt-6.0.1.src.tar.xz 1686820 BLAKE2B 59fa3f6e478bd4d6dfa056c85dcdc4
21 DIST compiler-rt-7.0.1.src.tar.xz 1864520 BLAKE2B 14f72aad4379387f4212fb5efef3456cb5e8a03c7a91f98de2368e9b5ff2d02aeaed05da4fba6978b9e4e8698eb34c9c0c4c2df8d43b8c11e8e9d65079c7fa41 SHA512 b94a2a1fb9a6d587cef59b04b951628747bb35bdbcb67de8825aad402a2ba875916a347eef7a9575ac27264e8372e2d67cd477fe2d750c0ed3ce7d67bbbc7dba
22 DIST compiler-rt-8.0.0rc2.src.tar.xz 1902996 BLAKE2B e1f0046d130a9214ddf00cdb50e303316b9207eb8df946872992dd28b9fa89505e0c136104d372ea95305c1a9e9ff802cae7781c73bea53ac92378032986689c SHA512 49a34055a27efcee9fca1c0a50fe9061ae09945174a9076f76fce001621a3f8fa177ca0356313087a6d2b949d1d5149714036e89790868b984949721ce646685
23 DIST compiler-rt-8.0.0rc3.src.tar.xz 1904692 BLAKE2B 94faa29c6fc963da2cec5196547bf9814d94d4be45efdb0c057744b51055a8c0ab871cfab13bb21567f614d8da461398f35f8a7cf75475b925ffc4b2787f1683 SHA512 b40c4cae673c45763e722f32faf2db810591b92b1eb7ca46214f3686c2c96106d3eb4962f6ed4d340666502216994589269661f2169fc8f7044f0423d22c380f
24 +DIST compiler-rt-8.0.0rc5.src.tar.xz 1902880 BLAKE2B ef8a3eeb58845032f332cc3e0eed4ca33166450ef0ebf21d00fa6f0068ff61a3af54bddb696c9ab507c909baa5bf53ad1bc218ca5a3a354a021315fd6ad1b6b5 SHA512 6d7e520e2b16e097b35fcfce1637160ce8b3a174ef79b7c56e4fae466aef9dafc45f577de590426637f9950bbb2f0c18213cea90e566b05f4f6251e4e5de0dca
25 DIST compiler-rt-sanitizers-4.0.1-patchset.tar.xz 2384 BLAKE2B 6f9eee711c83570767f0bb634d0f91c18ee7f2af93a478938b8d5b6ce6f2c2fbaadb7bd5c7ee94a14dc1834359a046187db6bc7005b7c2efa539325dc0701ad9 SHA512 72d7357b4c27bbf8fa8b34803ddea905a9f1054e8fc7bf99a4ead9dc00408989ea2709f04be9cf45a27eeb4b9386c89feeb25b53a84f3cac9739196b89813887
26 DIST compiler-rt-sanitizers-6.0.1-patchset.tar.xz 8820 BLAKE2B d53ca357e060d058c7f20c51e74684f4c032fdf3ccec4c9f227dc7a5757206f331b9eda25a72c5c66faf4c44b2cc63eb439bd21bdd55d37a93918ab428fd7cd4 SHA512 782a34c56134bd061da30c1f598ddb9e90cb34a4e4ef058fa9634f6da372fd8693ff5e6cf98b59700942273240f83052b89ee2736b22f4e19bc8b519fbec8cad
27 DIST llvm-4.0.1.src.tar.xz 21065652 BLAKE2B 6327eed2d1feb108440f22d2581d1ff86c10a10c29793538d8d899c7e2dc83d3f7b147d3fd4bcce2bd2bf57c071b08c624aeafe40a3e7a3914506e7751727e6c SHA512 16adc39b34ddb628f81b171119a8e2a0e9138b25011e803ef0b688e2fbea116fc4953d3a1b61b90a98a75e33619f81566b7cb06a9a2ea4d04ac5e0eb303a2d1d
28 @@ -12,3 +13,4 @@ DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f
29 DIST llvm-7.0.1.src.tar.xz 28311056 BLAKE2B 737aa6144a415e41a4ff2c8bd5a727d6f14d7b1810c62cbefa5a25fe642c98cddf8a28e35c7e9783373aa3b96f5c0943229e229ad1b43e56e9ed6db0f27ab128 SHA512 ac43a3cb71a53deb55e3693653847cf20bf6f5d9056f224e6956c96d63bc59ebee9404f088eec9cabe65337b4607a905ef931354b373cf64e0004c6905a6b5df
30 DIST llvm-8.0.0rc2.src.tar.xz 30492444 BLAKE2B e7afd3b66e3eb204e07348f0bc77f0ae03d8e9581de4c94cba7c0b43b53f36ecd891c1272ce43ea6c78999fd404a7db105266a2eaca22975133571e1152961af SHA512 9d93197848e9472cc2fef2477897e4f4d74a79b17a164fd43446b0ffb327e7f484cf64f0c294d9a99707c0b46282eb0d16e6ceb5d2d568f25e4235f70ae3c5e7
31 DIST llvm-8.0.0rc3.src.tar.xz 30507604 BLAKE2B c9baaca537d292af9f12368df86090750508113eb7db393fe44c1ba7579df947f0a7092e6ddd4403bda9f9ed75fe8c049f3baf6d8671faa0c91e3267c584893a SHA512 82199841c2084cffe4e86b4f2d5ebe404059196f1f6d000ee69cfddba05d78c4500ad7499615fa67e9774ead6cba5a23db484dd85f752c8d08e8067f7d7b98ca
32 +DIST llvm-8.0.0rc5.src.tar.xz 30507432 BLAKE2B 3f20c3dc270439a32fe23e403ca5190e624f329a10d424d15475d32d89725b021f12af19845928da41be4b83afd254df1f6d27f235b0d2ab81ff76d9e588250f SHA512 b015bab2f0b0644d9fab295dee5d3b2a4d4d7c9d5870a06d7829f43d61e92aeb31b28d4c074f6a20ad803dde06399ef3298c951f1580b010f4b756f75bb4453b
33
34 diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.0_rc5.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.0_rc5.ebuild
35 new file mode 100644
36 index 00000000000..d1c8f9787e0
37 --- /dev/null
38 +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-8.0.0_rc5.ebuild
39 @@ -0,0 +1,171 @@
40 +# Copyright 1999-2019 Gentoo Authors
41 +# Distributed under the terms of the GNU General Public License v2
42 +
43 +EAPI=6
44 +
45 +: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
46 +# (needed due to CMAKE_BUILD_TYPE != Gentoo)
47 +CMAKE_MIN_VERSION=3.7.0-r1
48 +PYTHON_COMPAT=( python2_7 )
49 +
50 +inherit check-reqs cmake-utils flag-o-matic llvm \
51 + multiprocessing python-any-r1
52 +
53 +MY_P=compiler-rt-${PV/_/}.src
54 +LLVM_P=llvm-${PV/_/}.src
55 +
56 +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
57 +HOMEPAGE="https://llvm.org/"
58 +SRC_URI="https://prereleases.llvm.org/${PV/_//}/${MY_P}.tar.xz
59 + test? ( https://prereleases.llvm.org/${PV/_//}/${LLVM_P}.tar.xz )"
60 +
61 +LICENSE="|| ( UoI-NCSA MIT )"
62 +SLOT="${PV%_*}"
63 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
64 +IUSE="+clang +libfuzzer +profile +sanitize test +xray elibc_glibc"
65 +# FIXME: libfuzzer does not enable all its necessary dependencies
66 +REQUIRED_USE="libfuzzer? ( || ( sanitize xray ) )"
67 +RESTRICT="!test? ( test ) !clang? ( test )"
68 +
69 +CLANG_SLOT=${SLOT%%.*}
70 +# llvm-6 for new lit options
71 +DEPEND="
72 + >=sys-devel/llvm-6
73 + clang? ( sys-devel/clang )
74 + elibc_glibc? ( net-libs/libtirpc )
75 + test? (
76 + !<sys-apps/sandbox-2.13
77 + $(python_gen_any_dep ">=dev-python/lit-5[\${PYTHON_USEDEP}]")
78 + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT}
79 + sys-libs/compiler-rt:${SLOT} )
80 + ${PYTHON_DEPS}"
81 +
82 +S=${WORKDIR}/${MY_P}
83 +
84 +# least intrusive of all
85 +CMAKE_BUILD_TYPE=RelWithDebInfo
86 +
87 +check_space() {
88 + if use test; then
89 + local CHECKREQS_DISK_BUILD=11G
90 + check-reqs_pkg_pretend
91 + fi
92 +}
93 +
94 +pkg_pretend() {
95 + check_space
96 +}
97 +
98 +pkg_setup() {
99 + check_space
100 + llvm_pkg_setup
101 + python-any-r1_pkg_setup
102 +}
103 +
104 +src_unpack() {
105 + einfo "Unpacking ${MY_P}.tar.xz ..."
106 + tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die
107 +
108 + if use test; then
109 + einfo "Unpacking parts of ${LLVM_P}.tar.xz ..."
110 + tar -xf "${DISTDIR}/${LLVM_P}.tar.xz" \
111 + "${LLVM_P}"/utils/unittest || die
112 + mv "${LLVM_P}" llvm || die
113 + fi
114 +}
115 +
116 +src_prepare() {
117 + cmake-utils_src_prepare
118 +
119 + if use test; then
120 + # remove tests that are (still) broken by new glibc
121 + # https://bugs.llvm.org/show_bug.cgi?id=36065
122 + if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then
123 + rm test/lsan/TestCases/Linux/fork_and_leak.cc || die
124 + fi
125 + fi
126 +}
127 +
128 +src_configure() {
129 + # pre-set since we need to pass it to cmake
130 + BUILD_DIR=${WORKDIR}/${P}_build
131 +
132 + if use clang; then
133 + local -x CC=${CHOST}-clang
134 + local -x CXX=${CHOST}-clang++
135 + strip-unsupported-flags
136 + fi
137 +
138 + local mycmakeargs=(
139 + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
140 + # use a build dir structure consistent with install
141 + # this makes it possible to easily deploy test-friendly clang
142 + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}"
143 +
144 + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
145 + # built-ins installed by sys-libs/compiler-rt
146 + -DCOMPILER_RT_BUILD_BUILTINS=OFF
147 + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
148 + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
149 + -DCOMPILER_RT_BUILD_SANITIZERS=$(usex sanitize)
150 + -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
151 + )
152 + if use test; then
153 + mycmakeargs+=(
154 + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
155 + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
156 + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
157 +
158 + # they are created during src_test()
159 + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang"
160 + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++"
161 + )
162 +
163 + # same flags are passed for build & tests, so we need to strip
164 + # them down to a subset supported by clang
165 + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \
166 + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \
167 + strip-unsupported-flags
168 + fi
169 +
170 + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
171 + mycmakeargs+=(
172 + # disable use of SDK for the system itself
173 + -DDARWIN_macosx_CACHED_SYSROOT=/
174 + )
175 + fi
176 +
177 + cmake-utils_src_configure
178 +
179 + if use test; then
180 + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* )
181 + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}"
182 + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}"
183 +
184 + # copy clang over since resource_dir is located relatively to binary
185 + # therefore, we can put our new libraries in it
186 + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
187 + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \
188 + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die
189 + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
190 + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
191 + cp "${sys_dir}"/*builtins*.a \
192 + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
193 + # we also need LLVMgold.so for gold-based tests
194 + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
195 + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \
196 + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die
197 + fi
198 + fi
199 +}
200 +
201 +src_test() {
202 + # respect TMPDIR!
203 + local -x LIT_PRESERVES_TMP=1
204 + # disable sandbox to have it stop clobbering LD_PRELOAD
205 + local -x SANDBOX_ON=0
206 + # wipe LD_PRELOAD to make ASAN happy
207 + local -x LD_PRELOAD=
208 +
209 + cmake-utils_src_make check-all
210 +}