diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..427ebbbe2b7 --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..94b762d7803 --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..d91f13aa5d0 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb b/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb new file mode 100644 index 00000000000..7126db6c52d --- /dev/null +++ b/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb new file mode 100644 index 00000000000..438a848145f --- /dev/null +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..2161ee0b1af --- /dev/null +++ b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..c5c3ad83f3a --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb @@ -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' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.3.1-GCCcore-14.2.0.eb b/easybuild/easyconfigs/z/zlib/zlib-1.3.1-GCCcore-14.2.0.eb new file mode 100644 index 00000000000..187f8da34f7 --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.3.1-GCCcore-14.2.0.eb @@ -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'