Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Requests hdf5+hl when using xl toolchains Needed to resolve concretization conflict. - Updates source hash for mpfr v4.0.2 and adds missing autoconf macros. Additional autoconf macros are needed for v4.0.2 which are provided by the autoconf-archive package. This commit adds a missing spack package for autoconf-archive and fixes an outdated source hash for mpfr v4.0.2. It might be better to simply include the autoconf-archive dependency at the autoconf package level if other packages also need the extension macros. - Adds missing hdf5 lib search paths to netcdf-fortran when using the XL toolchain. When using the XL toolchain, libtool does automatically pass the necessary HDF5 library search paths needed at link time. This commit explicitly injects the HDF5 library search paths to the LD_FLAGS when using the XL toolchain for libtool. - Excludes SIMD optimization arguments when using PGI toolchain. The FFTW package attempts to apply SIMD optimization flags when building FFTW. The flags selected are not controlled by variants to the fftw package spec. However, when using PGI on ppc64le, unsupported flags are added to the configuration. This commit removes targetted optimization options when using a PGI toolchain. However, it is likely this is only necessary on certain architectures (ppc64le?) or OSes (RHEL7?) and the logic should be improved before pushing this change to upstream spack. - Fixes global allocation error in newer GCC. Newer GCC (9.0+) does not quietly handle allocation for uninitialized global variables. GDBM up to the current version requires the `-fcommon` flag for these toolchains to overcome "multiple-definition" errors. Unfortunately, this carries a speed and code size penalty. Perhaps GDBM will release a newer version that corrects this problem for newer GCC toolchains. - Adds missing dependnency. Imagemagick depends on libSM and, if left implicit, will generally find libSM from the OS which is unlikely to contain libuuid symbols matching those used when spack builds libuuid. This causes build-time missing symbol errors. By having spack build both libuuid and libSM, the problem is avoided and the builds are decoupled from the host OS. - Patches broken pre-built docs out of build The RDMA-Core releases ship with pre-built documentation in case pandoc and rst2man are not available on the system. It is not possible to disable documentation at configuration time and the build will fail if documentation cannot be built or installed. However, the pre-build documentation is not complete (at least for infiniband-diags) and rdma-core's CMake install process will attempt to copy pre-built documentation that does not exist at install time, causing a fatal error. Adding a dependency on pandoc makes the DAG for this package extremely large (pulling in many X11 dependencies). This is bound to cause problems for non-GCC toolchains. So rather than have the spack package build the docs from source, we will rely on the pre-built documentation but exclude the attempted installation of the missing infiniband-diags man pages. - Adds patch for intel and long directory paths. Intel toolchains do not tolerate string array intial values larger than the declared size of the array. The path set via `buildlib/config.h.in` for `#define ACM_CONF_DIR "@CMAKE_INSTALL_FULL_SYSCONFDIR@/rdma"` can be exceptionally long under spack. For example, in file `ibacm/prov/acmp/src/acmp.c`, the line (274) `static char route_data_file[128] = ACM_CONF_DIR "/ibacm_route.data";` sets a string 134+ characters long (ie `len("/sw/andes/spack-envs/base/opt/linux-rhel8-x86_64/clang-9.0.1/rdma-core-28.0-2ixcucck7eb4fzbd3t6imjrhz5qahxui/etc/rdma/ibacm_route.data")`). This causes the intel compilers to choke when trying to shove that string into a 128-character array. This commit adds a patch to the source code to allow for a path up to 192 characters in length. It is unknown if this change breaks other things and this bug should be reported upstream. - Adds OpenBLAS version 0.3.10 This latest version includes fixes for Zen2 targets and truncated symbol names when using AOCC and Flang. - Adds missing PIC flag for MPI builds with PGI. PGI doesn't automatically propagate the PIC flag when building with MPI support and autoconf does not detect the appropriate PIC flag when using the mpif90 spack wrapper. This commit forces FCFLAGS (respected by the mpif90 wrapper) to contain the appropriate PIC flag when building with that option and MPI support for all compilers. - Updates NetCDF-Fortran version; adds GCC10 build error fix. GCC10 fails to build netcdf-fortran and parallel-netcdf due to a issue common to both packages that is known to the upstream developers (at least for netcdf-fortran): Unidata/netcdf-fortran#212 NetCDF-fortran has fixed the issue in a new release as of early June 2020 (Unidata/netcdf-fortran#250) but the problem has not yet been patched in parallel-netcdf. The latest version of netcdf-fortran (v4.5.3) requires netcdf-c >= v4.7.4 so the base netcdf-c package is also updated to the latest release. - Updates Gromacs version; fixes package errors. - Updates pkgconf dependency name. The name of the package pkgconfig has been changed to pkgconf. This package is updated to use the new name when declaring dependencies. - Allow libs to be found in lib64 subdir. When using external OpenSSL, the libs are not always in `$prefix/lib` in the external build. Sometimes, the libraries exist in `$prefix/lib64`. Packages which must declare the location of the SSL libraries outside of using pkgconfig need the `openssl.libs` method to return valid paths. - Pass OpenSSL libs via envvar without relying on pkgconfig. When using external OS-provided OpenSSL, spack-built pkgconfig might not be able to find the openssl libs if `/usr/lib64/pkgconfig` is not in pkgconfig's search path. Passing the location of the OpenSSL libs directly will work for both spack-built and external OpenSSL pacakges. - Adds CUDA v11.0.2 The CUDA Toolkit v11.0.2, also referred to in documentation as CUDA Toolkit v11.0.194, was released on 8 July 2020 ([Release Notes](https://docs.nvidia.com/cuda/archive/11.0/)). This commit adds this current latest version to the CUDA spack package. - Adds fontconfig v2.13.92 This version fixes a bug that prevents fc cache updates when fonts are missing their fc checksum files. - Patches netlib-scalapack to solve confusion between PGI and Intel. The netlib-scalapack CMakeLists have a faulty check to identify if the Intel compiler suite is being used. It checks if the substring 'ifort' matches the fortran compiler binary. Unfortunately, this also catches the PGI fortran compiler 'pgifort'. This causes the build system to inject Intel-specific compiler options into the build. Since unrecognized arguments are generally fatal to PGI, this causes problems when trying to build the package with PGI. Instead, the developers probably want to check the `CMAKE_Fortran_COMPILER_ID` for `Intel` which is unique for the Intel toolchain. This commit adds a patch for this to spack builds. This patch should probably be generalized better for future versions and applied as a patch function. Or, better yet, contributed to the upstream Scalapack codebase. - Enable UCX dev headers by default. No reason to not have the development headers available for applications that need them. - LSF systems must use own PMIx implementation. IBM's PMIx libraries are not provided with LSF and instead are incorporated in CSM or SMPI. OMPI cannot reliably find the necessary external PMIx implementation when on certain systems using LSF. Therefore, we force the use of internal PMIx when using LSF. However, the LSF libdirs options are also not reliably found due to the way IBM packages LSF headers and libraries in separate locations. The second block of code in this commit is experimental and doesn't necessarily work. - Skip patching missing config files. The libiberty subdirectory does not contain its own config files and Spack should not attempt to patch them. - Adds new Plumed version and library fix. Adds latest release v2.6.2 of plumed to the spack package and ensures that both c and fortan blas libraries are added to compiler linking incantations. - Fixes __ieee128 error building Gromacs on ppc64le
- Loading branch information