diff --git a/Golden_Repo/b/Bison/Bison-3.8.2-GCCcore-11.3.0.eb b/Golden_Repo/b/Bison/Bison-3.8.2-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..4ec9c1c877b0664c276a3d1f2b1a9dff329126aa --- /dev/null +++ b/Golden_Repo/b/Bison/Bison-3.8.2-GCCcore-11.3.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': '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' diff --git a/Golden_Repo/b/Bison/Bison-3.8.2.eb b/Golden_Repo/b/Bison/Bison-3.8.2.eb new file mode 100644 index 0000000000000000000000000000000000000000..22f927345d6bd179a8cbd93245badc8503824869 --- /dev/null +++ b/Golden_Repo/b/Bison/Bison-3.8.2.eb @@ -0,0 +1,29 @@ +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' diff --git a/Golden_Repo/b/binutils/binutils-2.38-GCCcore-11.3.0.eb b/Golden_Repo/b/binutils/binutils-2.38-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..da7b3d38de585373bde8cf54305f22fbef71efeb --- /dev/null +++ b/Golden_Repo/b/binutils/binutils-2.38-GCCcore-11.3.0.eb @@ -0,0 +1,31 @@ +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' diff --git a/Golden_Repo/b/binutils/binutils-2.38.eb b/Golden_Repo/b/binutils/binutils-2.38.eb new file mode 100644 index 0000000000000000000000000000000000000000..19ac8f19011c17e70e8f2fb70fcdffa5f29aa3d1 --- /dev/null +++ b/Golden_Repo/b/binutils/binutils-2.38.eb @@ -0,0 +1,26 @@ +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' diff --git a/Golden_Repo/f/flex/flex-2.6.4-GCCcore-11.3.0.eb b/Golden_Repo/f/flex/flex-2.6.4-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..f90ad55fff82347b99fedd7f7306eec6dc400bc2 --- /dev/null +++ b/Golden_Repo/f/flex/flex-2.6.4-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +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' diff --git a/Golden_Repo/f/flex/flex-2.6.4.eb b/Golden_Repo/f/flex/flex-2.6.4.eb new file mode 100644 index 0000000000000000000000000000000000000000..8bcd68371988bdd97df74c17e076370676f053d2 --- /dev/null +++ b/Golden_Repo/f/flex/flex-2.6.4.eb @@ -0,0 +1,34 @@ +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' diff --git a/Golden_Repo/g/GCC/GCC-11.3.0.eb b/Golden_Repo/g/GCC/GCC-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..ee32dbadf52c3d269715ea40beaa300d7bd40c72 --- /dev/null +++ b/Golden_Repo/g/GCC/GCC-11.3.0.eb @@ -0,0 +1,22 @@ +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' diff --git a/Golden_Repo/g/GCCcore/GCCcore-11.3.0.eb b/Golden_Repo/g/GCCcore/GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..37a26435e717fa6a1d0c972a60a744832ca95375 --- /dev/null +++ b/Golden_Repo/g/GCCcore/GCCcore-11.3.0.eb @@ -0,0 +1,76 @@ +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' diff --git a/Golden_Repo/h/help2man/help2man-1.49.2-GCCcore-11.3.0.eb b/Golden_Repo/h/help2man/help2man-1.49.2-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..26957da215e2fdcccb7c8b9e5cd9d82247cff786 --- /dev/null +++ b/Golden_Repo/h/help2man/help2man-1.49.2-GCCcore-11.3.0.eb @@ -0,0 +1,25 @@ +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' diff --git a/Golden_Repo/m/M4/M4-1.4.19-GCCcore-11.3.0.eb b/Golden_Repo/m/M4/M4-1.4.19-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..dfdd4df8d108981455f3c27392a2c0e273ba7f9e --- /dev/null +++ b/Golden_Repo/m/M4/M4-1.4.19-GCCcore-11.3.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': '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' diff --git a/Golden_Repo/m/M4/M4-1.4.19.eb b/Golden_Repo/m/M4/M4-1.4.19.eb new file mode 100644 index 0000000000000000000000000000000000000000..33d745de5e04f8169ee785671ce3d93e87d802b7 --- /dev/null +++ b/Golden_Repo/m/M4/M4-1.4.19.eb @@ -0,0 +1,31 @@ +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' diff --git a/Golden_Repo/z/zlib/zlib-1.2.12-GCCcore-11.3.0.eb b/Golden_Repo/z/zlib/zlib-1.2.12-GCCcore-11.3.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..0e6e2dc4549aceceacef823977ab33b4483ec8fa --- /dev/null +++ b/Golden_Repo/z/zlib/zlib-1.2.12-GCCcore-11.3.0.eb @@ -0,0 +1,31 @@ +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' diff --git a/Golden_Repo/z/zlib/zlib-1.2.12.eb b/Golden_Repo/z/zlib/zlib-1.2.12.eb new file mode 100644 index 0000000000000000000000000000000000000000..5f9b9205d4e4e1ec0de200896552dc956b8d9d0d --- /dev/null +++ b/Golden_Repo/z/zlib/zlib-1.2.12.eb @@ -0,0 +1,37 @@ +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'