Skip to content

Conversation

@julianmorillo
Copy link
Contributor

No description provided.

@github-actions
Copy link

Updated software Clang-20.1.0-GCCcore-13.2.0.eb

Diff against Clang-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb

easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb

diff --git a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb b/easybuild/easyconfigs/c/Clang/Clang-20.1.0-GCCcore-13.2.0.eb
index 4ab1428d8b..1c8b074d8a 100644
--- a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb
+++ b/easybuild/easyconfigs/c/Clang/Clang-20.1.0-GCCcore-13.2.0.eb
@@ -9,8 +9,7 @@
 ##
 
 name = 'Clang'
-version = '18.1.8'
-versionsuffix = '-CUDA-%(cudaver)s'
+version = '20.1.0'
 
 homepage = 'https://clang.llvm.org/'
 description = """C, C++, Objective-C compiler, based on LLVM.  Does not
@@ -18,35 +17,33 @@ description = """C, C++, Objective-C compiler, based on LLVM.  Does not
 
 # Clang also depends on libstdc++ during runtime, but this dependency is
 # already specified as the toolchain.
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
-source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
+source_urls = ["https://github.com/llvm/llvm-project/archive/refs/tags"]
 sources = [
-    'llvm-project-%(version)s.src.tar.xz',
+    'llvmorg-20.1.0.tar.gz',
 ]
-checksums = ['0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a']
+checksums = ['08bc382733777dda3c96259e3732ff96c1df98d0470c4f85b163274eae687f4f']
 
 builddependencies = [
-    ('CMake', '3.29.3'),
-    ('Perl', '5.38.2'),
+    ('CMake', '3.27.6'),
+    ('Perl', '5.38.0'),
     # Including Python bindings would require this as a runtime dep
     # and SWIG as an additional build dep
-    ('Python', '3.12.3'),
+    ('Python', '3.11.5'),
 ]
 dependencies = [
     # since Clang is a compiler, binutils is a runtime dependency too
-    ('binutils', '2.42'),
-    ('hwloc', '2.10.0'),
-    ('libxml2', '2.12.7'),
-    ('ncurses', '6.5'),
+    ('binutils', '2.40'),
+    ('hwloc', '2.9.2'),
+    ('libxml2', '2.11.5'),
+    ('ncurses', '6.4'),
     ('GMP', '6.3.0'),
     ('Z3', '4.13.0'),
-    ('CUDA', '12.6.0', '', SYSTEM),
-
 ]
 
 # If True, Flang does not currently support building with LLVM exceptions enabled.
-enable_rtti = False
+enable_rtti = True
 
 assertions = True
 python_bindings = False
Diff against Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb

easybuild/easyconfigs/c/Clang/Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/c/Clang/Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/Clang/Clang-20.1.0-GCCcore-13.2.0.eb
index 947a6afdad..1c8b074d8a 100644
--- a/easybuild/easyconfigs/c/Clang/Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/c/Clang/Clang-20.1.0-GCCcore-13.2.0.eb
@@ -9,9 +9,7 @@
 ##
 
 name = 'Clang'
-version = '17.0.0_20230515'
-versionsuffix = '-CUDA-%(cudaver)s'
-_commit = 'c5dede880d17'
+version = '20.1.0'
 
 homepage = 'https://clang.llvm.org/'
 description = """C, C++, Objective-C compiler, based on LLVM.  Does not
@@ -19,37 +17,33 @@ description = """C, C++, Objective-C compiler, based on LLVM.  Does not
 
 # Clang also depends on libstdc++ during runtime, but this dependency is
 # already specified as the toolchain.
-toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
-sources = [{
-    'source_urls': ["https://github.com/llvm/llvm-project/archive"],
-    'download_filename': '%s.tar.gz' % _commit,
-    'filename': 'llvm-project-%s.tar.gz' % version,
-}]
-checksums = ['6f371f9ac208b8e9dc57fc117b1a9c8565d7ea2bbb49a2768cb9c3c0fee0291d']
+source_urls = ["https://github.com/llvm/llvm-project/archive/refs/tags"]
+sources = [
+    'llvmorg-20.1.0.tar.gz',
+]
+checksums = ['08bc382733777dda3c96259e3732ff96c1df98d0470c4f85b163274eae687f4f']
 
 builddependencies = [
-    ('CMake', '3.26.3'),
-    ('Perl', '5.36.1'),
+    ('CMake', '3.27.6'),
+    ('Perl', '5.38.0'),
     # Including Python bindings would require this as a runtime dep
-    ('Python', '3.11.3'),
+    # and SWIG as an additional build dep
+    ('Python', '3.11.5'),
 ]
 dependencies = [
     # since Clang is a compiler, binutils is a runtime dependency too
     ('binutils', '2.40'),
-    ('hwloc', '2.9.1'),
-    ('libxml2', '2.11.4'),
+    ('hwloc', '2.9.2'),
+    ('libxml2', '2.11.5'),
     ('ncurses', '6.4'),
-    ('GMP', '6.2.1'),
-    ('Z3', '4.12.2'),
-    ('CUDA', '12.1.1', '', SYSTEM),
+    ('GMP', '6.3.0'),
+    ('Z3', '4.13.0'),
 ]
 
-# enabling RTTI makes the flang compiler need to link to libc++ so instead of
-#   flang-new -flang-experimental-exec -fopenmp hello_openmp.f90
-# you would need
-#   flang-new -flang-experimental-exec -fopenmp hello_openmp.f90 -l c++
-enable_rtti = False
+# If True, Flang does not currently support building with LLVM exceptions enabled.
+enable_rtti = True
 
 assertions = True
 python_bindings = False
Diff against Clang-18.1.8-GCCcore-13.3.0.eb

easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Clang/Clang-20.1.0-GCCcore-13.2.0.eb
index 8b096078c8..1c8b074d8a 100644
--- a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/c/Clang/Clang-20.1.0-GCCcore-13.2.0.eb
@@ -9,7 +9,7 @@
 ##
 
 name = 'Clang'
-version = '18.1.8'
+version = '20.1.0'
 
 homepage = 'https://clang.llvm.org/'
 description = """C, C++, Objective-C compiler, based on LLVM.  Does not
@@ -17,33 +17,33 @@ description = """C, C++, Objective-C compiler, based on LLVM.  Does not
 
 # Clang also depends on libstdc++ during runtime, but this dependency is
 # already specified as the toolchain.
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
 
-source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
+source_urls = ["https://github.com/llvm/llvm-project/archive/refs/tags"]
 sources = [
-    'llvm-project-%(version)s.src.tar.xz',
+    'llvmorg-20.1.0.tar.gz',
 ]
-checksums = ['0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a']
+checksums = ['08bc382733777dda3c96259e3732ff96c1df98d0470c4f85b163274eae687f4f']
 
 builddependencies = [
-    ('CMake', '3.29.3'),
-    ('Perl', '5.38.2'),
+    ('CMake', '3.27.6'),
+    ('Perl', '5.38.0'),
     # Including Python bindings would require this as a runtime dep
     # and SWIG as an additional build dep
-    ('Python', '3.12.3'),
+    ('Python', '3.11.5'),
 ]
 dependencies = [
     # since Clang is a compiler, binutils is a runtime dependency too
-    ('binutils', '2.42'),
-    ('hwloc', '2.10.0'),
-    ('libxml2', '2.12.7'),
-    ('ncurses', '6.5'),
+    ('binutils', '2.40'),
+    ('hwloc', '2.9.2'),
+    ('libxml2', '2.11.5'),
+    ('ncurses', '6.4'),
     ('GMP', '6.3.0'),
     ('Z3', '4.13.0'),
 ]
 
 # If True, Flang does not currently support building with LLVM exceptions enabled.
-enable_rtti = False
+enable_rtti = True
 
 assertions = True
 python_bindings = False

@Thyre
Copy link
Collaborator

Thyre commented Mar 12, 2025

I am pretty sure that this will not work correctly with the existing Clang EasyBlock. Reasons include for example the removal of GCC_INSTALL_PREFIX, see easybuilders/easybuild-easyblocks#3373 (comment). Because of this, Clang 19 won't work as well.

easybuilders/easybuild-easyblocks#3373 implements a way more robust EasyBlock, being used in some other EasyConfig PRs, e.g.: #22517, but this requires EasyBuild 5.0.

@Thyre
Copy link
Collaborator

Thyre commented Mar 12, 2025

We don't even get that far:

== 2025-03-12 12:51:11,030 run.py:260 INFO running cmd: tar xzf /[...]/reuter1/sources/c/Clang/llvmorg-20.1.0.tar.gz
== 2025-03-12 12:51:18,732 build_log.py:171 ERROR EasyBuild crashed with an error (at easybuild/easybuild-framework/easybuild/base/exceptions.py:126 in __init__): Could not determine LLVM source root (LLVM source was not unpacked?) (at easybuild/easybuild-easyblocks/easybuild/easyblocks/c/clang.py:240 in extract_step)
== 2025-03-12 12:51:18,732 build_log.py:267 INFO ... (took 7 secs)
== 2025-03-12 12:51:18,732 filetools.py:2055 INFO Removing lock /[...]/reuter1/rocky9/zen3/software/.locks/_project_def-maintainers_reuter1_rocky9_zen3_software_Clang_20.1.0-GCCcore-13.2.0.lock...
== 2025-03-12 12:51:18,735 filetools.py:385 INFO Path /[...]/reuter1/rocky9/zen3/software/.locks/_project_def-maintainers_reuter1_rocky9_zen3_software_Clang_20.1.0-GCCcore-13.2.0.lock successfully removed.
== 2025-03-12 12:51:18,735 filetools.py:2059 INFO Lock removed: /[...]/reuter1/rocky9/zen3/software/.locks/_project_def-maintainers_reuter1_rocky9_zen3_software_Clang_20.1.0-GCCcore-13.2.0.lock
== 2025-03-12 12:51:18,735 easyblock.py:4305 WARNING build failed (first 300 chars): Could not determine LLVM source root (LLVM source was not unpacked?)
== 2025-03-12 12:51:18,735 easyblock.py:332 INFO Closing log for application name Clang version 20.1.0

The EasyBlock fails as the sources do not start with llvm-, see here

        # Find the full path to the directory that was unpacked from llvm-*.tar.gz.
        for tmp in self.src:
            if tmp['name'].startswith("llvm-"):
                self.llvm_src_dir = tmp['finalpath']
                break

        if self.llvm_src_dir is None:
            raise EasyBuildError("Could not determine LLVM source root (LLVM source was not unpacked?)")

@julianmorillo julianmorillo deleted the Clang branch March 12, 2025 14:07
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.

2 participants