Skip to content

Conversation

@Thyre
Copy link
Collaborator

@Thyre Thyre commented Mar 23, 2025

Fixes the following issues in the new LLVM EasyBlock:

  • Move LIBOMPTARGET_PLUGINS_TO_BUILD to runtime CMake variables, as the value was disregarded before, building all offload plugins.
  • Skip NVIDIA offload tests without pxtas due to tests failing otherwise
  • Skip AMD tests due to prone to fail nature if ROCm is not present
  • Also test offload with build_targets = all
  • Remove AMDGPU_GFX_SUPPORT, as outdated and hard to maintain
  • Handle LLVM 20 changes (CMake & sanity check)

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 23, 2025

I'm testing this with a custom EasyConfig for LLVM 19.1.7 based on GCCcore 14.2.0, including offloading support for gfx1201. It is generally quite similar to easybuilders/easybuild-easyconfigs#22517. Lets see if I encounter additional failures (probably becaused I missed something).

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 23, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [RX 9070/9070 XT] (model: 0x7550, driver: "6.13.7-arch1-1"), 1 x AMD Raphael (model: 0x164e, driver: "6.13.7-arch1-1"), Python 3.13.2
See https://gist.github.com/Thyre/e12010c70879506459ae34ab3eef0fa4 for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 23, 2025

Building of one test case consistently fails with a segmentation fault:

Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff20561b0 in (anonymous namespace)::ConstantFoldScalarCall(llvm::StringRef, unsigned int, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, llvm::CallBase const*) ()
   from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
(gdb) bt
#0  0x00007ffff20561b0 in (anonymous namespace)::ConstantFoldScalarCall(llvm::StringRef, unsigned int, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, llvm::CallBase const*) ()
   from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
#1  0x00007ffff2052ff3 in llvm::ConstantFoldCall(llvm::CallBase const*, llvm::Function*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, bool) () from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
#2  0x00007ffff20ca8df in (anonymous namespace)::CallAnalyzer::visitCallBase(llvm::CallBase&) () from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
#3  0x00007ffff20c64da in (anonymous namespace)::CallAnalyzer::analyzeBlock(llvm::BasicBlock*, llvm::SmallPtrSetImpl<llvm::Value const*>&) () from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
[...]

Certainly not related to this PR, but causes an issue nonetheless, as this aborts building LLVM even if only a test case fails to build.

@Thyre Thyre mentioned this pull request Mar 24, 2025
@Thyre
Copy link
Collaborator Author

Thyre commented Mar 29, 2025

TODO: Fix EasyBuild abort due to raising an EasyBuildError in test_step, even when ignore_test_failure is set. See: https://easybuild.slack.com/archives/C34UA1HT7/p1743263737188979

Fix this by switching to report_test_failure.

@Thyre Thyre marked this pull request as ready for review March 30, 2025 16:09
@Thyre
Copy link
Collaborator Author

Thyre commented Mar 30, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="LLVM-18.1.8-GCCcore-13.3.0-minimal.eb --installpath /tmp/$USER"

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

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

Test results coming soon (I hope)...

- notification for comment with ID 2764630785 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-18.1.8-GCCcore-13.3.0-minimal.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.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/838505b8b821a4a717dee6127b608146 for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 30, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • FAIL (unhandled exception):
 File "/data/EasyBuild/lib/python3.13/site-packages/easybuild/main.py", line 137, in build_and_install_software
   (ec_res['success'], app_log, err_msg, err_code) = build_and_install_one(ec, init_env)
                                                     ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
 File "/data/EasyBuild/lib/python3.13/site-packages/easybuild/framework/easyblock.py", line 4609, in build_and_install_one
   result = app.run_all_steps(run_test_cases=run_test_cases)
 File "/data/EasyBuild/lib/python3.13/site-packages/easybuild/framework/easyblock.py", line 4429, in run_all_steps
   self.run_step(step_name, step_methods)
   ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/data/EasyBuild/lib/python3.13/site-packages/easybuild/framework/easyblock.py", line 4271, in run_step
   step_method(self)()
   ~~~~~~~~~~~~~~~~~^^
 File "/data/EasyBuild/lib/python3.13/site-packages/easybuild/framework/easyblock.py", line 2964, in _test_step
   self.test_step()
   ~~~~~~~~~~~~~~^^
 File "/tmp/eb-na58u3r0/included-easyblocks-l42nwbwj/easybuild/easyblocks/llvm.py", line 940, in test_step
   if num_failed > max_failed:
      ^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
  • LLVM-19.1.7-GCCcore-14.2.0.eb

Build succeeded (with --ignore-test-failure) for 0 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [RX 9070/9070 XT] (model: 0x7550, driver: "6.13.8-arch1-1"), 1 x AMD Raphael (model: 0x164e, driver: "6.13.8-arch1-1"), Python 3.13.2
See https://gist.github.com/Thyre/509cf8adb11ea279bf09d9c14afc4129 for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 30, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

Build succeeded (with --ignore-test-failure) for 0 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [RX 9070/9070 XT] (model: 0x7550, driver: "6.13.8-arch1-1"), 1 x AMD Raphael (model: 0x164e, driver: "6.13.8-arch1-1"), Python 3.13.2
See https://gist.github.com/Thyre/8cb4e357e032ae0ff88d3fffbc02122d for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 30, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

Build succeeded (with --ignore-test-failure) for 0 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [RX 9070/9070 XT] (model: 0x7550, driver: "6.13.8-arch1-1"), 1 x AMD Raphael (model: 0x164e, driver: "6.13.8-arch1-1"), Python 3.13.2
See https://gist.github.com/Thyre/cb46250123f6bd8fb36b73d879600cbe for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

gfx1201 was not built, but all other architectures were. I'll test LLVM 20, maybe gfx1201 was not fully ready in LLVM 19.
Though I'm wondering why all other archs were built..

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

The argument LIBOMPTARGET_DEVICE_ARCHITECTURES seems to get ignored completely, at least in the way we currently set it for LLVM 19 & 20.

 53788 CMake Warning:
 53789   Manually-specified variables were not used by the project:
 53790 
 53791     LIBOMPTARGET_DEVICE_ARCHITECTURES
 53792     LIBOMPTARGET_PLUGINS_TO_BUILD
 53793     Python_EXECUTABLE
 53794 
 53795 
 53796 -- Build files have been written to: /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3

The AMDGPU targets did not include gfx1201 yet, see https://github.com/llvm/llvm-project/blob/llvmorg-19.1.7/offload/DeviceRTL/CMakeLists.txt#L45.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

Build succeeded (with --ignore-test-failure) for 0 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [RX 9070/9070 XT] (model: 0x7550, driver: "6.13.8-arch1-1"), 1 x AMD Raphael (model: 0x164e, driver: "6.13.8-arch1-1"), Python 3.13.2
See https://gist.github.com/Thyre/5dedb073bea4f111f4c6e061ad94e9db for a full test report.

@Crivella
Copy link
Contributor

Crivella commented Mar 31, 2025

Umh it needs Crivella@b5b988d the first part is just to do the build in parallel first and than serial if it fails, the second is just the fixed sanity check

EDIT: NVM it was renamed and i see you already added the fix

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

The build worked fine, but I ran into llvm/llvm-project@7102592

I'll take a look at my failed tests. Everything else looks fine now.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

Hm, a very large portion of my tests fail with clang::tidy::ClangTidyCheck::OptionsView::getEnumInt not being found. Don't know why exactly though. Maybe someone can reproduce this...

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

@boegelbot please test @ jsc-zen3
EB_ARGS="LLVM-18.1.8-GCCcore-13.3.0-minimal.eb --installpath /tmp/$USER"

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

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

Test results coming soon (I hope)...

- notification for comment with ID 2766532084 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-18.1.8-GCCcore-13.3.0-minimal.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.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/7778d38963e3a1ec7b59d81d258e0e5c for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-20.1.1-GCCcore-14.2.0.eb

Build succeeded (with --ignore-test-failure) for 1 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [RX 9070/9070 XT] (model: 0x7550, driver: "6.13.8-arch1-1"), 1 x AMD Raphael (model: 0x164e, driver: "6.13.8-arch1-1"), Python 3.13.2
See https://gist.github.com/Thyre/4266c07457800583afaad6a2486d98d1 for a full test report.

@Thyre
Copy link
Collaborator Author

Thyre commented Mar 31, 2025

I still had the same 142 test failures, but everything else finally worked!

333797 Testing Time: 1448.78s
333798 
333799 Total Discovered Tests: 147293
333800   Skipped          :    376 (0.26%)
333801   Unsupported      :  34732 (23.58%)
333802   Passed           : 111797 (75.90%)
333803   Expectedly Failed:    246 (0.17%)
333804   Failed           :    142 (0.10%)

@boegel boegel added the bug fix label Apr 23, 2025
While not officially documented somewhere, this is used in multiple
places within LLVM to pass runtime arguments.
This seems to work for LLVM 19, but has to be verified with other
versions as well.

Signed-off-by: Jan André Reuter <[email protected]>
@Thyre
Copy link
Collaborator Author

Thyre commented Apr 23, 2025

The latest commit allowed both arguments to finally be passed correctly, though I've only checked this on "Linux" (one of my PCs) with a single stage build.

Triggered another build here: easybuilders/easybuild-easyconfigs#22517 (comment)

Will do additional testing on other systems.
Each test should have at least two compute capabilities to test LIBOMPTARGET_DEVICE_ARCHITECTURES.

To test LIBOMPTARGET_PLUGINS_TO_BUILD, build_targets needs to be unset. Then, any GPU (NVIDIA or AMD) architecture will cause a list to be passed, e.g. host;amdgpu


This is how it looked like during the build:

/data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.1 > grep -rni -e "LIBOMPTARGET_PLUGINS_TO_BUILD" -e "LIBOMPTARGET_DEVICE_ARCHITECTURES" **/CMakeCache.txt
---------------------------
CMakeCache.txt:2097:RUNTIMES_CMAKE_ARGS:UNINITIALIZED=-DCMAKE_C_FLAGS=--gcc-install-dir=/data/EasyBuild-develop/software/GCCcore/14.2.0/lib/gcc/x86_64-pc-linux-gnu/14.2.0;-DCMAKE_CXX_FLAGS=--gcc-install-dir=/data/EasyBuild-develop/software/GCCcore/14.2.0/lib/gcc/x86_64-pc-linux-gnu/14.2.0;-DPYTHON_EXECUTABLE=/data/EasyBuild-develop/software/Python/3.13.1-GCCcore-14.2.0/bin/python;-DPython_EXECUTABLE=/data/EasyBuild-develop/software/Python/3.13.1-GCCcore-14.2.0/bin/python;-DPython3_EXECUTABLE=/data/EasyBuild-develop/software/Python/3.13.1-GCCcore-14.2.0/bin/python;-DLIBOMPTARGET_PLUGINS_TO_BUILD=host|amdgpu;-DLIBOMPTARGET_DEVICE_ARCHITECTURES=gfx1101|gfx90a
runtimes/runtimes-bins/CMakeCache.txt:938:LIBOMPTARGET_DEVICE_ARCHITECTURES:STRING=gfx1101;gfx90a
runtimes/runtimes-bins/CMakeCache.txt:964:LIBOMPTARGET_PLUGINS_TO_BUILD:STRING=host;amdgpu
runtimes/runtimes-bins/CMakeCache.txt:1252:RUNTIMES_CMAKE_ARGS:UNINITIALIZED=-DCMAKE_C_FLAGS=--gcc-install-dir=/data/EasyBuild-develop/software/GCCcore/14.2.0/lib/gcc/x86_64-pc-linux-gnu/14.2.0;-DCMAKE_CXX_FLAGS=--gcc-install-dir=/data/EasyBuild-develop/software/GCCcore/14.2.0/lib/gcc/x86_64-pc-linux-gnu/14.2.0;-DPYTHON_EXECUTABLE=/data/EasyBuild-develop/software/Python/3.13.1-GCCcore-14.2.0/bin/python;-DPython_EXECUTABLE=/data/EasyBuild-develop/software/Python/3.13.1-GCCcore-14.2.0/bin/python;-DPython3_EXECUTABLE=/data/EasyBuild-develop/software/Python/3.13.1-GCCcore-14.2.0/bin/python;-DLIBOMPTARGET_PLUGINS_TO_BUILD=host;amdgpu;-DLIBOMPTARGET_DEVICE_ARCHITECTURES=gfx1101;gfx90a

… build

Updated runtime arguments for offloading were potentially ignored, as
they were never passed to CMake.
Did not occur with EB develop, but with EB 5.0.0.

Signed-off-by: Jan André Reuter <[email protected]>
@Thyre Thyre force-pushed the fix-llvm-easyblock branch from ce46ced to a173a53 Compare April 24, 2025 06:33
@bedroge
Copy link
Contributor

bedroge commented Apr 24, 2025

While working on an easyconfig + easyblock (which uses the LLVM easyblock and does some customizations on top of it) for ROCm LLVM I was running into the same issue with LIBOMPTARGET_DEVICE_ARCHITECTURES (and a similar variable used by ROCm: LIBOMPTARGET_AMDGCN_GFXLIST). I just tried the fix that uses a pipe to split the items (from 98ff120), and that also solved the issue for me 🎉

@Crivella
Copy link
Contributor

Sry was out of the loop for a week while on holidays.

Where the LIBOMPTARGET_DEVICE_ARCHITECTURES and LIBOMPTARGET_PLUGINS_TO_BUILD parameters not making it through the initial cmake call that they where changed to be passed to the intermediate cmake invocation for the RUNTIMES?

@Thyre
Copy link
Collaborator Author

Thyre commented Apr 24, 2025

Where the LIBOMPTARGET_DEVICE_ARCHITECTURES and LIBOMPTARGET_PLUGINS_TO_BUILD parameters not making it through the initial cmake call that they where changed to be passed to the intermediate cmake invocation for the RUNTIMES?

Yes, they were not passed to the runtime build, causing all offload architectures (and device .bc files) to be built.

@Thyre
Copy link
Collaborator Author

Thyre commented Apr 25, 2025

@Thyre
Copy link
Collaborator Author

Thyre commented Apr 25, 2025

Building of one test case consistently fails with a segmentation fault:

Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff20561b0 in (anonymous namespace)::ConstantFoldScalarCall(llvm::StringRef, unsigned int, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, llvm::CallBase const*) ()
   from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
(gdb) bt
#0  0x00007ffff20561b0 in (anonymous namespace)::ConstantFoldScalarCall(llvm::StringRef, unsigned int, llvm::Type*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, llvm::CallBase const*) ()
   from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
#1  0x00007ffff2052ff3 in llvm::ConstantFoldCall(llvm::CallBase const*, llvm::Function*, llvm::ArrayRef<llvm::Constant*>, llvm::TargetLibraryInfo const*, bool) () from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
#2  0x00007ffff20ca8df in (anonymous namespace)::CallAnalyzer::visitCallBase(llvm::CallBase&) () from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
#3  0x00007ffff20c64da in (anonymous namespace)::CallAnalyzer::analyzeBlock(llvm::BasicBlock*, llvm::SmallPtrSetImpl<llvm::Value const*>&) () from /data/EasyBuild-develop/build/LLVM/19.1.7/GCCcore-14.2.0/llvm.obj.3/bin/../lib/libLLVM.so.19.1
[...]

Certainly not related to this PR, but causes an issue nonetheless, as this aborts building LLVM even if only a test case fails to build.

I managed to reproduce the same crash on a somewhat minimal Fedora 42 installation while trying out easybuilders/easybuild-framework#4860. Looks like this specific LLVM version may be problematic, depending on the configuration. Will move to LLVM 18.1.7, 19.1.1 & 20.1.1 for further testing.

@Thyre
Copy link
Collaborator Author

Thyre commented Apr 28, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-20.1.1-GCCcore-13.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
zam226 - Linux Ubuntu 22.04, x86_64, 12th Gen Intel(R) Core(TM) i7-12700, Python 3.10.12
See https://gist.github.com/Thyre/31190c698e0f34998a5e7c5cdd0f9412 for a full test report.


Well, that's weird: There is a libomptarget-nvptx.bc in $EBROOTLLVM/lib/x86_64-unknown-linux-gnu, but clang correctly reports error: unable to create target: 'No available targets are compatible with triple "nvptx64-nvidia-cuda"'
The logs also correctly show that only host;amdgpu are built.


This system doesn't have amd-smi in $PATH, but it has a gfx1101. The EasyConfig contains amd_gfx_list = ['gfx1101', 'gfx90a']

@Thyre
Copy link
Collaborator Author

Thyre commented Apr 28, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS LLVM-19.1.1-GCCcore-13.3.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
zam226 - Linux Ubuntu 22.04, x86_64, 12th Gen Intel(R) Core(TM) i7-12700, Python 3.10.12
See https://gist.github.com/Thyre/30baf83df26f89e691c63ff4306692cd for a full test report.


This one looks perfectly good. So I guess that LLVM 20 just places a dummy libomptarget-nvptx.bc even when NVPTX is not built.

@Thyre
Copy link
Collaborator Author

Thyre commented Apr 28, 2025

Triggered another LLVM 18 build here: easybuilders/easybuild-easyconfigs#21832 (comment)

Generally, I think that this should be ready now. It won't fix #3702. We should handle this in a separate PR. The remainder looks good now for LLVM 18-20.

@Crivella, @bedroge, @boegel, can you take a final look? Thanks a lot.

@Thyre Thyre requested review from Crivella and bedroge April 28, 2025 13:23
Copy link
Contributor

@bedroge bedroge left a comment

Choose a reason for hiding this comment

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

I've used this myself for several ROCm-LLVM 6.3.3 (LLVM 18) and 6.4.0 (LLVM 19) builds, and that worked fine. I haven't tested it with the regular LLVM builds, but I see several successful test reports.

So I'm happy with the changes. @Crivella: I suspect that you were also going to review this (?), so I won't merge it yet.

@Crivella
Copy link
Contributor

@bedroge I am running one final build on my WS with this PR, once it is finished i can approve and hit merge

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!

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.

5 participants