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

{toolchain} GCC 11.3.0

parent 7b7c1c98
No related branches found
No related tags found
No related merge requests found
Showing
with 434 additions and 0 deletions
easyblock = 'ConfigureMake'
name = 'Bison'
version = '3.8.2'
homepage = 'https://www.gnu.org/software/bison'
description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar
into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb']
builddependencies = [
('M4', '1.4.19'),
# use same binutils version that was used when building GCCcore toolchain
('binutils', '2.38', '', True),
]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')],
'dirs': [],
}
moduleclass = 'lang'
easyblock = 'ConfigureMake'
name = 'Bison'
version = '3.8.2'
homepage = 'https://www.gnu.org/software/bison'
description = """
Bison is a general-purpose parser generator that converts an annotated
context-free grammar into a deterministic LR or generalized LR (GLR) parser
employing LALR(1) parser tables.
"""
toolchain = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb']
builddependencies = [
('M4', '1.4.19'),
]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')],
'dirs': [],
}
moduleclass = 'lang'
name = 'binutils'
version = '2.38'
homepage = 'https://directory.fsf.org/project/binutils/'
description = "binutils: GNU binary utilities"
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['b3f1dc5b17e75328f19bd88250bee2ef9f91fc8cbb7bd48bdb31390338636052']
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.8.2'),
# use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils
('binutils', version, '', True)
]
dependencies = [
# zlib is a runtime dep to avoid that it gets embedded in libbfd.so,
# see https://github.com/easybuilders/easybuild-easyblocks/issues/1350
('zlib', '1.2.12'),
]
# avoid build failure when makeinfo command is not available
# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
buildopts = 'MAKEINFO=true'
installopts = buildopts
moduleclass = 'tools'
name = 'binutils'
version = '2.38'
homepage = 'https://directory.fsf.org/project/binutils/'
description = "binutils: GNU binary utilities"
toolchain = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['b3f1dc5b17e75328f19bd88250bee2ef9f91fc8cbb7bd48bdb31390338636052']
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.8.2'),
# zlib required, but being linked in statically, so not a runtime dep
('zlib', '1.2.12'),
]
# avoid build failure when makeinfo command is not available
# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
buildopts = 'MAKEINFO=true'
installopts = buildopts
moduleclass = 'tools'
name = 'flex'
version = '2.6.4'
homepage = 'http://flex.sourceforge.net/'
description = """
Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner,
sometimes called a tokenizer, is a program which recognizes lexical patterns
in text.
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}
source_urls = [
'https://github.com/westes/flex/releases/download/v%(version)s/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
builddependencies = [
('Bison', '3.8.2'),
('help2man', '1.49.2'),
# use same binutils version that was used when building GCC toolchain
('binutils', '2.38', '', True),
]
dependencies = [
('M4', '1.4.19'),
]
# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct
# header, see https://github.com/westes/flex/issues/241
preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && '
moduleclass = 'lang'
name = 'flex'
version = '2.6.4'
homepage = 'http://flex.sourceforge.net/'
description = """
Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner,
sometimes called a tokenizer, is a program which recognizes lexical patterns
in text.
"""
toolchain = SYSTEM
toolchainopts = {'pic': True}
source_urls = [
'https://github.com/westes/flex/releases/download/v%(version)s/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
# Do not add help2man, it depends on Perl and we do not want Perl at SYSTEM level.
# This results in not building man pages for the flex at SYSTEM level.
builddependencies = [
('Bison', '3.8.2'),
]
dependencies = [
('M4', '1.4.19'),
]
# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct
# header, see https://github.com/westes/flex/issues/241
preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && '
moduleclass = 'lang'
easyblock = 'Bundle'
name = 'GCC'
version = '11.3.0'
homepage = 'https://gcc.gnu.org/'
description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
as well as libraries for these languages (libstdc++, libgcj,...)."""
toolchain = SYSTEM
dependencies = [
('GCCcore', version),
# binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
('binutils', '2.38', '', ('GCCcore', version)),
]
altroot = 'GCCcore'
altversion = 'GCCcore'
# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
moduleclass = 'compiler'
easyblock = 'EB_GCC'
name = 'GCCcore'
version = '11.3.0'
homepage = 'https://gcc.gnu.org/'
description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
as well as libraries for these languages (libstdc++, libgcj,...)."""
toolchain = SYSTEM
source_urls = [
# GCC auto-resolving HTTP mirror
'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s',
# fallback URL for GCC
'https://sourceware.org/pub/gcc/releases/gcc-%(version)s',
'https://ftpmirror.gnu.org/gnu/gmp', # idem for GMP
'https://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR
'https://ftpmirror.gnu.org/gnu/mpc', # idem for MPC
'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies
# HTTPS mirror for GCC dependencies
'https://gcc.gnu.org/pub/gcc/infrastructure/',
'https://libisl.sourceforge.io/', # fallback URL for isl
'https://sourceware.org/pub/newlib/', # for newlib
'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
]
sources = [
'gcc-%(version)s.tar.gz',
'gmp-6.2.1.tar.bz2',
'mpfr-4.1.0.tar.bz2',
'mpc-1.2.1.tar.gz',
'isl-0.24.tar.bz2',
'newlib-4.1.0.tar.gz',
{'download_filename': '7292758.tar.gz',
'filename': 'nvptx-tools-20220412.tar.gz'},
]
patches = [
'GCCcore-6.2.0-fix-find-isl.patch',
'GCCcore-9.3.0_gmp-c99.patch',
'GCCcore-9.x-11.x_fix-unsigned-fpe-traps.patch',
'GCCcore-11.3.0_fuse-ld-mold.patch',
]
checksums = [
'98438e6cc7294298b474cf0da7655d9a8c8b796421bb0210531c294a950374ed', # gcc-11.3.0.tar.gz
'eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c', # gmp-6.2.1.tar.bz2
'feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926', # mpfr-4.1.0.tar.bz2
'17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459', # mpc-1.2.1.tar.gz
'fcf78dd9656c10eb8cf9fbd5f59a0b6b01386205fe1934b3b287a0a1898145c0', # isl-0.24.tar.bz2
'f296e372f51324224d387cc116dc37a6bd397198756746f93a2b02e9a5d40154', # newlib-4.1.0.tar.gz
# nvptx-tools-20220412.tar.gz
'20e3c1eeae7f375c36455b6036c4801de16b854910ff54268bbd3346f3685080',
# GCCcore-6.2.0-fix-find-isl.patch
'5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68',
# GCCcore-9.3.0_gmp-c99.patch
'0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e',
# GCCcore-9.x-11.x_fix-unsigned-fpe-traps.patch
'03a2e4aeda78d398edd680d6a1ba842b8ceb29c126ebb7fe2e3541ddfe4fbed4',
# GCCcore-11.3.0_fuse-ld-mold.patch
'bba64714f8b84ad58b3b43c0d21b4ffc298274ae699f514ed2934f002146d840',
]
builddependencies = [
('M4', '1.4.19'),
('binutils', '2.38'),
]
languages = ['c', 'c++', 'fortran']
withisl = True
withnvptx = True
# Perl is only required when building with NVPTX support
if withnvptx:
osdependencies = ['perl']
moduleclass = 'compiler'
easyblock = 'ConfigureMake'
name = 'help2man'
version = '1.49.2'
homepage = 'https://www.gnu.org/software/help2man/'
description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_XZ]
checksums = ['9e2e0e213a7e0a36244eed6204d902b6504602a578b6ecd15268b1454deadd36']
builddependencies = [
# use same binutils version that was used when building GCC toolchain
('binutils', '2.38', '', True),
]
sanity_check_paths = {
'files': ['bin/help2man'],
'dirs': [],
}
moduleclass = 'tools'
easyblock = 'ConfigureMake'
name = 'M4'
version = '1.4.19'
homepage = 'https://www.gnu.org/software/m4/m4.html'
description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible
although it has some extensions (for example, handling more than 9 positional parameters to macros).
GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70']
# use same binutils version that was used when building GCC toolchain
builddependencies = [('binutils', '2.38', '', True)]
# '-fgnu89-inline' is required to avoid linking errors with older glibc's,
# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529
configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline"
sanity_check_paths = {
'files': ['bin/m4'],
'dirs': [],
}
moduleclass = 'devel'
easyblock = 'ConfigureMake'
name = 'M4'
version = '1.4.19'
homepage = 'https://www.gnu.org/software/m4/m4.html'
description = """
GNU M4 is an implementation of the traditional Unix macro processor. It is
mostly SVR4 compatible although it has some extensions (for example, handling
more than 9 positional parameters to macros). GNU M4 also has built-in
functions for including files, running shell commands, doing arithmetic, etc.
"""
toolchain = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70']
# '-fgnu89-inline' is required to avoid linking errors with older glibc's,
# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529
configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline"
sanity_check_paths = {
'files': ['bin/m4'],
'dirs': [],
}
moduleclass = 'devel'
easyblock = 'ConfigureMake'
name = 'zlib'
version = '1.2.12'
homepage = 'https://www.zlib.net/'
description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is,
not covered by any patents -- lossless data-compression library for use on virtually any
computer hardware and operating system."""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}
source_urls = ['https://zlib.net/fossils']
sources = [SOURCELOWER_TAR_GZ]
patches = ['zlib-%(version)s_fix-CC-logic-in-configure.patch']
checksums = [
'91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9', # zlib-1.2.12.tar.gz
# zlib-1.2.12_fix-CC-logic-in-configure.patch
'f35eb05334a4f8d7b40b6c5610a6369f654863b5fa1a19c2507888f918025238',
]
# use same binutils version that was used when building GCC toolchain
builddependencies = [('binutils', '2.38', '', True)]
sanity_check_paths = {
'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'lib'
easyblock = 'ConfigureMake'
name = 'zlib'
version = '1.2.12'
homepage = 'https://www.zlib.net/'
description = """
zlib is designed to be a free, general-purpose, legally unencumbered -- that
is, not covered by any patents -- lossless data-compression library for use
on virtually any computer hardware and operating system.
"""
toolchain = SYSTEM
toolchainopts = {'pic': True}
source_urls = ['https://zlib.net/fossils/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['zlib-%(version)s_fix-CC-logic-in-configure.patch']
checksums = [
'91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9', # zlib-1.2.12.tar.gz
# zlib-1.2.12_fix-CC-logic-in-configure.patch
'f35eb05334a4f8d7b40b6c5610a6369f654863b5fa1a19c2507888f918025238',
]
# need to take care of $CFLAGS ourselves with dummy toolchain
# we need to add -fPIC, but should also include -O* option to avoid
# compiling with -O0 (default for GCC)
buildopts = 'CFLAGS="-O2 -fPIC"'
sanity_check_paths = {
'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a',
'lib/libz.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'lib'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment