Сравнение clang-16.0.6-r1 с clang-22.1.5

/usr/portage/llvm-core/clang/clang-22.1.5.ebuild 2026-05-14 19:17:05.632202561 +0300
3 3

  
4 4
EAPI=8
5 5

  
6
PYTHON_COMPAT=( python3_12 )
6
PYTHON_COMPAT=( python3_{12..14} )
7 7

  
8
inherit cmake flag-o-matic llvm llvm.org multilib multilib-minimal
8
inherit cmake llvm.org multilib multilib-minimal
9 9
inherit prefix python-single-r1 toolchain-funcs
10 10

  
11 11
DESCRIPTION="C language family frontend for LLVM"
......
16 16

  
17 17
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
18 18
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
19
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86 ~arm64-macos ~x64-macos"
19
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
20 20
IUSE="debug doc +extra ieee-long-double +pie +static-analyzer test xml"
21 21
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
22 22
RESTRICT="!test? ( test )"
......
31 31
	${PYTHON_DEPS}
32 32
	${DEPEND}
33 33
	>=llvm-core/clang-common-${PV}
34
	!<llvm-core/llvm-22.1.0-r2:22
34 35
"
35 36
BDEPEND="
36 37
	${PYTHON_DEPS}
37
	doc? ( $(python_gen_cond_dep '
38
		dev-python/recommonmark[${PYTHON_USEDEP}]
39
		dev-python/sphinx[${PYTHON_USEDEP}]
40
	') )
38
	test? ( ~llvm-core/lld-${PV} )
41 39
	xml? ( virtual/pkgconfig )
42 40
"
43 41
PDEPEND="
44
	~llvm-runtimes/clang-runtime-${PV}
42
	llvm-runtimes/clang-runtime:${LLVM_MAJOR}
45 43
	llvm-core/clang-toolchain-symlinks:${LLVM_MAJOR}
46 44
"
47 45

  
48 46
LLVM_COMPONENTS=(
49 47
	clang clang-tools-extra cmake
50
	llvm/lib/Transforms/Hello
51 48
)
52 49
LLVM_MANPAGES=1
53 50
LLVM_TEST_COMPONENTS=(
54
	llvm/lib/Testing
55 51
	llvm/utils
56
	third-party
57 52
)
58
LLVM_PATCHSET=${PV}-r6
59
LLVM_USE_TARGETS=llvm
53
LLVM_USE_TARGETS=llvm+eq
60 54
llvm.org_set_globals
61 55

  
56
[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
57
BDEPEND+="
58
	$(python_gen_cond_dep '
59
		dev-python/myst-parser[${PYTHON_USEDEP}]
60
		dev-python/sphinx[${PYTHON_USEDEP}]
61
	')
62
"
63
[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
64

  
62 65
# Multilib notes:
63 66
# 1. ABI_* flags control ABIs libclang* is built for only.
64 67
# 2. clang is always capable of compiling code for all ABIs for enabled
......
70 73
# Therefore: use llvm-core/clang[${MULTILIB_USEDEP}] only if you need
71 74
# multilib clang* libraries (not runtime, not wrappers).
72 75

  
73
pkg_setup() {
74
	LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
75
	python-single-r1_pkg_setup
76
}
77

  
78 76
src_prepare() {
79 77
	# create extra parent dir for relative CLANG_RESOURCE_DIR access
80 78
	mkdir -p x/y || die
......
118 116
					docs-clang-html|docs-clang-tools-html)
119 117
						use doc || continue
120 118
						;;
119
					# built only with tests
120
					c-index-test)
121
						continue
122
						;;
121 123
				esac
122 124

  
123 125
				all_targets+=( "${l}" )
......
141 143
		done
142 144

  
143 145
		if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
144
			eqawarn "get_distribution_components() is outdated!"
145
			eqawarn "   Add: ${add[*]}"
146
			eqawarn "Remove: ${remove[*]}"
146
			eerror "get_distribution_components() is outdated!"
147
			eerror "   Add: ${add[*]}"
148
			eerror "Remove: ${remove[*]}"
149
			die "Update get_distribution_components()!"
147 150
		fi
148 151
		cd - >/dev/null || die
149 152
	fi
......
173 176
		ppc-htm-resource-headers
174 177
		ppc-resource-headers
175 178
		riscv-resource-headers
179
		spirv-resource-headers
176 180
		systemz-resource-headers
177 181
		utility-resource-headers
178 182
		ve-resource-headers
......
192 196
			libclang-python-bindings
193 197

  
194 198
			# tools
195
			amdgpu-arch
196
			c-index-test
197 199
			clang
198 200
			clang-format
201
			clang-installapi
199 202
			clang-linker-wrapper
203
			clang-nvlink-wrapper
200 204
			clang-offload-bundler
201
			clang-offload-packager
202 205
			clang-refactor
203 206
			clang-repl
204
			clang-rename
205 207
			clang-scan-deps
208
			clang-sycl-linker
206 209
			diagtool
207 210
			hmaptool
208
			nvptx-arch
211
			offload-arch
209 212

  
210 213
			# needed for cross-compiling Clang
211 214
			clang-tblgen
......
220 223
				clang-include-cleaner
221 224
				clang-include-fixer
222 225
				clang-move
223
				clang-pseudo
224 226
				clang-query
225 227
				clang-reorder-fields
226 228
				clang-tidy
......
230 232
				modularize
231 233
				pp-trace
232 234
			)
235

  
236
			use kernel_Darwin && out+=( ClangdXPCLib )
233 237
		fi
234 238

  
235 239
		if llvm_are_manpages_built; then
......
255 259
}
256 260

  
257 261
multilib_src_configure() {
258
	tc-is-gcc && filter-lto # GCC miscompiles LLVM, bug #873670
259

  
260 262
	local mycmakeargs=(
261 263
		-DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
262 264
		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
263 265
		-DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
266
		-DLLVM_ROOT="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
264 267
		-DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/${LLVM_MAJOR}"
268
		-DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
265 269
		# relative to bindir
266 270
		-DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
267 271

  
......
276 280
		-DLLVM_ENABLE_EH=ON
277 281
		-DLLVM_ENABLE_RTTI=ON
278 282

  
279
		-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
280 283
		# libgomp support fails to find headers without explicit -I
281 284
		# furthermore, it provides only syntax checking
282 285
		-DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
283 286

  
284
		# disable using CUDA to autodetect GPU, just build for all
285
		-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
286
		# disable linking to HSA to avoid automagic dep,
287
		# load it dynamically instead
288
		-DCMAKE_DISABLE_FIND_PACKAGE_hsa-runtime64=ON
289

  
290 287
		-DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
291 288

  
292
		-DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
289
		-DCLANG_ENABLE_LIBXML2=$(usex xml)
290
		-DCLANG_ENABLE_OBJC_REWRITER=ON
293 291
		-DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
292
		# TODO: CLANG_ENABLE_HLSL?
294 293

  
295 294
		-DPython3_EXECUTABLE="${PYTHON}"
296 295
	)
......
337 336
		)
338 337
	fi
339 338

  
340
	if [[ -n ${EPREFIX} ]]; then
341
		mycmakeargs+=(
342
			-DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
343
		)
344
	fi
345

  
346 339
	if tc-is-cross-compiler; then
347 340
		has_version -b llvm-core/clang:${LLVM_MAJOR} ||
348 341
			die "llvm-core/clang:${LLVM_MAJOR} is required on the build host."
......
366 359

  
367 360
multilib_src_compile() {
368 361
	cmake_build distribution
369

  
370
	# provide a symlink for tests
371
	if [[ ! -L ${WORKDIR}/lib/clang ]]; then
372
		mkdir -p "${WORKDIR}"/lib || die
373
		ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
374
	fi
375 362
}
376 363

  
377 364
multilib_src_test() {
......
440 427
	# (also drop the version suffix from runtime headers)
441 428
	rm -rf "${ED}"/usr/include || die
442 429
	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
443
	mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die
430
	mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
444 431
	if multilib_native_use extra; then
445 432
		# don't wrap clang-tidy headers, the list is too long
446 433
		# (they're fine for non-native ABI but enabling the targets is problematic)
Спасибо!