Hi all,
to the best of my knowledge, Spack does not allow to build dependencies
with a compiler that can not produce optimized code for the respective
micro-architecture if target is specified. If specifying an older target
for the dependency, everything up to the root spec is built for this
micro-architecture (and hence not fully optimized).
While being
absolutely reasonable in most scenarios, there might be others that
would benefit from the opportunity to relax this policy. Envision e.g.
the following scenarios:
1) Profiling tool depending on PAPI:
PAPI should not be critical w.r.t. micro-architecture optimization. It's
hence sufficient to build it with the GCC provided by the OS and link this to the different specs built for different compiler+MPI
combinations. This would avoid building PAPI for every spec again and
again.
2) Custom build for a user who is fine with satisfying a
dependency by a rather old (and un-optimized!) version provided by the
OS as he/she knows that the respective dependency does not contain any
hotspot routines.
Given such a scenario, is there an option to
relax the policy described above, i.e. to satisfy a dependency by a spec
that is optimized for an older/generic micro-architecture?
Best,
Björn