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

add easyconfig for GCC 11.2.0

parent 93f5a2e3
Branches
No related tags found
No related merge requests found
Showing
with 518 additions and 0 deletions
easyblock = 'ConfigureMake'
name = 'Bison'
version = '3.7.6'
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."""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea']
builddependencies = [
('M4', '1.4.19'),
# use same binutils version that was used when building GCCcore toolchain
('binutils', '2.37', '', SYSTEM),
]
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.7.6'
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.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['69dc0bb46ea8fc307d4ca1e0b61c8c355eb207d0b0c69f4f8462328e74d7b9ea']
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.37'
homepage = 'https://directory.fsf.org/project/binutils/'
description = "binutils: GNU binary utilities"
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '10.3.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['e68edeaaeb6ca9687b6dcbaedd1b376506baad2d48de26a885fc5ab6acb839da']
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.7.6'),
# use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils
('binutils', version, '', SYSTEM)
]
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.11'),
]
# 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.36.1'
homepage = 'https://directory.fsf.org/project/binutils/'
description = "binutils: GNU binary utilities"
site_contacts = 'sc@fz-juelich.de'
toolchain = SYSTEM
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['e68edeaaeb6ca9687b6dcbaedd1b376506baad2d48de26a885fc5ab6acb839da']
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.7.6'),
# zlib required, but being linked in statically, so not a runtime dep
('zlib', '1.2.11'),
]
# 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.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '10.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.7.6'),
('help2man', '1.48.3'),
# use same binutils version that was used when building GCC toolchain
('binutils', '2.37', '', SYSTEM),
]
dependencies = [
('M4', '1.4.18'),
]
# 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."""
site_contacts = 'a.strube@fz-juelich.de'
toolchain = SYSTEM
toolchainopts = {'pic': True}
sources = [SOURCELOWER_TAR_GZ]
source_urls = [
'https://github.com/westes/flex/releases/download/v%(version)s/']
builddependencies = [
('M4', '1.4.18'),
]
dependencies = [
('Bison', '3.7.6'),
]
hidden = True
moduleclass = 'lang'
easyblock = 'Bundle'
name = 'GCC'
version = '11.2.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,...).
This module supports NVPTX offloading support. If you want to use this you have to load the CUDA module.
"""
site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
toolchain = SYSTEM
dependencies = [
('GCCcore', version),
# binutils built on top of GCCcore, which was built on top of (dummy-built) binutils
('binutils', '2.37', '', ('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.2.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,...).
This module supports NVPTX offloading support. If you want to use this you have to load the CUDA module.
"""
site_contacts = 'Damian Alvarez <d.alvarez@fz-juelich.de>'
toolchain = SYSTEM
source_urls = [
# GCC auto-resolving HTTP mirror
'https://ftpmirror.gnu.org/gnu/gcc/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
'http://gcc.cybermirror.org/infrastructure/', # HTTP mirror for GCC dependencies
'http://isl.gforge.inria.fr/', # original HTTP source 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': 'd0524fb.tar.gz',
'filename': 'nvptx-tools-20210115.tar.gz'},
]
patches = [
'GCCcore-6.2.0-fix-find-isl.patch',
'GCCcore-9.3.0_gmp-c99.patch',
]
checksums = [
'f0837f1bf8244a5cc23bd96ff6366712a791cfae01df8e25b137698aca26efc1', # gcc-11.2.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-20210115.tar.gz
'466abe1cef9cf294318ecb3c221593356f7a9e1674be987d576bc70d833d84a2',
# GCCcore-6.2.0-fix-find-isl.patch
'5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68',
# GCCcore-9.3.0_gmp-c99.patch
'0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e',
]
builddependencies = [
('M4', '1.4.19'),
('binutils', '2.37'),
]
languages = ['c', 'c++', 'fortran']
withisl = True
withnvptx = True
# Perl is only required when building with NVPTX support
if withnvptx:
osdependencies = ['perl']
# Make sure we replace the system cc with gcc with an alias
modaliases = {'cc': 'gcc'}
moduleclass = 'compiler'
# Don't use libmpc and libmpfr to find libisl
# by wpoely86@gmail.com
diff -ur gcc-6.1.0.orig/configure gcc-6.1.0/configure
--- gcc-6.1.0.orig/configure 2016-08-26 17:51:48.470524515 +0200
+++ gcc-6.1.0/configure 2016-03-17 23:54:19.000000000 +0100
@@ -6018,7 +6018,7 @@
_isl_saved_LIBS=$LIBS
CFLAGS="${_isl_saved_CFLAGS} ${islinc} ${gmpinc}"
- LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs} ${gmplibs}"
+ LDFLAGS="${_isl_saved_LDFLAGS} ${isllibs}"
LIBS="${_isl_saved_LIBS} -lisl -lgmp"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isl 0.16, 0.15, or deprecated 0.14" >&5
add -std=c99 when building GMP, to avoid compilation errors with older GCC system compilers
author: Kenneth Hoste (HPC-UGent)
--- gcc-9.3.0-RC-20200305/Makefile.in.orig 2020-03-10 20:30:39.851898414 +0100
+++ gcc-9.3.0-RC-20200305/Makefile.in 2020-03-10 20:33:13.011735787 +0100
@@ -12891,7 +12891,7 @@
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gmp && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
+ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" \
$(TARGET-gmp))
@endif gmp
@@ -12922,7 +12922,7 @@
CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
$(EXTRA_HOST_FLAGS) \
- $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
+ $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" \
TFLAGS="$(STAGE1_TFLAGS)" \
$(TARGET-stage1-gmp)
@@ -12937,7 +12937,7 @@
fi; \
cd $(HOST_SUBDIR)/gmp && \
$(MAKE) $(EXTRA_HOST_FLAGS) \
- $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
+ $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" clean
@endif gmp-bootstrap
@@ -12966,7 +12966,7 @@
CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
- $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" \
TFLAGS="$(STAGE2_TFLAGS)" \
$(TARGET-stage2-gmp)
@@ -12980,7 +12980,7 @@
$(MAKE) stage2-start; \
fi; \
cd $(HOST_SUBDIR)/gmp && \
- $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
+ $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" clean
@endif gmp-bootstrap
@@ -13009,7 +13009,7 @@
CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
- $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
+ $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" \
TFLAGS="$(STAGE3_TFLAGS)" \
$(TARGET-stage3-gmp)
@@ -13023,7 +13023,7 @@
$(MAKE) stage3-start; \
fi; \
cd $(HOST_SUBDIR)/gmp && \
- $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
+ $(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM -std=c99" clean
@endif gmp-bootstrap
easyblock = 'ConfigureMake'
name = 'help2man'
version = '1.48.3'
homepage = 'https://www.gnu.org/software/help2man/'
description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands."""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_XZ]
checksums = ['8361ff3c643fbd391064e97e5f54592ca28b880eaffbf566a68e0ad800d1a8ac']
builddependencies = [
# use same binutils version that was used when building GCC toolchain
('binutils', '2.37', '', 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."""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '11.2.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.37', '', SYSTEM)]
# '-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.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = SYSTEM
sources = [SOURCELOWER_TAR_GZ]
source_urls = [GNU_SOURCE]
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.11'
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.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
toolchainopts = {'pic': True}
source_urls = ['https://zlib.net/fossils']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1']
# use same binutils version that was used when building GCC toolchain
builddependencies = [('binutils', '2.37', '', SYSTEM)]
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.11'
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.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = SYSTEM
toolchainopts = {'pic': True}
source_urls = ['https://zlib.net/fossils/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1']
# need to take care of $CFLAGS ourselves with system 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