summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spack/spack/ci.py18
-rw-r--r--lib/spack/spack/test/cmd/ci.py1
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py
index 6c7a54a26a..c9054052e6 100644
--- a/lib/spack/spack/ci.py
+++ b/lib/spack/spack/ci.py
@@ -691,12 +691,19 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
# bootstrap spec lists, then we will add more dependencies to
# the job (that compiler and maybe it's dependencies as well).
if is_main_phase(phase_name):
+ spec_arch_family = (release_spec.architecture
+ .target
+ .microarchitecture
+ .family)
compiler_pkg_spec = compilers.pkg_spec_for_compiler(
release_spec.compiler)
for bs in bootstrap_specs:
bs_arch = bs['spec'].architecture
+ bs_arch_family = (bs_arch.target
+ .microarchitecture
+ .family)
if (bs['spec'].satisfies(compiler_pkg_spec) and
- bs_arch == release_spec.architecture):
+ bs_arch_family == spec_arch_family):
# We found the bootstrap compiler this release spec
# should be built with, so for DAG scheduling
# purposes, we will at least add the compiler spec
@@ -716,6 +723,15 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
str(bs_arch),
build_group,
enable_artifacts_buildcache))
+ else:
+ debug_msg = ''.join([
+ 'Considered compiler {0} for spec ',
+ '{1}, but rejected it either because it was ',
+ 'not the compiler required by the spec, or ',
+ 'because the target arch families of the ',
+ 'spec and the compiler did not match'
+ ]).format(bs['spec'], release_spec)
+ tty.debug(debug_msg)
if enable_cdash_reporting:
cdash_build_name = get_cdash_build_name(
diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py
index 6de4b764ca..4e19cf384d 100644
--- a/lib/spack/spack/test/cmd/ci.py
+++ b/lib/spack/spack/test/cmd/ci.py
@@ -195,6 +195,7 @@ spack:
definitions:
- bootstrap:
- gcc@3.0
+ - gcc@2.0
specs:
- dyninst%gcc@3.0
mirrors: