Skip to content

{compiler}[GCCcore/15.2.0] LLVM 22.1.8 - #26628

Draft
Crivella wants to merge 3 commits into
easybuilders:developfrom
Crivella:feature-LLVM22
Draft

{compiler}[GCCcore/15.2.0] LLVM 22.1.8#26628
Crivella wants to merge 3 commits into
easybuilders:developfrom
Crivella:feature-LLVM22

Conversation

@Crivella

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown

Updated software LLVM-22.1.8-GCCcore-15.2.0.eb

Diff against LLVM-20.1.8-GCCcore-15.2.0-llvmlite.eb

easybuild/easyconfigs/l/LLVM/LLVM-20.1.8-GCCcore-15.2.0-llvmlite.eb

diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-20.1.8-GCCcore-15.2.0-llvmlite.eb b/easybuild/easyconfigs/l/LLVM/LLVM-22.1.8-GCCcore-15.2.0.eb
index 4d1c370d0d..8ef95be566 100644
--- a/easybuild/easyconfigs/l/LLVM/LLVM-20.1.8-GCCcore-15.2.0-llvmlite.eb
+++ b/easybuild/easyconfigs/l/LLVM/LLVM-22.1.8-GCCcore-15.2.0.eb
@@ -1,6 +1,6 @@
 name = 'LLVM'
-version = '20.1.8'
-versionsuffix = '-llvmlite'
+version = '22.1.8'
+
 
 homepage = "https://llvm.org/"
 description = """
@@ -14,15 +14,22 @@ to use LLVM as an optimizer and code generator.
 """
 
 toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
-toolchainopts = {'pic': True}
+toolchainopts = {
+    'pic': True
+}
 
 source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/']
-sources = ['llvm-project-%(version)s.src.tar.xz']
-patches = ['LLVM-20.1.x_improved-CUDA-13-support.patch']
+sources = [
+    'llvm-project-%(version)s.src.tar.xz',
+]
+patches = [
+    'LLVM-18.1.8_envintest.patch',
+    'LLVM-19.1.7_clang_rpathwrap_test.patch',
+]
 checksums = [
-    {'llvm-project-20.1.8.src.tar.xz': '6898f963c8e938981e6c4a302e83ec5beb4630147c7311183cf61069af16333d'},
-    {'LLVM-20.1.x_improved-CUDA-13-support.patch':
-     '78762218c8f34b25533f909533076f195136232b7fca1672af602182dfcdc5bf'},
+    {'llvm-project-22.1.8.src.tar.xz': '922f1817a0df7b1489272d18134ee0087a8b068828f87ac63b9861b1a9965888'},
+    {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'},
+    {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'},
 ]
 
 builddependencies = [
@@ -39,33 +46,44 @@ dependencies = [
     ('libxml2', '2.15.1'),
     ('ncurses', '6.6'),
     ('zlib', '2.3.2'),
+    ('Z3', '4.15.4'),
     ('zstd', '1.5.7'),
 ]
 
-build_shared_libs = False
 
-minimal = True
+build_shared_libs = True
 
-bootstrap = False
+bootstrap = True
 full_llvm = False
-build_clang_extras = False
-build_runtimes = False
-build_lld = False
-build_lldb = False
-build_bolt = False
-build_openmp = False
-build_openmp_tools = False
-build_openmp_offload = False
-use_polly = False
+build_clang_extras = True
+build_runtimes = True
+build_lld = True
+build_lldb = True
+build_bolt = True
+build_openmp = True
+build_openmp_tools = True
+build_openmp_offload = True
+use_polly = True
 
-python_bindings = False
+python_bindings = True
 
 build_targets = ['all']
 # disable_werror = True
 
 skip_all_tests = False
-skip_sanitizer_tests = False
-test_suite_max_failed = 0
+skip_sanitizer_tests = True
+test_suite_max_failed = 10
 test_suite_timeout_single = 5 * 60
+test_suite_ignore_patterns = [
+    "X86/register-fragments-bolt-symbols.s",
+    "modularize/ProblemsCoverage.modularize",
+    "Driver/atomic.f90",
+    "Driver/gcc-toolchain-install-dir.f90",
+    "api_tests/test_ompd_get_icv_from_scope.c",
+    "std/time/time.syn/formatter",
+    # Those 2 might fail with "tzdb: the path '/etc/localtime' is not a symlink"
+    "std/time/time.zone/time.zone.db/time.zone.db.tzdb",
+    "std/time/time.zone/time.zone.db/time.zone.db.access",
+]
 
 moduleclass = 'compiler'
Diff against LLVM-21.1.8-GCCcore-15.2.0.eb

easybuild/easyconfigs/l/LLVM/LLVM-21.1.8-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-21.1.8-GCCcore-15.2.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-22.1.8-GCCcore-15.2.0.eb
index 25690f5f75..8ef95be566 100644
--- a/easybuild/easyconfigs/l/LLVM/LLVM-21.1.8-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/l/LLVM/LLVM-22.1.8-GCCcore-15.2.0.eb
@@ -1,5 +1,5 @@
 name = 'LLVM'
-version = '21.1.8'
+version = '22.1.8'
 
 
 homepage = "https://llvm.org/"
@@ -24,20 +24,12 @@ sources = [
 ]
 patches = [
     'LLVM-18.1.8_envintest.patch',
-    'LLVM-19.1.7_libomptarget_tests.patch',
     'LLVM-19.1.7_clang_rpathwrap_test.patch',
-    'LLVM-21.1.x_fix-ompt-end-critical-race.patch',
-    'LLVM-21.1.x_fix-sema-overload-deduction.patch',
 ]
 checksums = [
-    {'llvm-project-21.1.8.src.tar.xz': '4633a23617fa31a3ea51242586ea7fb1da7140e426bd62fc164261fe036aa142'},
+    {'llvm-project-22.1.8.src.tar.xz': '922f1817a0df7b1489272d18134ee0087a8b068828f87ac63b9861b1a9965888'},
     {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'},
-    {'LLVM-19.1.7_libomptarget_tests.patch': '79a67c118d034cfb74e255696369150c73432d2b422f4834efacb26f7904edbf'},
     {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'},
-    {'LLVM-21.1.x_fix-ompt-end-critical-race.patch':
-     '9dc675f0a53a2308a22c36892eddeeab9c3c736219c04192fc5bb1348f110838'},
-    {'LLVM-21.1.x_fix-sema-overload-deduction.patch':
-     '265a2b5ce0cc439ab98d5a9efb60153b722c91df9db7d18c7b49a159156cb41b'},
 ]
 
 builddependencies = [
Diff against LLVM-20.1.8-GCCcore-14.3.0.eb

easybuild/easyconfigs/l/LLVM/LLVM-20.1.8-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-20.1.8-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-22.1.8-GCCcore-15.2.0.eb
index 62998620ce..8ef95be566 100644
--- a/easybuild/easyconfigs/l/LLVM/LLVM-20.1.8-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/l/LLVM/LLVM-22.1.8-GCCcore-15.2.0.eb
@@ -1,5 +1,5 @@
 name = 'LLVM'
-version = '20.1.8'
+version = '22.1.8'
 
 
 homepage = "https://llvm.org/"
@@ -13,9 +13,8 @@ particularly easy to invent your own language (or port an existing compiler)
 to use LLVM as an optimizer and code generator.
 """
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
 toolchainopts = {
-    # 'cstd': 'gnu++11',
     'pic': True
 }
 
@@ -25,80 +24,33 @@ sources = [
 ]
 patches = [
     'LLVM-18.1.8_envintest.patch',
-    'LLVM-19.1.7_libomptarget_tests.patch',
     'LLVM-19.1.7_clang_rpathwrap_test.patch',
-    'LLVM-20.1.x_improved-CUDA-13-support.patch',
-    'LLVM-20.1.5-fix_bindc_commonblocks_fortran.patch',  # This patch is included upstream from >=21.1.x
-    'LLVM-20.1.x_always-link-compiler-rt-to-flang.patch',  # This patch is included upstream from >= 21.1.x
 ]
 checksums = [
-    {'llvm-project-20.1.8.src.tar.xz': '6898f963c8e938981e6c4a302e83ec5beb4630147c7311183cf61069af16333d'},
+    {'llvm-project-22.1.8.src.tar.xz': '922f1817a0df7b1489272d18134ee0087a8b068828f87ac63b9861b1a9965888'},
     {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'},
-    {'LLVM-19.1.7_libomptarget_tests.patch': '79a67c118d034cfb74e255696369150c73432d2b422f4834efacb26f7904edbf'},
     {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'},
-    {'LLVM-20.1.x_improved-CUDA-13-support.patch': '78762218c8f34b25533f909533076f195136232b7fca1672af602182dfcdc5bf'},
-    {'LLVM-20.1.5-fix_bindc_commonblocks_fortran.patch':
-     '02b1123edfbb0f5c805fb7b7ad9caaf376489a80d723f90bf9366b0c9949dea1'},
-    {'LLVM-20.1.x_always-link-compiler-rt-to-flang.patch':
-     '7ee0152efafdfebfeff01487e85d2aecd38d3c4e892e5ab91a21db02cdc6a3c6'},
 ]
 
-# riscv_MLIR.patch: Disable problematic MLIR Runner tests on RISC-V.
-# Failures on RISC-V are due to missing soft-float helper symbols (like __addsf3),
-# which is a known issue when running LLVM's JIT on platforms like RISC-V.
-
-# riscv_execution_engine.patch: Skip the test on RISC-V, which is appropriate since JIT execution via MLIR's
-# ExecutionEngine is not reliably supported on this architecture in this LLVM version.
-
-# riscv_xray_check.patch: RISC-V has looser execution ordering; relax CHECK-NEXT to CHECK
-
-# riscv_fuzzer.patch: Mark as UNSUPPORTED for RISC-V tests that use libFuzzer + -fsanitize=address,fuzzer
-
-# riscv_ompt.patch: Mark as UNSUPPORTED for RISC-V some ompt tests that are known to be fragile
-# see (https://github.com/llvm/llvm-project/issues/35661#issuecomment-980993177)
-
-if ARCH == 'riscv64':
-    patches += [
-        'LLVM-20.1.5_riscv_optimization_remark.patch',
-        'LLVM-20.1.5_riscv_MLIR.patch',
-        'LLVM-20.1.5_riscv_execution_engine.patch',
-        'LLVM-20.1.5_riscv_xray_check.patch',
-        'LLVM-20.1.5_riscv_fuzzer.patch',
-        'LLVM-20.1.5_riscv_ompt.patch',
-    ]
-    checksums += [
-        {'LLVM-20.1.5_riscv_optimization_remark.patch':
-         'e414a15e0fc48049a6ec75835cd032c8db6fb5c6d2825f0c604969c192aa60e0'},
-        {'LLVM-20.1.5_riscv_MLIR.patch':
-         '2348ee5db243f94d7a8877aee1a4332585e3bd58976af76c4bed01972d7793ca'},
-        {'LLVM-20.1.5_riscv_execution_engine.patch':
-         '7d795920e98c2c65df30ed01cc7e9251d69ae25e2674c251bc283ed44b53d02f'},
-        {'LLVM-20.1.5_riscv_xray_check.patch':
-         '5ca1e5730a3ee7cc1914959d64330f213a58f9818d91dbba346db63c77b47606'},
-        {'LLVM-20.1.5_riscv_fuzzer.patch':
-         '0d28e1acc96ab10daa2f696db01163c81f8a027a6ab8ccd5a770c6b7e91a4c34'},
-        {'LLVM-20.1.5_riscv_ompt.patch':
-         '9ed82093831777cee08629cb68b7e47d2cace3e0b950381b002f9bfd01bae1f6'},
-    ]
-
 builddependencies = [
-    ('binutils', '2.44'),
-    ('Python', '3.13.5'),
-    ('CMake', '4.0.3'),
-    ('psutil', '7.0.0'),  # Needed to enable test timeout in lit
+    ('binutils', '2.45'),
+    ('Python', '3.14.2'),
+    ('CMake', '4.2.1'),
+    ('psutil', '7.2.1'),  # Needed to enable test timeout in lit
     ('lit', '18.1.8'),
-    ('git', '2.50.1'),
+    ('git', '2.52.0'),
 ]
 
 dependencies = [
-    ('libffi', '3.5.1'),
-    ('libxml2', '2.14.3'),
-    ('ncurses', '6.5'),
-    ('zlib', '1.3.1'),
-    ('Z3', '4.15.1'),
+    ('libffi', '3.5.2'),
+    ('libxml2', '2.15.1'),
+    ('ncurses', '6.6'),
+    ('zlib', '2.3.2'),
+    ('Z3', '4.15.4'),
     ('zstd', '1.5.7'),
 ]
 
+
 build_shared_libs = True
 
 bootstrap = True
@@ -111,13 +63,6 @@ build_bolt = True
 build_openmp = True
 build_openmp_tools = True
 build_openmp_offload = True
-
-# openmp offload is not supported for riscv64 (https://clang.llvm.org/docs/OffloadingDesign.html)
-# There is a Bug in (at least) testing phase of BOLT for RISC-V. See https://github.com/llvm/llvm-project/issues/134245
-if ARCH == 'riscv64':
-    build_bolt = False
-    build_openmp_offload = False
-
 use_polly = True
 
 python_bindings = True
@@ -139,9 +84,6 @@ test_suite_ignore_patterns = [
     # Those 2 might fail with "tzdb: the path '/etc/localtime' is not a symlink"
     "std/time/time.zone/time.zone.db/time.zone.db.tzdb",
     "std/time/time.zone/time.zone.db/time.zone.db.access",
-    # libFuzzer tests massively fail in RISC-V due to slightly different
-    # behaviour of signal handling and stack unwinding
-    "libFuzzer-riscv64",
 ]
 
 moduleclass = 'compiler'

@github-actions github-actions Bot added change 2024a issues & PRs related to 2024a common toolchains labels Aug 10, 2026
@github-actions github-actions Bot added 2026.1 issues & PRs related to 2026.1 common toolchains and removed change 2024a issues & PRs related to 2024a common toolchains labels Aug 10, 2026
@Crivella

Copy link
Copy Markdown
Contributor Author

Test report by @Crivella
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4078
SUCCESS
Build succeeded for 1 out of 1 (total: 5 hours 35 mins 29 secs) (1 easyconfigs in total)
crivella-desktop - Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish), x86_64, 13th Gen Intel(R) Core(TM) i9-13900K (skylake), 1 x NVIDIA NVIDIA GeForce RTX 5060, 580.173.02, Python 3.11.15
See https://gist.github.com/Crivella/af59b6f3c2400f728927314a72d0d6e9 for a full test report.

@PhoenixEmik

Copy link
Copy Markdown
Contributor

The title should be 15.2.0?

@Crivella Crivella changed the title {compiler}[GCCcore/15.3.0] LLVM 22.1.8 {compiler}[GCCcore/15.2.0] LLVM 22.1.8 Aug 11, 2026
@Crivella

Copy link
Copy Markdown
Contributor Author

The title should be 15.2.0?

Thanks for noticing. I started aiming at 15.3.0 but than realized we are still missing many of the deps so moved it to 15.2.0

@Crivella

Copy link
Copy Markdown
Contributor Author

@boegelbot please test @ jsc-zen3
CORE_CNT=16
EB_ARGS="--include-easyblocks-from-pr 4078"

@boegelbot

Copy link
Copy Markdown
Collaborator

@Crivella: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=26628 EB_ARGS="--include-easyblocks-from-pr 4078" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_26628 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 11215

Test results coming soon (I hope)...

Details

- notification for comment with ID 5250663324 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot

Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#4078
SUCCESS
Build succeeded for 1 out of 1 (total: 2 hours 58 mins 10 secs) (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.8, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.25
See https://gist.github.com/boegelbot/90b3e0995073d0864cdd807edbc8544c for a full test report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2026.1 issues & PRs related to 2026.1 common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants