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-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb index 4ab1428d8b4..45ffe9f5a3a 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-18.1.8-GCCcore-13.3.0-CUDA-12.6.0.eb @@ -1,12 +1,4 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild -# -# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans -# Authors:: Dmitri Gribenko -# Authors:: Ward Poelmans -# License:: GPLv2 or later, MIT, three-clause BSD. -# $Id$ -## +easyblock = 'EB_LLVM' name = 'Clang' version = '18.1.8' @@ -24,14 +16,26 @@ source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-% sources = [ 'llvm-project-%(version)s.src.tar.xz', ] -checksums = ['0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a'] +patches = [ + {'name': 'LLVM-18.1.8_envintest.patch', 'alt_location': 'LLVM'}, + {'name': 'LLVM-18.1.8_libomptarget_tests.patch', 'alt_location': 'LLVM'}, + {'name': 'LLVM-19.1.7_clang_rpathwrap_test.patch', 'alt_location': 'LLVM'}, +] +checksums = [ + {'llvm-project-18.1.8.src.tar.xz': '0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a'}, + {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'}, + {'LLVM-18.1.8_libomptarget_tests.patch': '858669446358d24936e2c85fa2bdc0b9e77427dc4a6f2aaa9c6d8e28638041c8'}, + {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'}, +] builddependencies = [ ('CMake', '3.29.3'), ('Perl', '5.38.2'), # Including Python bindings would require this as a runtime dep - # and SWIG as an additional build dep ('Python', '3.12.3'), + # For testing + ('psutil', '6.0.0'), + ('lit', '18.1.8'), ] dependencies = [ # since Clang is a compiler, binutils is a runtime dependency too @@ -42,17 +46,35 @@ dependencies = [ ('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. +cuda_compute_capabilities = ['5.0', '6.0', '7.0', '7.5', '8.0', '8.6', '9.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 assertions = True +build_clang_extras = True +build_openmp_library_aliases = True +build_lld = True +build_lldb = True +build_runtimes = True +build_shared_libs = True python_bindings = False -skip_all_tests = True +use_polly = True -llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi'] -llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang'] +skip_sanitizer_tests = True +test_suite_max_failed = 10 +test_suite_ignore_patterns = [ + # https://reviews.llvm.org/D129116 + "mlir-pdll-lsp-server/", + # GMT vs UCT mismatch + "std/time/time.syn/", + # Fails due to missing CUDA context, likely an upstream issue + "api/omp_host_pinned_memory", +] moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb index 8b096078c89..f94c8a43341 100644 --- a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb +++ b/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb @@ -1,12 +1,4 @@ -## -# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild -# -# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans -# Authors:: Dmitri Gribenko -# Authors:: Ward Poelmans -# License:: GPLv2 or later, MIT, three-clause BSD. -# $Id$ -## +easyblock = 'EB_LLVM' name = 'Clang' version = '18.1.8' @@ -23,14 +15,26 @@ source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-% sources = [ 'llvm-project-%(version)s.src.tar.xz', ] -checksums = ['0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a'] +patches = [ + {'name': 'LLVM-18.1.8_envintest.patch', 'alt_location': 'LLVM'}, + {'name': 'LLVM-18.1.8_libomptarget_tests.patch', 'alt_location': 'LLVM'}, + {'name': 'LLVM-19.1.7_clang_rpathwrap_test.patch', 'alt_location': 'LLVM'}, +] +checksums = [ + {'llvm-project-18.1.8.src.tar.xz': '0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a'}, + {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'}, + {'LLVM-18.1.8_libomptarget_tests.patch': '858669446358d24936e2c85fa2bdc0b9e77427dc4a6f2aaa9c6d8e28638041c8'}, + {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'}, +] builddependencies = [ ('CMake', '3.29.3'), ('Perl', '5.38.2'), # Including Python bindings would require this as a runtime dep - # and SWIG as an additional build dep ('Python', '3.12.3'), + # For testing + ('psutil', '6.0.0'), + ('lit', '18.1.8'), ] dependencies = [ # since Clang is a compiler, binutils is a runtime dependency too @@ -42,14 +46,29 @@ dependencies = [ ('Z3', '4.13.0'), ] -# If True, Flang does not currently support building with LLVM exceptions enabled. +# 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 assertions = True +build_clang_extras = True +build_openmp_library_aliases = True +build_lld = True +build_lldb = True +build_runtimes = True +build_shared_libs = True python_bindings = False -skip_all_tests = True +use_polly = True -llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi'] -llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang'] +skip_sanitizer_tests = True +test_suite_max_failed = 10 +test_suite_ignore_patterns = [ + # https://reviews.llvm.org/D129116 + "mlir-pdll-lsp-server/", + # GMT vs UCT mismatch + "std/time/time.syn/", +] moduleclass = 'compiler'