Skip to content

Commit b1d9ad8

Browse files
adding easyconfigs: binutils-2.47.eb, binutils-2.47-GCCcore-16.2.0.eb, Bison-3.8.2-GCCcore-16.2.0.eb, flex-2.6.4-GCCcore-16.2.0.eb, GCC-16.2.0.eb, GCCcore-16.2.0.eb, help2man-1.49.3-GCCcore-16.2.0.eb, M4-1.4.21-GCCcore-16.2.0.eb, zlib-2.3.3-GCCcore-16.2.0.eb
1 parent 597a128 commit b1d9ad8

9 files changed

Lines changed: 289 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
easyblock = 'ConfigureMake'
2+
3+
name = 'Bison'
4+
version = '3.8.2'
5+
6+
homepage = 'https://www.gnu.org/software/bison'
7+
description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar
8+
into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables."""
9+
10+
toolchain = {'name': 'GCCcore', 'version': '16.2.0'}
11+
12+
source_urls = [GNU_SOURCE]
13+
sources = [SOURCELOWER_TAR_GZ]
14+
checksums = ['06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb']
15+
16+
builddependencies = [
17+
('M4', '1.4.21'),
18+
# use same binutils version that was used when building GCCcore toolchain
19+
('binutils', '2.47', '', SYSTEM),
20+
]
21+
22+
23+
sanity_check_paths = {
24+
'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')],
25+
'dirs': [],
26+
}
27+
28+
moduleclass = 'lang'
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name = 'binutils'
2+
version = '2.47'
3+
4+
homepage = 'https://directory.fsf.org/project/binutils/'
5+
description = "binutils: GNU binary utilities"
6+
7+
toolchain = {'name': 'GCCcore', 'version': '16.2.0'}
8+
9+
source_urls = [GNU_SOURCE]
10+
sources = [SOURCE_TAR_GZ]
11+
checksums = ['15f5abd0db9cf8ea116f516a9ce12bc1cefef491ef9e50942868093d8f92a6f3']
12+
13+
builddependencies = [
14+
('flex', '2.6.4'),
15+
('Bison', '3.8.2'),
16+
# use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils
17+
('binutils', version, '', SYSTEM)
18+
]
19+
20+
dependencies = [
21+
# zlib is a runtime dep to avoid that it gets embedded in libbfd.so,
22+
# see https://github.com/easybuilders/easybuild-easyblocks/issues/1350
23+
('zlib', '2.3.3'),
24+
]
25+
26+
# avoid build failure when makeinfo command is not available
27+
# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
28+
buildopts = 'MAKEINFO=true'
29+
installopts = buildopts
30+
31+
moduleclass = 'tools'
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name = 'binutils'
2+
version = '2.47'
3+
4+
homepage = 'https://directory.fsf.org/project/binutils/'
5+
6+
description = "binutils: GNU binary utilities"
7+
8+
toolchain = SYSTEM
9+
10+
source_urls = [GNU_SOURCE]
11+
sources = [SOURCE_TAR_GZ]
12+
checksums = ['15f5abd0db9cf8ea116f516a9ce12bc1cefef491ef9e50942868093d8f92a6f3']
13+
14+
builddependencies = [
15+
('flex', '2.6.4'),
16+
('Bison', '3.8.2'),
17+
# zlib required, but being linked in statically, so not a runtime dep
18+
('zlib', '1.3.2'),
19+
]
20+
21+
# avoid build failure when makeinfo command is not available
22+
# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
23+
buildopts = 'MAKEINFO=true'
24+
installopts = buildopts
25+
26+
moduleclass = 'tools'
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name = 'flex'
2+
version = '2.6.4'
3+
4+
homepage = 'https://github.com/westes/flex'
5+
6+
description = """
7+
Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner,
8+
sometimes called a tokenizer, is a program which recognizes lexical patterns
9+
in text.
10+
"""
11+
12+
toolchain = {'name': 'GCCcore', 'version': '16.2.0'}
13+
toolchainopts = {'pic': True}
14+
15+
source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/']
16+
sources = [SOURCELOWER_TAR_GZ]
17+
checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
18+
19+
builddependencies = [
20+
('Bison', '3.8.2'),
21+
('help2man', '1.49.3'),
22+
# use same binutils version that was used when building GCC toolchain
23+
('binutils', '2.47', '', SYSTEM),
24+
]
25+
26+
dependencies = [
27+
('M4', '1.4.21'),
28+
]
29+
30+
# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct
31+
# header, see https://github.com/westes/flex/issues/241
32+
preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && '
33+
34+
moduleclass = 'lang'
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
easyblock = 'Bundle'
2+
3+
name = 'GCC'
4+
version = '16.2.0'
5+
6+
homepage = 'https://gcc.gnu.org/'
7+
description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
8+
as well as libraries for these languages (libstdc++, libgcj,...)."""
9+
10+
toolchain = SYSTEM
11+
12+
dependencies = [
13+
('GCCcore', version),
14+
# binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
15+
('binutils', '2.47', '', ('GCCcore', version)),
16+
]
17+
18+
altroot = 'GCCcore'
19+
altversion = 'GCCcore'
20+
21+
# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
22+
moduleclass = 'compiler'
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
easyblock = 'EB_GCC'
2+
3+
name = 'GCCcore'
4+
version = '16.2.0'
5+
6+
homepage = 'https://gcc.gnu.org/'
7+
description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
8+
as well as libraries for these languages (libstdc++, libgcj,...)."""
9+
10+
toolchain = SYSTEM
11+
12+
source_urls = [
13+
'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror
14+
'https://sourceware.org/pub/gcc/releases/gcc-%(version)s', # fallback URL for GCC
15+
'https://ftpmirror.gnu.org/gnu/gmp', # idem for GMP
16+
'https://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR
17+
'https://ftpmirror.gnu.org/gnu/mpc', # idem for MPC
18+
'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies
19+
'https://gcc.gnu.org/pub/gcc/infrastructure/', # HTTPS mirror for GCC dependencies
20+
'https://libisl.sourceforge.io/', # fallback URL for isl
21+
'https://sourceware.org/pub/newlib/', # for newlib
22+
'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
23+
]
24+
sources = [
25+
'gcc-%(version)s.tar.gz',
26+
'gmp-6.3.0.tar.bz2',
27+
'mpfr-4.2.2.tar.bz2',
28+
'mpc-1.4.1.tar.xz',
29+
'isl-0.28.tar.bz2',
30+
'newlib-4.6.0.20260123.tar.gz',
31+
{'download_filename': '212da2e.tar.gz', 'filename': 'nvptx-tools-20260402.tar.gz'},
32+
]
33+
patches = [
34+
'GCCcore-6.2.0-fix-find-isl.patch',
35+
'GCCcore-9.3.0_gmp-c99.patch',
36+
]
37+
checksums = [
38+
{'gcc-16.2.0.tar.gz': '071d00a097579e5ef7ce97fc4a9e58e73fd3503c0a013c765c970370a5a53b9b'},
39+
{'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
40+
{'mpfr-4.2.2.tar.bz2': '9ad62c7dc910303cd384ff8f1f4767a655124980bb6d8650fe62c815a231bb7b'},
41+
{'mpc-1.4.1.tar.xz': '91204cd32f164bd3b7c992d4a6a8ce6519511aadab30f78b6982d0bf8d73e931'},
42+
{'isl-0.28.tar.bz2': '01a9fc4b39c457f6fe7dfe063dbb046aa484812f1ab8c3763322bcbbd6414e5f'},
43+
{'newlib-4.6.0.20260123.tar.gz': '6ff27e3bf022666f43f7802255be680eeff722ac181b1725d21e2e8318604ee3'},
44+
{'nvptx-tools-20260402.tar.gz': '5202c52a364afc0b310a2fff71082d37351590f6339f1a42eacb8a974df7a200'},
45+
{'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
46+
{'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
47+
]
48+
49+
builddependencies = [
50+
('M4', '1.4.21'),
51+
('binutils', '2.47'),
52+
]
53+
54+
languages = ['c', 'c++', 'fortran']
55+
56+
withisl = True
57+
withnvptx = True
58+
59+
# Perl is only required when building with NVPTX support
60+
if withnvptx:
61+
osdependencies = ['perl']
62+
63+
moduleclass = 'compiler'
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
easyblock = 'ConfigureMake'
2+
3+
name = 'help2man'
4+
version = '1.49.3'
5+
6+
homepage = 'https://www.gnu.org/software/help2man/'
7+
description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands."""
8+
9+
toolchain = {'name': 'GCCcore', 'version': '16.2.0'}
10+
11+
source_urls = [GNU_SOURCE]
12+
sources = [SOURCE_TAR_XZ]
13+
checksums = ['4d7e4fdef2eca6afe07a2682151cea78781e0a4e8f9622142d9f70c083a2fd4f']
14+
15+
builddependencies = [
16+
# use same binutils version that was used when building GCC toolchain
17+
('binutils', '2.47', '', SYSTEM),
18+
]
19+
20+
sanity_check_paths = {
21+
'files': ['bin/help2man'],
22+
'dirs': [],
23+
}
24+
25+
sanity_check_commands = ["help2man --help"]
26+
27+
moduleclass = 'tools'
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
easyblock = 'ConfigureMake'
2+
3+
name = 'M4'
4+
version = '1.4.21'
5+
6+
homepage = 'https://www.gnu.org/software/m4/m4.html'
7+
description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible
8+
although it has some extensions (for example, handling more than 9 positional parameters to macros).
9+
GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc."""
10+
11+
toolchain = {'name': 'GCCcore', 'version': '16.2.0'}
12+
13+
source_urls = [GNU_SOURCE]
14+
sources = [SOURCELOWER_TAR_GZ]
15+
checksums = ['38ae59f7a30bf9c108193cc5c25fbb06014f21e230c7ede2eff614f7b7c37ed8']
16+
17+
# use same binutils version that was used when building GCC toolchain
18+
builddependencies = [('binutils', '2.47', '', SYSTEM)]
19+
20+
# '-fgnu89-inline' is required to avoid linking errors with older glibc's,
21+
# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529
22+
configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline "
23+
24+
sanity_check_paths = {
25+
'files': ['bin/m4'],
26+
'dirs': [],
27+
}
28+
29+
sanity_check_commands = ["m4 --help"]
30+
31+
moduleclass = 'devel'
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
easyblock = 'ConfigureMake'
2+
3+
name = 'zlib'
4+
version = '2.3.3'
5+
6+
homepage = 'https://github.com/zlib-ng/zlib-ng'
7+
description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is,
8+
not covered by any patents -- lossless data-compression library for use on virtually any
9+
computer hardware and operating system."""
10+
11+
toolchain = {'name': 'GCCcore', 'version': '16.2.0'}
12+
13+
source_urls = ['https://github.com/zlib-ng/zlib-ng/archive']
14+
sources = [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
15+
checksums = ['f9c65aa9c852eb8255b636fd9f07ce1c406f061ec19a2e7d508b318ca0c907d1']
16+
17+
# use same binutils version that was used when building GCC toolchain
18+
builddependencies = [('binutils', '2.47', '', SYSTEM)]
19+
20+
configopts = '--zlib-compat'
21+
22+
sanity_check_paths = {
23+
'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT],
24+
'dirs': [],
25+
}
26+
27+
moduleclass = 'lib'

0 commit comments

Comments
 (0)