summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Davydov <davydden@gmail.com>2016-11-03 16:06:33 +0100
committerTodd Gamblin <tgamblin@llnl.gov>2016-11-03 08:06:33 -0700
commit1eeef97c784f0f79fcbc51364a51af48d8e64e1c (patch)
tree9017a09d3074205fabceee81507785363f64ea3e
parent36a4ca8b113056b20435cd38b00551c1c9275def (diff)
downloadspack-1eeef97c784f0f79fcbc51364a51af48d8e64e1c.tar.gz
spack-1eeef97c784f0f79fcbc51364a51af48d8e64e1c.tar.bz2
spack-1eeef97c784f0f79fcbc51364a51af48d8e64e1c.tar.xz
spack-1eeef97c784f0f79fcbc51364a51af48d8e64e1c.zip
remove obsolete instructions on hacking clang+gfortran (#2217)
* remove obsolete instructions on hacking clang+gfortran * add detailed instructions on how to setup Clang+gfortran on macOS
-rw-r--r--lib/spack/docs/getting_started.rst67
1 files changed, 15 insertions, 52 deletions
diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst
index 4bc7629a3a..34cbf453e1 100644
--- a/lib/spack/docs/getting_started.rst
+++ b/lib/spack/docs/getting_started.rst
@@ -414,7 +414,17 @@ provides no Fortran compilers. The user is therefore forced to use a
mixed toolchain: XCode-provided Clang for C/C++ and GNU ``gfortran`` for
Fortran.
-In the simplest case, you can just edit ``compilers.yaml``:
+#. You need to make sure that command-line tools are installed. To that
+ end run ``$ xcode-select --install``.
+
+#. Run ``$ spack compiler find`` to locate Clang.
+
+#. There are different ways to get ``gfortran`` on macOS. For example, you can
+ install GCC with Spack (``$ spack install gcc``) or with Homebrew
+ (``$ brew install gcc``).
+
+#. The only thing left to do is to edit ``~/.spack/compilers.yaml`` to provide
+ the path to ``gfortran``:
.. code-block:: yaml
@@ -426,57 +436,10 @@ In the simplest case, you can just edit ``compilers.yaml``:
f77: /path/to/bin/gfortran
fc: /path/to/bin/gfortran
-.. note::
-
- If you are building packages that are sensitive to the compiler's
- name, you may also need to slightly modify a few more files so that
- Spack uses compiler names the build system will recognize.
-
- Following are instructions on how to hack together
- ``clang`` and ``gfortran`` on Macintosh OS X. A similar approach
- should work for other mixed toolchain needs.
-
- Better support for mixed compiler toolchains is planned in forthcoming
- Spack versions.
-
- #. Create a symlink inside ``clang`` environment:
-
- .. code-block:: console
-
- $ cd $SPACK_ROOT/lib/spack/env/clang
- $ ln -s ../cc gfortran
-
-
- #. Patch ``clang`` compiler file:
-
- .. code-block:: diff
-
- $ diff --git a/lib/spack/spack/compilers/clang.py b/lib/spack/spack/compilers/clang.py
- index e406d86..cf8fd01 100644
- --- a/lib/spack/spack/compilers/clang.py
- +++ b/lib/spack/spack/compilers/clang.py
- @@ -35,17 +35,17 @@ class Clang(Compiler):
- cxx_names = ['clang++']
-
- # Subclasses use possible names of Fortran 77 compiler
- - f77_names = []
- + f77_names = ['gfortran']
-
- # Subclasses use possible names of Fortran 90 compiler
- - fc_names = []
- + fc_names = ['gfortran']
-
- # Named wrapper links within spack.build_env_path
- link_paths = { 'cc' : 'clang/clang',
- 'cxx' : 'clang/clang++',
- # Use default wrappers for fortran, in case provided in compilers.yaml
- - 'f77' : 'f77',
- - 'fc' : 'f90' }
- + 'f77' : 'clang/gfortran',
- + 'fc' : 'clang/gfortran' }
-
- @classmethod
- def default_version(self, comp):
+ If you used Spack to install GCC, you can get the installation prefix by
+ ``$ spack location -i gcc`` (this will only work if you have a single version
+ of GCC installed). Whereas for Homebrew, GCC is installed in
+ ``/usr/local/Cellar/gcc/x.y.z``.
^^^^^^^^^^^^^^^^^^^^^
Compiler Verification