Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions easybuild/easyconfigs/l/LLVM/LLVM-21.1.2-GCCcore-14.3.0.eb
Original file line number Diff line number Diff line change
@@ -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'