-
Notifications
You must be signed in to change notification settings - Fork 773
{compiler}[dummy] GCC 8.1.0 + binutils 2.30 #6296
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
Merged
migueldiascosta
merged 2 commits into
easybuilders:develop
from
boegel:20180506192626_new_pr_GCC810
May 24, 2018
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
28 changes: 28 additions & 0 deletions
28
easybuild/easyconfigs/b/Bison/Bison-3.0.4-GCCcore-8.1.0.eb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| easyblock = 'ConfigureMake' | ||
|
|
||
| name = 'Bison' | ||
| version = '3.0.4' | ||
|
|
||
| homepage = 'http://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': '8.1.0'} | ||
|
|
||
| source_urls = [GNU_SOURCE] | ||
| sources = [SOURCELOWER_TAR_GZ] | ||
| checksums = ['b67fd2daae7a64b5ba862c66c07c1addb9e6b1b05c5f2049392cfd8a2172952e'] | ||
|
|
||
| builddependencies = [ | ||
| ('M4', '1.4.18'), | ||
| # use same binutils version that was used when building GCCcore toolchain | ||
| ('binutils', '2.30', '', True), | ||
| ] | ||
|
|
||
|
|
||
| sanity_check_paths = { | ||
| 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')], | ||
| 'dirs': [], | ||
| } | ||
|
|
||
| moduleclass = 'lang' |
22 changes: 22 additions & 0 deletions
22
easybuild/easyconfigs/b/binutils/binutils-2.30-GCCcore-8.1.0.eb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| name = 'binutils' | ||
| version = '2.30' | ||
|
|
||
| homepage = 'http://directory.fsf.org/project/binutils/' | ||
| description = "binutils: GNU binary utilities" | ||
|
|
||
| toolchain = {'name': 'GCCcore', 'version': '8.1.0'} | ||
|
|
||
| sources = [SOURCE_TAR_GZ] | ||
| source_urls = [GNU_SOURCE] | ||
| checksums = ['8c3850195d1c093d290a716e20ebcaa72eda32abf5e3d8611154b39cff79e9ea'] | ||
|
|
||
| builddependencies = [ | ||
| ('flex', '2.6.4'), | ||
| ('Bison', '3.0.4'), | ||
| # zlib required, but being linked in statically, so not a runtime dep | ||
| ('zlib', '1.2.11'), | ||
| # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils | ||
| ('binutils', version, '', True) | ||
| ] | ||
|
|
||
| moduleclass = 'tools' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| 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': '8.1.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.0.4'), | ||
| ('help2man', '1.47.6'), | ||
| # use same binutils version that was used when building GCC toolchain | ||
| ('binutils', '2.30', '', True), | ||
| ] | ||
|
|
||
| dependencies = [ | ||
| ('M4', '1.4.18'), | ||
| ] | ||
|
|
||
| moduleclass = 'lang' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| easyblock = 'Bundle' | ||
|
|
||
| name = 'GCC' | ||
| version = '8.1.0' | ||
|
|
||
| binutilsver = '2.30' | ||
| versionsuffix = '-%s' % binutilsver | ||
|
|
||
| homepage = 'http://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 = {'name': 'dummy', 'version': ''} | ||
|
|
||
| dependencies = [ | ||
| ('GCCcore', version), | ||
| # binutils built on top of GCCcore, which was built on top of (dummy-built) binutils | ||
| ('binutils', binutilsver, '', ('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' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| easyblock = 'EB_GCC' | ||
|
|
||
| name = 'GCCcore' | ||
| version = '8.1.0' | ||
|
|
||
| homepage = 'http://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 = {'name': 'dummy', 'version': ''} | ||
|
|
||
| mpfr_version = '4.0.1' | ||
|
|
||
| source_urls = [ | ||
| 'http://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror | ||
| 'http://ftpmirror.gnu.org/gnu/gmp', # idem for GMP | ||
| 'http://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR | ||
| 'http://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 | ||
| ] | ||
| sources = [ | ||
| 'gcc-%(version)s.tar.gz', | ||
| 'gmp-6.1.2.tar.bz2', | ||
| 'mpfr-%s.tar.bz2' % mpfr_version, | ||
| 'mpc-1.1.0.tar.gz', | ||
| 'isl-0.19.tar.bz2', | ||
| ] | ||
| patches = [ | ||
| 'GCCcore-6.2.0-fix-find-isl.patch', | ||
| ] | ||
| checksums = [ | ||
| 'af300723841062db6ae24e38e61aaf4fbf3f6e5d9fd3bf60ebbdbf95db4e9f09', # gcc-8.1.0.tar.gz | ||
| '5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2', # gmp-6.1.2.tar.bz2 | ||
| 'a4d97610ba8579d380b384b225187c250ef88cfe1d5e7226b89519374209b86b', # mpfr-4.0.1.tar.bz2 | ||
| '6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e', # mpc-1.1.0.tar.gz | ||
| 'd59726f34f7852a081fbd3defd1ab2136f174110fc2e0c8d10bb122173fa9ed8', # isl-0.19.tar.bz2 | ||
| '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68', # GCCcore-6.2.0-fix-find-isl.patch | ||
| ] | ||
|
|
||
| builddependencies = [ | ||
| ('M4', '1.4.18'), | ||
| ('binutils', '2.30'), | ||
| # a sufficiently recent GCC is required (needs to support -flto), so can't rely on system GCC | ||
| ('GCCcore', '6.4.0'), | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @geimer Thoughts on this? The |
||
| ] | ||
|
|
||
| languages = ['c', 'c++', 'fortran'] | ||
|
|
||
| withisl = True | ||
|
|
||
| moduleclass = 'compiler' | ||
25 changes: 25 additions & 0 deletions
25
easybuild/easyconfigs/h/help2man/help2man-1.47.6-GCCcore-8.1.0.eb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| easyblock = 'ConfigureMake' | ||
|
|
||
| name = 'help2man' | ||
| version = '1.47.6' | ||
|
|
||
| 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': '8.1.0'} | ||
|
|
||
| source_urls = [GNU_SOURCE] | ||
| sources = [SOURCE_TAR_XZ] | ||
| checksums = ['d91b0295b72a638e4a564f643e4e6d1928779131f628c00f356c13bf336de46f'] | ||
|
|
||
| builddependencies = [ | ||
| # use same binutils version that was used when building GCC toolchain | ||
| ('binutils', '2.30', '', True), | ||
| ] | ||
|
|
||
| sanity_check_paths = { | ||
| 'files': ['bin/help2man'], | ||
| 'dirs': [], | ||
| } | ||
|
|
||
| moduleclass = 'tools' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| easyblock = 'ConfigureMake' | ||
|
|
||
| name = 'M4' | ||
| version = '1.4.18' | ||
|
|
||
| homepage = 'http://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': '8.1.0'} | ||
|
|
||
| source_urls = [GNU_SOURCE] | ||
| sources = [SOURCELOWER_TAR_GZ] | ||
| checksums = ['ab2633921a5cd38e48797bf5521ad259bdc4b979078034a3b790d7fec5493fab'] | ||
|
|
||
| # use same binutils version that was used when building GCC toolchain | ||
| builddependencies = [('binutils', '2.30', '', 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' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| easyblock = 'ConfigureMake' | ||
|
|
||
| name = 'zlib' | ||
| version = '1.2.11' | ||
|
|
||
| homepage = 'http://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': '8.1.0'} | ||
| toolchainopts = {'pic': True} | ||
|
|
||
| source_urls = ['http://zlib.net/fossils'] | ||
| sources = [SOURCELOWER_TAR_GZ] | ||
| checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1'] | ||
|
|
||
| # use same binutils version that was used when building GCC toolchain | ||
| builddependencies = [('binutils', '2.30', '', True)] | ||
|
|
||
| sanity_check_paths = { | ||
| 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], | ||
| 'dirs': [], | ||
| } | ||
|
|
||
| moduleclass = 'lib' |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@boegel Is it worth adding a line in the description about the distinction between
GCCandGCCcore, to make the distinction clearer? It's a question that keeps coming up...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, not sure if that'll make much difference...
I'm actually hoping we can get rid of the
GCCvsGCCcoresituation, we may have another way of dealing with this now, for example by usingBundle&componentsto perform aGCCinstallation that also includesbinutils, but we need to check how this will impact sites using HMNS.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@boegel We have HMNS. What needs testing/checking?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whether we can use
GCCas a subtoolchain for bothfossandintel(rather thanGCCcore).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This won't work, the reason
GCCcoreexists is because it is not classed as a compiler in the hierarchy (i.e., it is not part of thecompilerfamily), which allows it to be loaded at the same time as another compiler. It is there to provide a base for all the other compilers.GCC is in the
familyso can't be loaded at the same time as another compiler. If we did not include it in the family we would not get the desired swapping behaviour. At JSC to avoid confusion we hideGCCcore.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Folling @ocaisa 's input I did a simple test on our machine
load GCC/6.4.0-2.28
load intel/2018a
I don't see any unloading. Checking on environment variables, the ones related to GCC, eg. EBVERSIONGCC=6.4.0 is still there after loading intel (it is not there when I only load the intel). A "which gcc" is still pointing at the correct version, so is "mpicc -v". "mpiicc -v" points to the right intel compiler.
So if I were to go along and build software against this outside EasyBuild this should just work. Most likely I am still to ignorant on the internal workings of EB. Could someone clue me where the "explosion" comes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By the way, should we move this discussion out of the GCC 8.1.0 pull request? I think it belongs somewhere else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed with @jhein32, I've opened an issue for this: #6366
Let's get this one merged @migueldiascosta?