Skip to content

Conversation

@Thyre
Copy link
Collaborator

@Thyre Thyre commented Nov 20, 2025

(created using eb --new-pr)

While LLVM always builds the standard library C++ modules, they are not installed by default for all versions. Marked as experimental (at least for LLVM 18 -- LLVM 20), the installation is only enabled by default in LLVM 20 and newer.

To still give users control about building the modules, add a configuration option. The default relies on the value set by LLVM.

@Thyre Thyre requested a review from Crivella November 20, 2025 16:23
@Thyre
Copy link
Collaborator Author

Thyre commented Nov 20, 2025

This doesn't really have a high priority, but was noticed by folks at JSC.

@Crivella
Copy link
Contributor

It seems the default is to be ON also in LLVM 19

llvm/llvm-project#90094

crivella@crivella-desktop:~/Documents/GIT/llvm-project [(llvmorg-21.1.5) ? (6)]
$ git_commit_is_ancestor_of 19d2d3fe50c301272350d12c53c801b17e29e64e main
YES
crivella@crivella-desktop:~/Documents/GIT/llvm-project [(llvmorg-21.1.5) ? (6)]
$ git_commit_is_ancestor_of 19d2d3fe50c301272350d12c53c801b17e29e64e llvmorg-19.1.1
YES
crivella@crivella-desktop:~/Documents/GIT/llvm-project [(llvmorg-21.1.5) ? (6)]
$ git_commit_is_ancestor_of 19d2d3fe50c301272350d12c53c801b17e29e64e llvmorg-18.1.8
NO

Anyway it is useful for this to be user-controllable will try to run a try-amend test on 18.1.8

@Crivella
Copy link
Contributor

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 --try-amend=install_libcxx_modules=True LLVM-18.1.8-GCCcore-13.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=3994 EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 --try-amend=install_libcxx_modules=True LLVM-18.1.8-GCCcore-13.3.0.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3994 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

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

boegelbot commented Nov 26, 2025

Test with --try-amend to enable the new option introduced by this PR

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0.eb

Build succeeded for 1 out of 1 (total: 3 hours 48 mins 1 secs) (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/915a52eb1fda31f0e5c64fbffbda9698 for a full test report.

@Crivella
Copy link
Contributor

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 LLVM-18.1.8-GCCcore-13.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=3994 EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 LLVM-18.1.8-GCCcore-13.3.0.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3994 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3581747062 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).

@Crivella
Copy link
Contributor

Crivella commented Nov 26, 2025

Test report by @Crivella

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0.eb

Build succeeded for 1 out of 1 (total: 7 hours 39 mins 44 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), Python 3.11.14
See https://gist.github.com/Crivella/8ecd333d4057215aeeb5dbaf594318ad for a full test report.

Option is being properly passed and not ignored

== 2025-11-26 14:20:29,486 run.py:625 INFO Shell command completed successfully: cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INSTALL_UTILS=ON -DPython3_FIND_VIRTUALENV=STANDARD -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DLIBCXX_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_SHARED=ON -DLIBUNWIND_ENABLE_SHARED=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_REQUIRES_RTTI=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCLANG_DEFAULT_LINKER=lld -DFLANG_DEFAULT_LINKER=lld -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD='X86' -DCMAKE_INSTALL_PREFIX=/tmp/tmp.ZiMc9Nd2eL/software/LLVM/18.1.8-GCCcore-13.3.0 -DLLVM_ENABLE_ASSERTIONS=OFF -DLLVM_ENABLE_LIBXML2=ON -DLLVM_ENABLE_FFI=ON -DFFI_INCLUDE_DIR=/home/crivella/.local/easybuild/software/libffi/3.4.5-GCCcore-13.3.0/include -DFFI_LIBRARY_DIR=/home/crivella/.local/easybuild/software/libffi/3.4.5-GCCcore-13.3.0/lib64 -DLLVM_ENABLE_ZLIB=ON -DLLVM_ENABLE_ZSTD=ON -DLLDB_ENABLE_SWIG=OFF -DLIBOMP_OMPD_GDB_SUPPORT=OFF -DLLVM_ENABLE_Z3_SOLVER=ON -DLLVM_Z3_INSTALL_DIR=/home/crivella/.local/easybuild/software/Z3/4.13.0-GCCcore-13.3.0 -DPYTHON_EXECUTABLE=/home/crivella/.local/easybuild/software/Python/3.12.3-GCCcore-13.3.0/bin/python -DPython_EXECUTABLE=/home/crivella/.local/easybuild/software/Python/3.12.3-GCCcore-13.3.0/bin/python -DPython3_EXECUTABLE=/home/crivella/.local/easybuild/software/Python/3.12.3-GCCcore-13.3.0/bin/python -DGCC_INSTALL_PREFIX=/home/crivella/.local/easybuild/software/GCCcore/13.3.0 -DRUNTIMES_CMAKE_ARGS='-DCMAKE_C_COMPILER=/tmp/eb-g6exlnmr/tmpmncjdb8j/rpath_wrappers/clang_wrapper/clang;-DCMAKE_CXX_COMPILER=/tmp/eb-g6exlnmr/tmpmncjdb8j/rpath_wrappers/clangxx_wrapper/clang++;-DPYTHON_EXECUTABLE=/home/crivella/.local/easybuild/software/Python/3.12.3-GCCcore-13.3.0/bin/python;-DPython_EXECUTABLE=/home/crivella/.local/easybuild/software/Python/3.12.3-GCCcore-13.3.0/bin/python;-DPython3_EXECUTABLE=/home/crivella/.local/easybuild/software/Python/3.12.3-GCCcore-13.3.0/bin/python' -DLLVM_ENABLE_PROJECTS='llvm;mlir;clang;flang;polly;clang-tools-extra;lld;lldb;bolt' -DLLVM_ENABLE_RUNTIMES='compiler-rt;libunwind;libcxx;libcxxabi;openmp' -DOPENMP_ENABLE_LIBOMPTARGET=ON -DLIBOMP_INSTALL_ALIASES=OFF -DLIBOMP_OMPT_SUPPORT=ON -DLIBOMPTARGET_OMPT_SUPPORT=ON -DOPENMP_ENABLE_OMPT_TOOLS=ON -DLIBCXX_INSTALL_MODULES=ON -DLLVM_LIT_ARGS="-j 2 -v --timeout 300" -DLLVM_POLLY_LINK_INTO_TOOLS=ON -DLLVM_INCLUDE_TESTS=ON -DLLVM_BUILD_TESTS=ON -DCMAKE_C_COMPILER=/tmp/eb-g6exlnmr/tmpylegk28c/rpath_wrappers/clang_wrapper/clang -DCMAKE_CXX_COMPILER=/tmp/eb-g6exlnmr/tmpylegk28c/rpath_wrappers/clangxx_wrapper/clang++ -DCMAKE_ASM_COMPILER=/tmp/eb-g6exlnmr/tmpylegk28c/rpath_wrappers/clang_wrapper/clang -DCMAKE_ASM_COMPILER_ID=Clang /home/crivella/.local/easybuild/build/LLVM/18.1.8/GCCcore-13.3.0/llvm-project-18.1.8.src/llvm
...
...
-- Generating done (4.8s)
CMake Warning:
  Manually-specified variables were not used by the project:

    Python_EXECUTABLE


-- Build files have been written to: /home/crivella/.local/easybuild/build/LLVM/18.1.8/GCCcore-13.3.0/llvm.obj.3

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-18.1.8-GCCcore-13.3.0.eb

Build succeeded for 1 out of 1 (total: 3 hours 48 mins 25 secs) (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/9be97b478e6aaf0348bb58069c78aec9 for a full test report.

@Crivella
Copy link
Contributor

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 LLVM-20.0.8-GCCcore-14.3.0.eb --try-amend=install_libcxx_modules=True"

@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=3994 EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 LLVM-20.0.8-GCCcore-14.3.0.eb --try-amend=install_libcxx_modules=True" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3994 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3582943959 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).

@Crivella
Copy link
Contributor

#3994 (comment) This has been running longer than i would expect

@Thyre
Copy link
Collaborator Author

Thyre commented Nov 27, 2025

#3994 (comment) This has been running longer than i would expect

LLVM-20.0.8-GCCcore-14.3.0.eb doesn't exist 😅

@Thyre
Copy link
Collaborator Author

Thyre commented Nov 27, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 LLVM-20.1.8-GCCcore-14.3.0.eb --try-amend=install_libcxx_modules=True"

@Crivella
Copy link
Contributor

#3994 (comment) This has been running longer than i would expect

LLVM-20.0.8-GCCcore-14.3.0.eb doesn't exist 😅

Ah... guess having the bot report this kind of failures will be an improvement to be added

@boegelbot
Copy link

@Thyre: 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=3994 EB_ARGS="--installpath=/tmp/$USER/ebpr-3994 LLVM-20.1.8-GCCcore-14.3.0.eb --try-amend=install_libcxx_modules=True" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3994 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3585024586 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-20.1.8-GCCcore-14.3.0.eb

Build succeeded for 1 out of 1 (total: 4 hours 57 mins 54 secs) (1 easyconfigs in total)
jsczen3c4.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/69ad91d60eb2653deedaa3deb40b13dd for a full test report.

@Crivella Crivella added this to the next release (5.2.0) milestone Nov 27, 2025
Copy link
Contributor

@Crivella Crivella left a comment

Choose a reason for hiding this comment

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

LGTM

@Crivella
Copy link
Contributor

Going in, thanks @Thyre!

@Crivella Crivella merged commit 7e8ed9a into easybuilders:develop Nov 27, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants