@@ -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
3131pkgver=${_pkgver/ -/ }
32- pkgrel=3
32+ pkgrel=2
3333pkgdesc=" C language family frontend for LLVM (mingw-w64)"
3434arch=(' any' )
35- mingw_arch=(' mingw32 ' ' mingw64' ' ucrt64' ' clang64' ' clangarm64' )
35+ mingw_arch=(' mingw64' ' ucrt64' ' clang64' ' clangarm64' )
3636url=" https://llvm.org/"
3737msys2_repository_url=" https://github.com/llvm/llvm-project"
3838msys2_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
10788apply_patch_with_msg () {
10889 for _patch in " $@ "
@@ -121,20 +102,11 @@ revert_patch_with_msg() {
121102}
122103
123104prepare () {
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
357334package_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
374352package_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
384363package_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
399379package_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
433414package_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