summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTom Scogland <scogland1@llnl.gov>2016-01-03 17:22:13 -0800
committerTom Scogland <scogland1@llnl.gov>2016-01-03 17:22:13 -0800
commit884f317d50344101246f2892af492663a45be261 (patch)
tree59f6103e8e4faaed06e192372c7067f7fae61ccf /var
parent48f19b5fdec848339314c456e69fbd761fd277dd (diff)
downloadspack-884f317d50344101246f2892af492663a45be261.tar.gz
spack-884f317d50344101246f2892af492663a45be261.tar.bz2
spack-884f317d50344101246f2892af492663a45be261.tar.xz
spack-884f317d50344101246f2892af492663a45be261.zip
tweak gold support, added to gcc
The gold linker support and gold plugin variants now use the same name. Trying to apply use-flag-style discipline here despite the fact gold has other implications for clang, this way globally enabling gold will have a more consistent effect if that becomes possible. The gold support in gcc could use more testing to ensure it works consistently, but as long as a binutils including gold is used the gcc configure tends to pick it up, and it seems to work with 5.3.0 at least.
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/gcc/package.py5
-rw-r--r--var/spack/packages/llvm/package.py6
2 files changed, 7 insertions, 4 deletions
diff --git a/var/spack/packages/gcc/package.py b/var/spack/packages/gcc/package.py
index 7ec160d595..61b16f3fd8 100644
--- a/var/spack/packages/gcc/package.py
+++ b/var/spack/packages/gcc/package.py
@@ -48,11 +48,14 @@ class Gcc(Package):
version('4.7.4', '4c696da46297de6ae77a82797d2abe28')
version('4.6.4', 'b407a3d1480c11667f293bfb1f17d1a4')
version('4.5.4', '27e459c2566b8209ab064570e1b378f7')
+
+ variant('gold', default=True, description="Build the gold linker plugin for ld-based LTO")
depends_on("mpfr")
depends_on("gmp")
depends_on("mpc") # when @4.5:
- depends_on("binutils~libiberty")
+ depends_on("binutils~libiberty", when='~gold')
+ depends_on("binutils~libiberty+gold", when='+gold')
# Save these until we can do optional deps.
depends_on("isl", when=DEPENDS_ON_ISL_PREDICATE)
diff --git a/var/spack/packages/llvm/package.py b/var/spack/packages/llvm/package.py
index 19d82d81b7..10e899437f 100644
--- a/var/spack/packages/llvm/package.py
+++ b/var/spack/packages/llvm/package.py
@@ -45,7 +45,7 @@ class Llvm(Package):
variant('polly', default=True, description="Build the LLVM polyhedral optimization plugin, only builds for 3.7.0+")
variant('libcxx', default=True, description="Build the LLVM C++ standard library")
variant('compiler-rt', default=True, description="Build the LLVM compiler runtime, including sanitizers")
- variant('lto', default=True, description="Add support for LTO with the gold linker plugin")
+ variant('gold', default=True, description="Add support for LTO with the gold linker plugin")
# Universal dependency
@@ -57,7 +57,7 @@ class Llvm(Package):
depends_on('libedit', when='+lldb')
# gold support
- depends_on('binutils+gold', when='+lto')
+ depends_on('binutils+gold', when='+gold')
# polly plugin
depends_on('gmp', when='+polly')
@@ -180,7 +180,7 @@ class Llvm(Package):
'-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp',
'-DPYTHON_EXECUTABLE:PATH=%s/bin/python' % spec['python'].prefix ])
- if '+lto' in spec:
+ if '+gold' in spec:
cmake_args.append('-DLLVM_BINUTILS_INCDIR=' + os.path.join( spec['binutils'].prefix, 'include'))
if '+polly' in spec:
cmake_args.append('-DLINK_POLLY_INTO_TOOLS:Bool=ON')