Skip to content

Changes to LLVM easyblock required for LLVM 21#3902

Merged
boegel merged 13 commits intoeasybuilders:developfrom
Crivella:feature-LLVM_21
Jan 28, 2026
Merged

Changes to LLVM easyblock required for LLVM 21#3902
boegel merged 13 commits intoeasybuilders:developfrom
Crivella:feature-LLVM_21

Conversation

@Crivella
Copy link
Contributor

@Crivella Crivella commented Aug 27, 2025

Changes

  • Filter unsupported flang args from FFLAGS and F90FLAGS as now flang is used to compile some .mod files
    Fixes error of the type flang-21: error: unknown argument: '-fno-math-errno' during the build step
  • Added EC config parameter test_suite_include_benchmarks to allow including/excluding benchmarks in the test-suite
  • Ensure LLVM_INCLUDE_BENCHMARKS is set both for the projects and runtimes builds

Copy link
Contributor

@bartoldeman bartoldeman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also need this change:

--- llvm.py.1   2025-11-11 18:57:04.979489101 +0000
+++ llvm.py     2025-11-11 18:58:56.322052977 +0000
@@ -1103,7 +1103,7 @@
         opts = [f'--gcc-install-dir={self.gcc_prefix}']
 
         if self.dynamic_linker:
-            opts.append(f'-Wl,-dynamic-linker,{self.dynamic_linker}')
+            opts.append(f'-Wl,-dynamic-linker={self.dynamic_linker}')
             # The --dyld-prefix flag exists, but beside being poorly documented it is also not supported by flang
             # https://reviews.llvm.org/D851
             # prefix = self.sysroot.rstrip('/')

otherwise clang-nvlink-wrapper complains.

…so with a bootstrap build and perform the filtering only if `flang` is being built
…hrough `test_suite_include_benchmarks` config parameter

- If benchmarks are `OFF` ensure they are also not ran for the runtimes
…INCLUDE_BENCHMARKS` together with `LLVM_INCLUDE_BENCHMARKS`
@Crivella Crivella marked this pull request as ready for review January 7, 2026 13:26
@Crivella
Copy link
Contributor Author

Crivella commented Jan 7, 2026

@boegelbot please test @ jsc-zen3
CORE_CNT=16
EB_ARGS="--installpath /tmp/$USER/ebpr-3902 LLVM-16.0.6-GCCcore-12.3.0.eb LLVM-18.1.8-GCCcore-13.3.0-minimal.eb LLVM-20.1.5-GCCcore-13.2.0.eb LLVM-20.1.8-GCCcore-14.3.0.eb"

@boegelbot
Copy link

@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=3902 EB_ARGS="--installpath /tmp/$USER/ebpr-3902 LLVM-16.0.6-GCCcore-12.3.0.eb LLVM-18.1.8-GCCcore-13.3.0-minimal.eb LLVM-20.1.5-GCCcore-13.2.0.eb LLVM-20.1.8-GCCcore-14.3.0.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3902 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3719706977 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

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-16.0.6-GCCcore-12.3.0.eb

  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0-minimal.eb

  • SUCCESS LLVM-20.1.5-GCCcore-13.2.0.eb

  • SUCCESS LLVM-20.1.8-GCCcore-14.3.0.eb

Build succeeded for 4 out of 4 (total: 6 hours 8 mins 24 secs) (4 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.23
See https://gist.github.com/boegelbot/61beb4bd9b0fa8310b888ae91ce263d4 for a full test report.

Comment on lines +587 to +588
if self.version >= '21':
if self.version < '22':
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about LLVM 20?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LLVM 20 does not need knowledge of the flags here since it does not compile fortran stuff at build time (atleast not in a way that it uses our flags from EB causing failures)

@Thyre
Copy link
Collaborator

Thyre commented Jan 19, 2026

Maybe also remove the WIP in the OP description, since we've resolved this now with the benchmark options 😄

Crivella and others added 4 commits January 19, 2026 18:01
Co-authored-by: Jan André Reuter <jan@zyten.de>
Co-authored-by: Jan André Reuter <jan@zyten.de>
Co-authored-by: Jan André Reuter <jan@zyten.de>
Co-authored-by: Jan André Reuter <jan@zyten.de>
Co-authored-by: Jan André Reuter <jan@zyten.de>
Copy link
Collaborator

@Thyre Thyre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@boegel
Copy link
Member

boegel commented Jan 20, 2026

@boegelbot please test @ jsc-zen3
CORE_CNT=16
EB_ARGS="--installpath /tmp/$USER/ebpr-3902 LLVM-12.0.1-GCCcore-11.2.0.eb LLVM-16.0.6-GCCcore-12.3.0.eb LLVM-18.1.8-GCCcore-13.3.0-minimal.eb LLVM-18.1.8-GCCcore-13.3.0.eb LLVM-19.1.7-GCCcore-13.3.0.eb LLVM-20.1.8-GCCcore-14.3.0.eb"

Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegelbot
Copy link

@boegel: 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=3902 EB_ARGS="--installpath /tmp/$USER/ebpr-3902 LLVM-12.0.1-GCCcore-11.2.0.eb LLVM-16.0.6-GCCcore-12.3.0.eb LLVM-18.1.8-GCCcore-13.3.0-minimal.eb LLVM-18.1.8-GCCcore-13.3.0.eb LLVM-19.1.7-GCCcore-13.3.0.eb LLVM-20.1.8-GCCcore-14.3.0.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3902 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3774188847 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

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-12.0.1-GCCcore-11.2.0.eb

  • SUCCESS LLVM-16.0.6-GCCcore-12.3.0.eb

  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0-minimal.eb

  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0.eb

  • SUCCESS LLVM-19.1.7-GCCcore-13.3.0.eb

  • SUCCESS LLVM-20.1.8-GCCcore-14.3.0.eb

Build succeeded for 6 out of 6 (total: 7 hours 49 mins 5 secs) (6 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.23
See https://gist.github.com/boegelbot/87e4cfa816e1848b69997f0488398fab for a full test report.

@boegel boegel dismissed bartoldeman’s stale review January 28, 2026 08:22

requested changes made

@boegel boegel merged commit 3721d45 into easybuilders:develop Jan 28, 2026
22 checks passed
@Crivella Crivella deleted the feature-LLVM_21 branch January 28, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants