Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{compiler} GCC v14.2.0 #21114

Merged
merged 1 commit into from
Aug 3, 2024
Merged
Show file tree
Hide file tree
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
28 changes: 28 additions & 0 deletions easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
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': '14.2.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.42', '', SYSTEM),
]


sanity_check_paths = {
'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')],
'dirs': [],
}

moduleclass = 'lang'
31 changes: 31 additions & 0 deletions easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name = 'binutils'
version = '2.42'

homepage = 'https://directory.fsf.org/project/binutils/'
description = "binutils: GNU binary utilities"

toolchain = {'name': 'GCCcore', 'version': '14.2.0'}

source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_GZ]
checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']

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, '', 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.3.1'),
]

# 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'
34 changes: 34 additions & 0 deletions easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name = 'flex'
version = '2.6.4'

homepage = 'https://github.com/westes/flex'

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': '14.2.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.3'),
# use same binutils version that was used when building GCC toolchain
('binutils', '2.42', '', SYSTEM),
]

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'
22 changes: 22 additions & 0 deletions easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
easyblock = 'Bundle'

name = 'GCC'
version = '14.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,...)."""

toolchain = SYSTEM

dependencies = [
('GCCcore', version),
# binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
('binutils', '2.42', '', ('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'
63 changes: 63 additions & 0 deletions easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
easyblock = 'EB_GCC'

name = 'GCCcore'
version = '14.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,...)."""

toolchain = SYSTEM

source_urls = [
'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror
'https://sourceware.org/pub/gcc/releases/gcc-%(version)s', # fallback URL for GCC
'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://gcc.gnu.org/pub/gcc/infrastructure/', # HTTPS mirror for GCC dependencies
'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.3.0.tar.bz2',
'mpfr-4.2.1.tar.bz2',
'mpc-1.3.1.tar.gz',
'isl-0.26.tar.bz2',
'newlib-4.4.0.20231231.tar.gz',
{'download_filename': '3136cf9.tar.gz', 'filename': 'nvptx-tools-20240801.tar.gz'},
]
patches = [
'GCCcore-6.2.0-fix-find-isl.patch',
'GCCcore-9.3.0_gmp-c99.patch',
]
checksums = [
{'gcc-14.2.0.tar.gz': '7d376d445f93126dc545e2c0086d0f647c3094aae081cdb78f42ce2bc25e7293'},
{'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
{'mpfr-4.2.1.tar.bz2': 'b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'},
{'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'},
{'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'},
{'newlib-4.4.0.20231231.tar.gz': '0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13'},
{'nvptx-tools-20240801.tar.gz': 'a1106bf11b66d12e67194d8aa37196bb96996b614f44b3d3bc1b5854eefec03c'},
{'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
{'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
]

builddependencies = [
('M4', '1.4.19'),
('binutils', '2.42'),
]

languages = ['c', 'c++', 'fortran']

withisl = True
withnvptx = True

# Perl is only required when building with NVPTX support
if withnvptx:
osdependencies = ['perl']

moduleclass = 'compiler'
25 changes: 25 additions & 0 deletions easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
easyblock = 'ConfigureMake'

name = 'help2man'
version = '1.49.3'

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': '14.2.0'}

source_urls = [GNU_SOURCE]
sources = [SOURCE_TAR_XZ]
checksums = ['4d7e4fdef2eca6afe07a2682151cea78781e0a4e8f9622142d9f70c083a2fd4f']

builddependencies = [
# use same binutils version that was used when building GCC toolchain
('binutils', '2.42', '', SYSTEM),
]

sanity_check_paths = {
'files': ['bin/help2man'],
'dirs': [],
}

moduleclass = 'tools'
29 changes: 29 additions & 0 deletions easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
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': '14.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.42', '', 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'
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/z/zlib/zlib-1.3.1-GCCcore-14.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
easyblock = 'ConfigureMake'

name = 'zlib'
version = '1.3.1'

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': '14.2.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 = ['9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23']

# use same binutils version that was used when building GCC toolchain
builddependencies = [('binutils', '2.42', '', SYSTEM)]

sanity_check_paths = {
'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'lib'
Loading