Fixes#5778.
Spack uses 'gcc -dumpversion' to determine the full version of gcc.
'gcc -dumpversion' no longer gives the full version on gcc 7.2.0.
'gcc -dumpfullversion' is required instead. This PR detects when
'gcc -dumpversion' gives a truncated version of '7' and in that
case retrieves the full version with 'gcc -dumpfullversion'
- hdf5's +hl variant is required because the build uses libhdf5_hl.
- sz is only compatible up to version 1.4.10 because the library has
been renamed to libSZ in 1.4.11.
The name of the debug log written by the cc compiler wrapper was given
by Spec.short_spec, which includes the architecture. Somewhere along
the line Spec.format started adding spaces around the architecture
property so the filename started including spaces; the cc wrapper
script appears to ignore this, so files like spack-cc-bzip2-....in.log
(which record the wrapped compiler invocations) were not being
generated. This uses a different format string from the spec to
generate the wrapper log file names (which does not include spaces).
* when a user-provided spec refers to an already-installed package, packages with patches applied were causing validation errors based on the recorded variants in the package's class
* avoid checks on all reserved variants (not just 'patches')
* Fixed the datatype flag in the LBANN package.
Fixed where the datatype flag should be set.
* Added variant to OpenCV to disable building DNN support
* Fixed a bug in how the elemental package tries to find its Fortran
library. The current method does not work with Intel compilers.
* Added necessary paths for cuDNN and CUB.
* Addressed flake8 issues in Elemental package.
* Fixed several flake8 errors. Added variant to build with or without
support for arbitrary-precision floating point arithmetic.
* Added the proper CMake flag when MPFR support is disabled.
* Fixed a bug in how the cudnn path was being set when there was no
cudnn requested. Also requested that OpenCV is built without eigen
support.
* Fixed another bug where a dependency may not be there and thus should
not be always checked.