Skip to content

Fix LLVM easyblock to allow building with multiple versions at once #3812

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 2, 2025

Conversation

Flamefire
Copy link
Contributor

@Flamefire Flamefire commented Jun 30, 2025

This ensures that the global dicts used as default values are not modified anymore and hence a following build gets a fresh copy.

This avoids failures when building different LLVM versions with conflicting settings.

I also pulled out 2 changes from #3755

  1. Rename usepolly to use_polly
  2. add a method to CMakeMake to generate a string out of a list suitable for a CMake argument to replace common, error-prone code

Can be tested with easybuilders/easybuild-easyconfigs#23033 which renames the uses of usepolly in easyconfigs and hence also serves as a test case for the fix

The resulting installations should be identical to the ones before

Fixes #3758

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

@boegel
Copy link
Member

boegel commented Jul 1, 2025

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS lit-18.1.2-GCCcore-12.3.0.eb
  • SUCCESS LLVM-16.0.6-GCCcore-12.3.0.eb

Build succeeded for 2 out of 2 (1 easyconfigs in total)
node4016.donphan.os - Linux RHEL 9.4, x86_64, Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz (cascadelake), 1 x NVIDIA NVIDIA A2, 570.133.20, Python 3.9.18
See https://gist.github.com/boegel/53cae916aa9dc98567fd4b3b090a42a1 for a full test report.

@boegel
Copy link
Member

boegel commented Jul 2, 2025

Test report by @boegel

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.eb
  • SUCCESS LLVM-20.1.5-GCCcore-13.2.0.eb

Build succeeded for 3 out of 3 (3 easyconfigs in total)
node3512.doduo.os - Linux RHEL 9.4, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/boegel/94236b63251f84dd2cc59773a7e84ef9 for a full test report.

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

also tested extensively via easybuilders/easybuild-easyconfigs#23033

@boegel boegel merged commit 937cd8a into easybuilders:develop Jul 2, 2025
17 checks passed
@Flamefire Flamefire deleted the llvm-multi-build branch July 2, 2025 10:43
@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

Build succeeded for 2 out of 3 (3 easyconfigs in total)
n1623 - Linux RHEL 8.9 (Ootpa), x86_64, Intel(R) Xeon(R) Platinum 8470 (sapphirerapids), Python 3.9.18
See https://gist.github.com/Flamefire/19e408b5963fb8f4c2bc36ec69302044 for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

Build succeeded for 2 out of 3 (3 easyconfigs in total)
c121 - Linux AlmaLinux 9.4, x86_64, AMD EPYC 9334 32-Core Processor (zen4), 4 x NVIDIA NVIDIA H100, 560.35.03, Python 3.9.18
See https://gist.github.com/Flamefire/25e80555d062bd53ff6f5df09d132733 for a full test report.

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

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

Build succeeded for 2 out of 2 (2 easyconfigs in total)
jsczen3c3.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/59a2479b3477c85355da2b7d2f848bca for a full test report.

@Flamefire
Copy link
Contributor Author

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-19.1.7-GCCcore-13.3.0.eb
  • SUCCESS LLVM-20.1.5-GCCcore-13.3.0.eb
  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0.eb

Build succeeded for 3 out of 3 (3 easyconfigs in total)
i7108 - Linux Rocky Linux 8.9 (Green Obsidian), x86_64, AMD EPYC 7702 64-Core Processor (zen2), Python 3.9.18
See https://gist.github.com/Flamefire/161a4699f2ef3d3eaa52c14088fad01e for a full test report.

@Thyre Thyre mentioned this pull request Jul 3, 2025
4 tasks
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.

Bug when building multiple versions of LLVM in one call to easybuild
3 participants