easybuild-easyblocks icon indicating copy to clipboard operation
easybuild-easyblocks copied to clipboard

Update Clang easyblock for fixed 'finalpath' source attributes

Open Flamefire opened this issue 3 months ago • 4 comments

(created using eb --new-pr)

The Clang easyblock has a workaround for finding the final paths (i.e. the folder that was contained in each source archive) by using globs.

With https://github.com/easybuilders/easybuild-framework/pull/4922 this becomes unnecessary and even fails because it will e.g. look in the wrong folder and append the finalpath to itself:

  • In one variant of https://github.com/easybuilders/easybuild-framework/pull/4922 it switched to the final path of the last source which prior to that was (wrongly) the builddir. The required paths were subfolders of the builddir so that worked but as the finalpath of the last source now correctly is "libunwind-xxx" it won't find the sources. Similar when switching to the directory of the first source which is the current solution
  • It will then append the glob found to the finalpath of each source leading to e.g. builddir/compiler-rt-xxx/compiler-rt-xxx

We don't need that logic anymore as we can simply use the finalpath of each source directly.

Requires

  • [ ] https://github.com/easybuilders/easybuild-framework/pull/4922

Flamefire avatar Oct 16 '25 06:10 Flamefire

Failing Clang 18 uses LLVM easyblock and fails in tests, so unrelated

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-12.0.1-GCCcore-10.3.0.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0-CUDA-11.7.0.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

  • SUCCESS Clang-15.0.5-GCCcore-11.3.0.eb

  • SUCCESS Clang-16.0.6-GCCcore-12.3.0-CUDA-12.1.1.eb

  • SUCCESS Clang-16.0.6-GCCcore-12.3.0.eb

  • SUCCESS Clang-16.0.6-GCCcore-12.3.0-shared.eb

  • SUCCESS Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb

  • SUCCESS Clang-17.0.6-GCCcore-13.2.0.eb

  • FAIL Clang-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb (build issue) (partial log available at https://gist.github.com/Flamefire/1a8470b899e9641c71572a4cd2cea2aa)

  • SUCCESS Clang-18.1.8-GCCcore-13.3.0.eb

  • SUCCESS CUDA-11.3.1.eb

  • SUCCESS hwloc-2.5.0-GCCcore-11.2.0.eb

  • SUCCESS Z3-4.12.2-GCCcore-12.2.0.eb

  • SUCCESS Clang-12.0.1-GCCcore-10.3.0-CUDA-11.3.1.eb

  • SUCCESS Clang-16.0.4-GCCcore-12.2.0.eb

  • SUCCESS Z3-4.8.12-GCCcore-11.2.0.eb

  • SUCCESS elfutils-0.185-GCCcore-11.2.0.eb

  • SUCCESS Clang-12.0.1-GCCcore-11.2.0.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.2.0.eb

  • SUCCESS CUDA-11.4.1.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.2.0-CUDA-11.4.1.eb

Build succeeded for 21 out of 22 (16 easyconfigs in total) c144 - 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/e9b96aeb5db04285f3ed7c4dbce3b5eb for a full test report.

Flamefire avatar Oct 16 '25 18:10 Flamefire

Test report by @Flamefire

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-12.0.1-GCCcore-10.3.0-CUDA-11.3.1.eb

  • SUCCESS Clang-12.0.1-GCCcore-10.3.0.eb

  • SUCCESS Clang-12.0.1-GCCcore-11.2.0.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.2.0-CUDA-11.4.1.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.2.0.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0-CUDA-11.7.0.eb

  • SUCCESS Clang-13.0.1-GCCcore-11.3.0.eb

  • SUCCESS Clang-15.0.5-GCCcore-11.3.0.eb

  • SUCCESS Clang-16.0.6-GCCcore-12.3.0-CUDA-12.1.1.eb

  • SUCCESS Clang-16.0.6-GCCcore-12.3.0.eb

  • SUCCESS Clang-16.0.6-GCCcore-12.3.0-shared.eb

  • SUCCESS Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb

  • SUCCESS Clang-17.0.6-GCCcore-13.2.0.eb

  • SUCCESS Clang-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb

  • SUCCESS Clang-18.1.8-GCCcore-13.3.0.eb

  • SUCCESS Z3-4.12.2-GCCcore-12.2.0.eb

  • SUCCESS Clang-16.0.4-GCCcore-12.2.0.eb

Build succeeded for 17 out of 17 (16 easyconfigs in total) i8019 - Linux Rocky Linux 9.6, x86_64, AMD EPYC 7352 24-Core Processor (zen2), 8 x NVIDIA NVIDIA A100-SXM4-40GB, 580.65.06, Python 3.9.21 See https://gist.github.com/Flamefire/d4f66449cde1101fdacd9f491bf74fd9 for a full test report.

Flamefire avatar Oct 17 '25 17:10 Flamefire

@Flamefire Isn't this an indication that merging https://github.com/easybuilders/easybuild-framework/pull/4922 would introduce a breaking change?

boegel avatar Oct 22 '25 14:10 boegel

@Flamefire Isn't this an indication that merging easybuilders/easybuild-framework#4922 would introduce a breaking change?

In some rare cases yes. I mention that in https://github.com/easybuilders/easybuild-framework/pull/4922#issuecomment-3406862355

There shouldn't be much that does this gymnastics the Clang easyblock does to workaround the bug that is fixed by 4922

Flamefire avatar Oct 22 '25 16:10 Flamefire