diff --git a/easybuild/easyconfigs/l/LLVM/LLVM-21.1.2-GCCcore-14.3.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-21.1.2-GCCcore-14.3.0.eb new file mode 100644 index 000000000000..f3cfca92c971 --- /dev/null +++ b/easybuild/easyconfigs/l/LLVM/LLVM-21.1.2-GCCcore-14.3.0.eb @@ -0,0 +1,93 @@ +name = 'LLVM' +version = '21.1.2' + + +homepage = "https://llvm.org/" +description = """ +The LLVM Core libraries provide a modern source- and target-independent +optimizer, along with code generation support for many popular CPUs +(as well as some less common ones!) These libraries are built around a well +specified code representation known as the LLVM intermediate representation +("LLVM IR"). The LLVM Core libraries are well documented, and it is +particularly easy to invent your own language (or port an existing compiler) +to use LLVM as an optimizer and code generator. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.3.0'} +toolchainopts = { + # 'cstd': 'gnu++11', + 'pic': True, +} + +source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/'] +sources = [ + 'llvm-project-%(version)s.src.tar.xz', +] +patches = [ + 'LLVM-18.1.8_envintest.patch', + 'LLVM-19.1.7_libomptarget_tests.patch', + 'LLVM-19.1.7_clang_rpathwrap_test.patch', +] +checksums = [ + {'llvm-project-21.1.2.src.tar.xz': '1a417d1c8faf8d93e73fec1cbb76d393ed3218974c2283c7bac9672d3d47c54b'}, + {'LLVM-18.1.8_envintest.patch': '8e25dfab8a29a860717b4bd2d8cdd0e795433766d7fffbda32d06a2bde47058d'}, + {'LLVM-19.1.7_libomptarget_tests.patch': '79a67c118d034cfb74e255696369150c73432d2b422f4834efacb26f7904edbf'}, + {'LLVM-19.1.7_clang_rpathwrap_test.patch': '5ee6a87ec8ff1c8b736ffe0513aa2098bd2b83a1ffc647a1ad2cf966f567e8a1'}, +] + +builddependencies = [ + ('binutils', '2.44'), + ('Python', '3.13.5'), + ('CMake', '4.0.3'), + ('psutil', '7.0.0'), # Needed to enable test timeout in lit + ('lit', '18.1.8'), + ('git', '2.50.1'), +] + +dependencies = [ + ('libffi', '3.5.1'), + ('libxml2', '2.14.3'), + ('ncurses', '6.5'), + ('zlib', '1.3.1'), + ('Z3', '4.15.1'), + ('zstd', '1.5.7'), +] + +build_shared_libs = True + +bootstrap = True +full_llvm = False +build_clang_extras = True +build_runtimes = True +build_lld = True +build_lldb = True +build_bolt = True +build_openmp = True +build_openmp_tools = True +build_openmp_offload = True +use_polly = True + +python_bindings = True + +build_targets = ['all'] +# disable_werror = True + +skip_all_tests = False +skip_sanitizer_tests = True +test_suite_max_failed = 10 +test_suite_timeout_single = 5 * 60 +test_suite_ignore_patterns = [ + "X86/register-fragments-bolt-symbols.s", + "modularize/ProblemsCoverage.modularize", + "Driver/atomic.f90", + "Driver/gcc-toolchain-install-dir.f90", + "api_tests/test_ompd_get_icv_from_scope.c", + "std/time/time.syn/formatter", + # Those 2 might fail with "tzdb: the path '/etc/localtime' is not a symlink" + "std/time/time.zone/time.zone.db/time.zone.db.tzdb", + "std/time/time.zone/time.zone.db/time.zone.db.access", + # Since v21.x several benchmark tests are timing out + "llvm-libc++-shared.cfg.in :: benchmarks/", +] + +moduleclass = 'compiler'