summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/bootstrap.py10
-rw-r--r--lib/spack/spack/test/conftest.py2
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/spack/spack/bootstrap.py b/lib/spack/spack/bootstrap.py
index efcb8a7e19..e95afd8adc 100644
--- a/lib/spack/spack/bootstrap.py
+++ b/lib/spack/spack/bootstrap.py
@@ -489,6 +489,16 @@ def _bootstrap_config_scopes():
@contextlib.contextmanager
def ensure_bootstrap_configuration():
+ # We may need to compile code from sources, so ensure we have compilers
+ # for the current platform before switching parts.
+ arch = spack.architecture.default_arch()
+ arch = spack.spec.ArchSpec(str(arch)) # The call below expects an ArchSpec object
+ if not spack.compilers.compilers_for_arch(arch):
+ compiler_cmd = spack.main.SpackCommand('compiler')
+ compiler_cmd(
+ 'find', output=os.devnull, error=os.devnull, fail_on_error=False
+ )
+
bootstrap_store_path = store_path()
with spack.environment.deactivate_environment():
with spack.architecture.use_platform(spack.architecture.real_platform()):
diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py
index cd6ce907e7..456624127a 100644
--- a/lib/spack/spack/test/conftest.py
+++ b/lib/spack/spack/test/conftest.py
@@ -585,7 +585,7 @@ def configuration_dir(tmpdir_factory, linux_os):
tmpdir.ensure('user', dir=True)
# Slightly modify config.yaml and compilers.yaml
- solver = os.environ.get('SPACK_TEST_SOLVER', 'original')
+ solver = os.environ.get('SPACK_TEST_SOLVER', 'clingo')
config_yaml = test_config.join('config.yaml')
modules_root = tmpdir_factory.mktemp('share')
tcl_root = modules_root.ensure('modules', dir=True)