Skip to content
Snippets Groups Projects
Commit b98debe1 authored by Sebastian Achilles's avatar Sebastian Achilles
Browse files

add Clang

parent b50c0955
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,13 @@
Overview of the custom EasyBlocks.
## CLANG
- __*added by*__ s.achilles
- __*needed because*__ build_extra_clang_tools Support.
- __*difference compared to upstream*__ Same as upstream EasyBlocks 4.3.4
- __*can be removed*__ when we upgread EasyBlocks 4.3.4+
## GCC
- __*added by*__ s.achilles
......
This diff is collapsed.
# For using $SYSTEMNAME to determine compute capability. The local prefix is to appease the checker
import os as local_os
name = 'Clang'
version = '10.0.1'
homepage = 'https://clang.llvm.org/'
description = """C, C++, Objective-C compiler, based on LLVM. Does not
include C++ standard library -- use libstdc++ from GCC."""
site_contacts = 'sc@fz-juelich.de'
# Clang also depends on libstdc++ during runtime, but this dependency is
# already specified as the toolchain.
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
# Do not set optarch to True: it will cause the build to fail
toolchainopts = {'optarch': False}
source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
sources = [
# clang needs the llvm source, therefore the LLVM module is not enough
'llvm-%(version)s.src.tar.xz',
'clang-%(version)s.src.tar.xz',
'compiler-rt-%(version)s.src.tar.xz',
'polly-%(version)s.src.tar.xz',
'openmp-%(version)s.src.tar.xz',
# Also include the LLVM linker
'lld-%(version)s.src.tar.xz',
'libcxx-%(version)s.src.tar.xz',
'libcxxabi-%(version)s.src.tar.xz',
'clang-tools-extra-%(version)s.src.tar.xz',
]
patches = ['libcxx-10.0.0-ppc64le.patch']
checksums = [
'c5d8e30b57cbded7128d78e5e8dad811bff97a8d471896812f57fa99ee82cdf3', # llvm-10.0.1.src.tar.xz
'f99afc382b88e622c689b6d96cadfa6241ef55dca90e87fc170352e12ddb2b24', # clang-10.0.1.src.tar.xz
'd90dc8e121ca0271f0fd3d639d135bfaa4b6ed41e67bd6eb77808f72629658fa', # compiler-rt-10.0.1.src.tar.xz
'd2fb0bb86b21db1f52402ba231da7c119c35c21dfb843c9496fe901f2d6aa25a', # polly-10.0.1.src.tar.xz
'd19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44', # openmp-10.0.1.src.tar.xz
'591449e0aa623a6318d5ce2371860401653c48bb540982ccdd933992cb88df7a', # lld-10.0.1.src.tar.xz
'def674535f22f83131353b3c382ccebfef4ba6a35c488bdb76f10b68b25be86c', # libcxx-10.0.1.src.tar.xz
'a97ef810b2e9fb70e8f7e317b74e646ed4944f488b02ac5ddd9c99e385381a7b', # libcxxabi-10.0.1.src.tar.xz
'd093782bcfcd0c3f496b67a5c2c997ab4b85816b62a7dd5b27026634ccf5c11a', # clang-tools-extra-10.0.1.src.xz
'a424a9eb7f377b4f01d8c9b27fdd78e6a51a53819b263d2ca6d40a0e2368a330', # libcxx-10.0.0-ppc64le.patch
]
dependencies = [
# since Clang is a compiler, binutils is a runtime dependency too
('binutils', '2.34'),
('hwloc', '2.2.0'),
('libxml2', '2.9.10'),
('ncurses', '6.2'),
('GMP', '6.2.0'),
('Z3', '4.8.9'),
]
builddependencies = [
('CMake', '3.18.0'),
('Python', '3.8.5'),
]
default_cuda_capability = {
'juwels': '70',
'juwelsbooster': '80',
'jurecadc': '80',
'jusuf': '70',
'hdfml': '70'
}[local_os.environ['SYSTEMNAME']]
cuda_compute_capabilities = {
'juwels': ['7.0'],
'juwelsbooster': ['8.0'],
'jurecadc': ['8.0'],
'jusuf': ['7.0'],
'hdfml': ['7.0']
}[local_os.environ['SYSTEMNAME']]
assertions = True
usepolly = True
build_lld = True
libcxx = True
enable_rtti = True
build_extra_clang_tools = True
skip_all_tests = True
stage3_configopts = '-DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=1'
stage3_configopts += ' -DLIBOMPTARGET_NVPTX_CUDA_COMPILER=%(builddir)s/llvm.obj.2/bin/clang'
stage3_configopts += ' -DLIBOMPTARGET_NVPTX_BC_LINKER=%(builddir)s/llvm.obj.2//bin/llvm-link'
modluafooter = '''
add_property("arch","gpu")
'''
# it should be a compiler, but then we won't be able to load GCC+MPI
moduleclass = 'devel'
# For using $SYSTEMNAME to determine compute capability. The local prefix is to appease the checker
import os as local_os
name = 'Clang'
version = '11.0.0'
homepage = 'https://clang.llvm.org/'
description = """C, C++, Objective-C compiler, based on LLVM. Does not
include C++ standard library -- use libstdc++ from GCC."""
site_contacts = 'sc@fz-juelich.de'
# Clang also depends on libstdc++ during runtime, but this dependency is
# already specified as the toolchain.
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
sources = [
'llvm-%(version)s.src.tar.xz',
'clang-%(version)s.src.tar.xz',
'compiler-rt-%(version)s.src.tar.xz',
'polly-%(version)s.src.tar.xz',
'openmp-%(version)s.src.tar.xz',
# Also include the LLVM linker
'lld-%(version)s.src.tar.xz',
'libcxx-%(version)s.src.tar.xz',
'libcxxabi-%(version)s.src.tar.xz',
'clang-tools-extra-%(version)s.src.tar.xz',
]
checksums = [
'913f68c898dfb4a03b397c5e11c6a2f39d0f22ed7665c9cefa87a34423a72469', # llvm-11.0.0.src.tar.xz
'0f96acace1e8326b39f220ba19e055ba99b0ab21c2475042dbc6a482649c5209', # clang-11.0.0.src.tar.xz
'374aff82ff573a449f9aabbd330a5d0a441181c535a3599996127378112db234', # compiler-rt-11.0.0.src.tar.xz
'dcfadb8d11f2ea0743a3f19bab3b43ee1cb855e136bc81c76e2353cd76148440', # polly-11.0.0.src.tar.xz
'2d704df8ca67b77d6d94ebf79621b0f773d5648963dd19e0f78efef4404b684c', # openmp-11.0.0.src.tar.xz
'efe7be4a7b7cdc6f3bcf222827c6f837439e6e656d12d6c885d5c8a80ff4fd1c', # lld-11.0.0.src.tar.xz
'6c1ee6690122f2711a77bc19241834a9219dda5036e1597bfa397f341a9b8b7a', # libcxx-11.0.0.src.tar.xz
'58697d4427b7a854ec7529337477eb4fba16407222390ad81a40d125673e4c15', # libcxxabi-11.0.0.src.tar.xz
'fed318f75d560d0e0ae728e2fb8abce71e9d0c60dd120c9baac118522ce76c09', # clang-tools-extra-11.0.0.src.tar.xz
]
dependencies = [
# since Clang is a compiler, binutils is a runtime dependency too
('binutils', '2.34'),
('hwloc', '2.2.0'),
('libxml2', '2.9.10'),
('ncurses', '6.2'),
('GMP', '6.2.0'),
('Z3', '4.8.9'),
]
builddependencies = [
('CMake', '3.18.0'),
('Python', '3.8.5'),
]
default_cuda_capability = {
'juwels': '70',
'juwelsbooster': '80',
'jurecadc': '80',
'jusuf': '70',
'hdfml': '70'
}[local_os.environ['SYSTEMNAME']]
cuda_compute_capabilities = {
'juwels': ['7.0'],
'juwelsbooster': ['8.0'],
'jurecadc': ['8.0'],
'jusuf': ['7.0'],
'hdfml': ['7.0']
}[local_os.environ['SYSTEMNAME']]
assertions = True
usepolly = True
build_lld = True
libcxx = True
enable_rtti = True
build_extra_clang_tools = True
skip_all_tests = True
stage3_configopts = '-DLIBOMPTARGET_NVPTX_ENABLE_BCLIB=1'
stage3_configopts += ' -DLIBOMPTARGET_NVPTX_CUDA_COMPILER=%(builddir)s/llvm.obj.2/bin/clang'
stage3_configopts += ' -DLIBOMPTARGET_NVPTX_BC_LINKER=%(builddir)s/llvm.obj.2//bin/llvm-link'
modluafooter = '''
add_property("arch","gpu")
'''
# it should be a compiler, but then we won't be able to load GCC+MPI
moduleclass = 'devel'
Reverse the if def order. Patch from https://bugs.llvm.org/show_bug.cgi?id=39696#c38
Prepared for EasyBuild by Simon Branford, University of Birmingham
--- a/projects/libcxx/include/thread.orig 2020-03-23 16:01:02.000000000 +0100
+++ b/projects/libcxx/include/thread 2020-04-08 19:19:31.625082029 +0200
@@ -369,9 +369,9 @@
{
#if defined(_LIBCPP_COMPILER_GCC) && (__powerpc__ || __POWERPC__)
// GCC's long double const folding is incomplete for IBM128 long doubles.
- _LIBCPP_CONSTEXPR duration<long double> _Max = nanoseconds::max();
-#else
_LIBCPP_CONSTEXPR duration<long double> _Max = duration<long double>(ULLONG_MAX/1000000000ULL) ;
+#else
+ _LIBCPP_CONSTEXPR duration<long double> _Max = nanoseconds::max();
#endif
nanoseconds __ns;
if (__d < _Max)
easyblock = 'CMakeMake'
name = 'Z3'
version = '4.8.9'
homepage = 'https://github.com/Z3Prover/z3'
description = """
Z3 is a theorem prover from Microsoft Research.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
source_urls = ['https://github.com/Z3Prover/z3/archive/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['c9fd04b9b33be74fffaac3ec2bc2c320d1a4cc32e395203c55126b12a14ff3f4']
builddependencies = [
('CMake', '3.18.0'),
# use same binutils version that was used when building GCCcore toolchain
('binutils', '2.34'),
]
dependencies = [
('GMP', '6.2.0'),
]
configopts = '-DZ3_USE_LIB_GMP=ON -DZ3_LINK_TIME_OPTIMIZATION=ON '
sanity_check_paths = {
'files': ['bin/z3', 'include/z3_api.h', 'lib/libz3.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'tools'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment