Closed ndellingwood closed 1 year ago
I identified the wrong guarded macro above that triggered the errors; this change allowed me to compile:
diff --git a/src/KokkosKernels_Macros.hpp b/src/KokkosKernels_Macros.hpp
index 1630028c..7cc56ca7 100644
--- a/src/KokkosKernels_Macros.hpp
+++ b/src/KokkosKernels_Macros.hpp
@@ -68,7 +68,8 @@
// GCC 4.8.5 and older do not support #pragma omp simd
// Do not enable when using GCC 7.2.0 + C++17 due to a bug in gcc
#if (KOKKOS_COMPILER_GNU > 485) && \
- !(KOKKOS_COMPILER_GNU == 720 && defined(KOKKOS_ENABLE_CXX17))
+ !(KOKKOS_COMPILER_GNU == 720 && defined(KOKKOS_ENABLE_CXX17)) && \
+ !(KOKKOS_COMPILER_GNU == 730 && defined(KOKKOS_ENABLE_CXX17))
#define KOKKOSKERNELS_ENABLE_OMP_SIMD
#endif
// TODO: Check for a clang version that supports #pragma omp simd
Apparently the bug referring to gcc/7.2.0 is also present with gcc/7.3.0...
I'll put in a PR with the small change
Confirmed the build completes with gcc/8.3.0, 9.2.0 and c++17
Nightly gcc/7.3.0 OpenMP builds with c++17 enabled and BLAS tpls enabled are failing to compile with error message:
Reproducer:
My guess is the CXX14 guard here https://github.com/kokkos/kokkos-kernels/blob/42ab7a29f33df64406ec5d7eae5c39926598ec33/src/blas/impl/KokkosBlas3_gemm_impl.hpp#L51 should guard for c++17 as well (iirc we didn't test or fully support c++17 at the time that workaround was added, the only known problematic case was guarded), so if we add an additional check for
KOKKOS_ENABLE_CXX17
then things will pass. I'll test this out and if successful put in a PR if no alternative fix/workaround is suggested