Skip to content

Commit 557f844

Browse files
committed
mingw-w64-llvm: update to 22.1.1
Signed-off-by: Matthias Aßhauer <mha1993@live.de>
1 parent ebf5c46 commit 557f844

1 file changed

Lines changed: 53 additions & 66 deletions

File tree

mingw-w64-llvm/PKGBUILD

Lines changed: 53 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-llvm"
2727
"${MINGW_PACKAGE_PREFIX}-compiler-rt"
2828
$( (( _clangprefix )) && echo "${MINGW_PACKAGE_PREFIX}-gcc-compat" )
2929
"${MINGW_PACKAGE_PREFIX}-lld")
30-
_pkgver=21.1.8
30+
_pkgver=22.1.1
3131
pkgver=${_pkgver/-/}
32-
pkgrel=3
32+
pkgrel=2
3333
pkgdesc="C language family frontend for LLVM (mingw-w64)"
3434
arch=('any')
35-
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
35+
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
3636
url="https://llvm.org/"
3737
msys2_repository_url="https://github.com/llvm/llvm-project"
3838
msys2_references=(
@@ -46,23 +46,17 @@ makedepends=($([[ "$_compiler" == "clang" ]] && echo \
4646
"${MINGW_PACKAGE_PREFIX}-cmake"
4747
"${MINGW_PACKAGE_PREFIX}-ninja"
4848
"${MINGW_PACKAGE_PREFIX}-pkgconf"
49-
"${MINGW_PACKAGE_PREFIX}-libunwind"
5049
"${MINGW_PACKAGE_PREFIX}-libffi"
5150
"${MINGW_PACKAGE_PREFIX}-z3"
5251
"${MINGW_PACKAGE_PREFIX}-python"
5352
$((( _clangprefix )) && echo \
5453
"${MINGW_PACKAGE_PREFIX}-compiler-rt" \
5554
"${MINGW_PACKAGE_PREFIX}-libc++")
56-
"git"
55+
"${MINGW_PACKAGE_PREFIX}-git"
5756
)
5857
_url=https://github.com/llvm/llvm-project/releases/download/llvmorg-${_pkgver}
59-
source=("${_url}/llvm-${_pkgver}.src.tar.xz"{,.sig}
60-
"${_url}/clang-${_pkgver}.src.tar.xz"{,.sig}
61-
"${_url}/clang-tools-extra-${_pkgver}.src.tar.xz"{,.sig}
62-
"${_url}/compiler-rt-${_pkgver}.src.tar.xz"{,.sig}
63-
"${_url}/lld-${_pkgver}.src.tar.xz"{,.sig}
64-
"${_url}/cmake-${_pkgver}.src.tar.xz"{,.sig}
65-
"${_url}/third-party-${_pkgver}.src.tar.xz"{,.sig}
58+
_pkgfn=llvm-project-${_pkgver}.src
59+
source=("${_url}/${_pkgfn}.tar.xz"{,.sig}
6660
# 0001-0099 -> llvm
6761
"0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch"
6862
"0002-Fix-Findzstd-on-MINGW.patch"
@@ -76,19 +70,7 @@ source=("${_url}/llvm-${_pkgver}.src.tar.xz"{,.sig}
7670
# 0401-0499 -> clang-tools-extra
7771
# 0901-0999 -> whole tree
7872
)
79-
sha256sums=('d9022ddadb40a15015f6b27e6549a7144704ded8828ba036ffe4b8165707de21'
80-
'SKIP'
81-
'6090e3f23720d003cdd84483a47d0eec6d01adbb5e0c714ac0c8b58de546aa62'
82-
'SKIP'
83-
'6ddb7e731bf09ab821132e2e8a3c706b6d9c52c92a9ce9a9ed0976a9c6c28829'
84-
'SKIP'
85-
'dd54ae21aee1780fac59445b51ebff601ad016b31ac3a7de3b21126fd3ccb229'
86-
'SKIP'
87-
'd9524c5ee952500a2af92c27042a0d90ab089962af47816d4c85d0ebf76373d1'
88-
'SKIP'
89-
'85735f20fd8c81ecb0a09abb0c267018475420e93b65050cc5b7634eab744de9'
90-
'SKIP'
91-
'7fe99424384aea529ffaeec9cc9dfb8b451fd1852c03fc109e426fe208a1f1a7'
73+
sha256sums=('9c6f37f6f5f68d38f435d25f770fc48c62d92b2412205767a16dac2c942f0c95'
9274
'SKIP'
9375
'eb03df53671df6627768141b3aaa76abe176a14e5e47911c97bec544387c4aff'
9476
'd77d47e37e4948f5c01ae8bc05fb4e879b6516132c5a60c7bc820c9cbbb39668'
@@ -101,8 +83,7 @@ validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D' # Hans Wennborg, Googl
10183
'71046D1E9C6656BDD61171873E83BABF4A4F9E85' # Cullen Rhodes
10284
'FFB3368980F3E6BB5737145A316C56D064CACBA5' # Douglas Yung
10385
'D574BD5D1D0E98895E3BF90044F2485E45D59042') # Tobias Hieta
104-
noextract=(clang-${_pkgver}.src.tar.xz
105-
llvm-${_pkgver}.src.tar.xz)
86+
noextract=(${_pkgfn}.tar.xz)
10687

10788
apply_patch_with_msg() {
10889
for _patch in "$@"
@@ -121,20 +102,11 @@ revert_patch_with_msg() {
121102
}
122103

123104
prepare() {
124-
cd "${srcdir}"
125-
plain "Extracting clang-${_pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)"
126-
tar -xJf "${srcdir}"/clang-${_pkgver}.src.tar.xz -C "${srcdir}" || true
127-
128-
plain "Extracting llvm-${_pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)"
129-
tar -xJf "${srcdir}"/llvm-${_pkgver}.src.tar.xz -C "${srcdir}" || true
130-
131-
# Rename Directories
132-
for pkg in llvm clang clang-tools-extra compiler-rt lld cmake third-party; do
133-
mv ${pkg}-${_pkgver}.src ${pkg}
134-
done
105+
plain "Extracting ${_pkgfn}.tar.xz due to symlink(s) without pre-existing target(s)"
106+
${MINGW_PREFIX}/bin/bsdtar -xJf "${srcdir}"/${_pkgfn}.tar.xz -C "${srcdir}" || true
135107

136108
# Patch llvm
137-
cd "${srcdir}"/llvm
109+
cd "${srcdir}"/${_pkgfn}/llvm
138110
apply_patch_with_msg \
139111
"0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch" \
140112
"0002-Fix-Findzstd-on-MINGW.patch"
@@ -146,21 +118,21 @@ prepare() {
146118
fi
147119

148120
# Patch clang
149-
cd "${srcdir}"/clang
121+
cd "${srcdir}"/${_pkgfn}/clang
150122

151123
if (( ! _clangprefix )); then
152124
apply_patch_with_msg \
153125
"0101-link-pthread-with-mingw.patch"
154126
fi
155127

156128
# Patch lld
157-
cd "${srcdir}"/lld
129+
cd "${srcdir}"/${_pkgfn}/lld
158130

159131
apply_patch_with_msg \
160132
"0303-ignore-new-bfd-options.patch"
161133

162134
# Patch clang-tools-extra
163-
cd "${srcdir}"/clang-tools-extra
135+
cd "${srcdir}"/${_pkgfn}/clang-tools-extra
164136

165137
# Patch whole tree
166138
cd "${srcdir}"
@@ -212,11 +184,11 @@ build() {
212184

213185
if (( _pgo )); then
214186
# Build Clang with instrumentation.
215-
mkdir -p "${srcdir}"/build-${MSYSTEM}-instrument && cd "${srcdir}"/build-${MSYSTEM}-instrument
216187
${MINGW_PREFIX}/bin/cmake.exe \
217188
-GNinja \
218189
-DDEFAULT_SYSROOT=${MINGW_PREFIX} \
219-
-DLLVM_ENABLE_PROJECTS="clang;compiler-rt" \
190+
-DLLVM_ENABLE_PROJECTS="clang" \
191+
-DLLVM_ENABLE_RUNTIMES="compiler-rt" \
220192
-DLLVM_BUILD_INSTRUMENTED=IR \
221193
-DLLVM_TARGETS_TO_BUILD=Native \
222194
-DCLANG_DEFAULT_RTLIB=compiler-rt \
@@ -225,21 +197,22 @@ build() {
225197
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
226198
-DCOMPILER_RT_BUILD_PROFILE=OFF \
227199
"${common_cmake_args[@]}" \
228-
../llvm
229-
${MINGW_PREFIX}/bin/cmake --build . --target compiler-rt --target clang
200+
-S ${_pkgfn}/${_realname} \
201+
-B build-${MSYSTEM}-instrument
202+
${MINGW_PREFIX}/bin/cmake --build build-${MSYSTEM}-instrument --target compiler-rt --target clang
230203
# Use that to build part of llvm to generate a profile.
231-
mkdir -p "${srcdir}"/build-${MSYSTEM}-train && cd "${srcdir}"/build-${MSYSTEM}-train
232204
${MINGW_PREFIX}/bin/cmake.exe \
233205
-GNinja \
234206
-DCMAKE_C_COMPILER="${srcdir}"/build-${MSYSTEM}-instrument/bin/clang.exe \
235207
-DCMAKE_CXX_COMPILER="${srcdir}"/build-${MSYSTEM}-instrument/bin/clang++.exe \
236208
-DLLVM_ENABLE_PROJECTS="clang" \
237209
-DLLVM_TARGETS_TO_BUILD=Native \
238210
"${common_cmake_args[@]}" \
239-
../llvm
211+
-S ${_pkgfn}/${_realname} \
212+
-B build-${MSYSTEM}-train
240213
# Drop profiles generated from running cmake; those are not representative.
241214
rm "${srcdir}"/build-${MSYSTEM}-instrument/profiles/*.profraw
242-
${MINGW_PREFIX}/bin/cmake --build . --target clangSema
215+
${MINGW_PREFIX}/bin/cmake --build build-${MSYSTEM}-train --target clangSema
243216
# Save Profile data
244217
${MINGW_PREFIX}/bin/llvm-profdata merge -output="${srcdir}"/profdata "${srcdir}"/build-${MSYSTEM}-instrument/profiles/*.profraw
245218
common_cmake_args+=("-DLLVM_PROFDATA_FILE="${srcdir}"/profdata")
@@ -259,7 +232,10 @@ build() {
259232
-DCLANG_DEFAULT_CXX_STDLIB=libc++
260233
-DCLANG_LINKS_TO_CREATE="${_clang_links}"
261234
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON
235+
-DCOMPILER_RT_USE_LIBCXX=ON
236+
#-DSANITIZER_CXX_ABI="libc++"
262237
-DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF
238+
#-DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON
263239
)
264240
fi
265241

@@ -286,8 +262,6 @@ build() {
286262
platform_config+=(-DLLVM_TARGETS_TO_BUILD=Native)
287263
fi
288264

289-
mkdir -p "${srcdir}"/build-${MSYSTEM} && cd "${srcdir}"/build-${MSYSTEM}
290-
291265
MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
292266
${MINGW_PREFIX}/bin/cmake.exe \
293267
-GNinja \
@@ -298,9 +272,10 @@ build() {
298272
-DLLD_DEFAULT_LD_LLD_IS_MINGW=ON \
299273
"${common_cmake_args[@]}" \
300274
"${platform_config[@]}" \
301-
../llvm
275+
-S ${_pkgfn}/${_realname} \
276+
-B build-${MSYSTEM}
302277

303-
${MINGW_PREFIX}/bin/cmake.exe --build .
278+
${MINGW_PREFIX}/bin/cmake.exe --build build-${MSYSTEM}
304279
}
305280

306281

@@ -327,13 +302,14 @@ package_clang() {
327302
sed -i.orig '/\(extra\|scan-build\|scan-build-py\|scan-view\)\/cmake_install.cmake/d' build-${MSYSTEM}/tools/clang/tools/cmake_install.cmake
328303
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install "${srcdir}"/build-${MSYSTEM}/tools/clang
329304

330-
install -Dm644 "${srcdir}"/clang/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang/LICENSE
305+
install -Dm644 "${srcdir}"/${_pkgfn}/clang/LICENSE.TXT \
306+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/clang/LICENSE
331307

332308
# Install Python bindings
333309
_site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
334310
site_packages=$(cygpath ${_site_packages})
335311
install -d "${pkgdir}"/${site_packages}
336-
cp -a "${srcdir}"/clang/bindings/python/clang "${pkgdir}"/${site_packages}
312+
cp -a "${srcdir}"/${_pkgfn}/clang/bindings/python/clang "${pkgdir}"/${site_packages}
337313
${MINGW_PREFIX}/bin/python -m compileall -o 0 -o 1 "${pkgdir}"/${site_packages}
338314

339315
# Runtime libraries
@@ -351,7 +327,8 @@ package_clang-libs() {
351327

352328
cp -r "${srcdir}"/clang-libs/${MINGW_PREFIX} "${pkgdir}"${MINGW_PREFIX}
353329

354-
install -Dm644 "${srcdir}"/clang/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-libs/LICENSE
330+
install -Dm644 "${srcdir}"/${_pkgfn}/clang/LICENSE.TXT \
331+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-libs/LICENSE
355332
}
356333

357334
package_clang-analyzer() {
@@ -368,7 +345,8 @@ package_clang-analyzer() {
368345
# Compile Python scripts
369346
${MINGW_PREFIX}/bin/python -m compileall -o 0 -o 1 "${pkgdir}"${MINGW_PREFIX}/lib/libscanbuild
370347

371-
install -Dm644 "${srcdir}"/clang/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE
348+
install -Dm644 "${srcdir}"/${_pkgfn}/clang/LICENSE.TXT \
349+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-analyzer/LICENSE
372350
}
373351

374352
package_clang-tools-extra() {
@@ -378,22 +356,24 @@ package_clang-tools-extra() {
378356

379357
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install "${srcdir}"/build-${MSYSTEM}/tools/clang/tools/extra
380358

381-
install -Dm644 "${srcdir}"/clang-tools-extra/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-tools-extra/LICENSE
359+
install -Dm644 "${srcdir}"/${_pkgfn}/clang-tools-extra/LICENSE.TXT \
360+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/clang-tools-extra/LICENSE
382361
}
383362

384363
package_compiler-rt() {
385364
pkgdesc="Runtime libraries for Clang and LLVM (mingw-w64)"
386365
url="https://compiler-rt.llvm.org/"
387366
depends=($( (( _clangprefix )) || echo "${MINGW_PACKAGE_PREFIX}-cc-libs"))
388367

389-
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install "${srcdir}"/build-${MSYSTEM}/projects/compiler-rt
368+
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install "${srcdir}"/build-${MSYSTEM}//projects/compiler-rt
390369
mkdir -p "${pkgdir}"${MINGW_PREFIX}/bin/
391370
find "${pkgdir}"${MINGW_PREFIX}/lib/clang/${pkgver%.[0-9].*}/lib/windows/ \
392371
-name '*.dll' -exec mv '{}' "${pkgdir}"${MINGW_PREFIX}/bin/ \;
393372
# remove bin dir we created if it is still empty
394373
rmdir "${pkgdir}"${MINGW_PREFIX}/bin/ 2>/dev/null || true
395374

396-
install -Dm644 "${srcdir}"/compiler-rt/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/compiler-rt/LICENSE
375+
install -Dm644 "${srcdir}"/${_pkgfn}/compiler-rt/LICENSE.TXT \
376+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/compiler-rt/LICENSE
397377
}
398378

399379
package_gcc-compat() {
@@ -427,7 +407,8 @@ package_lld() {
427407
install -Dm755 "${pkgdir}"${MINGW_PREFIX}/bin/lld.exe "${pkgdir}"${MINGW_PREFIX}/bin/ld.exe
428408
fi
429409

430-
install -Dm644 "${srcdir}"/lld/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/lld/LICENSE
410+
install -Dm644 "${srcdir}"/${_pkgfn}/lld/LICENSE.TXT \
411+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/lld/LICENSE
431412
}
432413

433414
package_llvm() {
@@ -439,14 +420,18 @@ package_llvm() {
439420
# -i.orig to check what has been removed in-case it starts dropping more than it should
440421
sed -i.orig '/tools\/cmake_install.cmake/d' build-${MSYSTEM}/cmake_install.cmake
441422
sed -i.orig '/compiler-rt\/cmake_install.cmake/d' build-${MSYSTEM}/projects/cmake_install.cmake
423+
442424
DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install build-${MSYSTEM}
443425

444-
install -Dm644 "${srcdir}"/llvm/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/llvm/LICENSE
426+
install -Dm644 "${srcdir}"/${_pkgfn}/llvm/LICENSE.TXT \
427+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/llvm/LICENSE
445428

446429
# Install CMake stuff
447430
install -d "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/{modules,platforms}
448-
install -Dm644 "${srcdir}"/llvm/cmake/modules/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/
449-
install -Dm644 "${srcdir}"/llvm/cmake/platforms/*.cmake "${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/
431+
install -Dm644 "${srcdir}"/${_pkgfn}/llvm/cmake/modules/*.cmake \
432+
"${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/modules/
433+
install -Dm644 "${srcdir}"/${_pkgfn}/llvm/cmake/platforms/*.cmake \
434+
"${pkgdir}"${MINGW_PREFIX}/share/llvm/cmake/platforms/
450435

451436
# fix cmake files.
452437
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
@@ -470,7 +455,8 @@ package_llvm-tools() {
470455
# remove duplicate headers already in llvm package
471456
rm -r "${pkgdir}"${MINGW_PREFIX}/include/llvm-c
472457

473-
install -Dm644 "${srcdir}"/llvm/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/llvm-tools/LICENSE
458+
install -Dm644 "${srcdir}"/${_pkgfn}/llvm/LICENSE.TXT \
459+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/llvm-tools/LICENSE
474460

475461
# Provide gcov on CLANG*
476462
if [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]]; then
@@ -489,7 +475,8 @@ package_llvm-libs() {
489475

490476
cp -r "${srcdir}"/llvm-libs/${MINGW_PREFIX} "${pkgdir}"${MINGW_PREFIX}
491477

492-
install -Dm644 "${srcdir}"/llvm/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/llvm-libs/LICENSE
478+
install -Dm644 "${srcdir}"/${_pkgfn}/llvm/LICENSE.TXT \
479+
"${pkgdir}"${MINGW_PREFIX}/share/licenses/llvm-libs/LICENSE
493480
}
494481

495482
# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;

0 commit comments

Comments
 (0)