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

Initial version of GCCcore description #408

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
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 docs/Common-toolchains.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,34 @@ The ``intel`` common compiler toolchain consists of the Intel compilers and libr
valid licenses must be available to install and use it.


.. _common_toolchains_gcccore:

``GCCcore`` and ``GCC`` common toolchains
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

There are two lower-level toolchains including the ``GCC`` compiler.

The ``GCC`` toolchain consists of ``GCCcore`` + binutils.

``GCCcore`` was introduced mainly for sites that use a hierarchical module
naming scheme, where modules are organised in a tree-like fashion, with
different "levels". On the lowest level you mainly find compilers which are
installed with the ``dummy`` toolchain (i.e. which were built with the system
compiler). One level up, you have tools that are built with a compiler-only
toolchain (and higher levels are built with a compiler+MPI toolchain, or a
full toolchain, i.e. compiler+MPI+BLAS/LAPACK/FFTW).

For more information on a setup like this, see http://easybuilders.github.io/easybuild/files/hust14_paper.pdf .

Easyconfigs that use the ``GCCcore`` toolchain result in modules on the
compiler-only level of a hierarchy, which means those modules can be used to
resolve dependencies for easyconfigs that use several toolchains, i.e. both the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps something like this instead:
"resolve dependencies for easyconfigs that use either of the"
or something similar. The current text is a bit odd. A single easyconfig can only use one toolchain, but the above suggests that it can use multiple toolchains.

common ``foss`` and ``intel`` toolchains (which both have ``GCCcore`` as a
'base'), among others. Modules that were installed with the ``GCC`` toolchain
are not compatible with the ``intel`` toolchain because ``GCC`` is not a
subtoolchain of ``intel`` (while ``GCCcore`` is).


.. _common_toolchains_versioning_scheme:

Versioning scheme for common toolchains
Expand Down