From ada174afbd4bb3498259a167c424da7214fb4a79 Mon Sep 17 00:00:00 2001 From: Stephen Sachs Date: Thu, 5 Jan 2023 18:13:26 +0100 Subject: cmake fails with icpc warning (#34774) The Intel compiler isn't able to deal with noinline member functions of template classses defined in headers. As such it outputs ``` warning #2196: routine is both "inline" and "noinline" ``` cmake bootstrap will fail due to the word 'warning'. See spack/var/spack/repos/builtin/packages/protobuf/intel-v2.patch for reference. The issue does not appear with intel@2021.7.0 or later: ``` $~: compiler=/shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-12.2.0/intel-oneapi-compilers-2022.2.0-uqvb2553zy5toeapvoopacndd27x6p5m/compiler/2022.2.0/linux/bin/intel64/icpc $~: $compiler unique.c icpc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated and will be removed from product release in the second half of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler moving forward. Please transition to use this compiler. Use '-diag-disable=10441' to disable this message. ``` This is a clean version of https://github.com/spack/spack/pull/34167 Co-authored-by: Stephen Sachs --- var/spack/repos/builtin/packages/cmake/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index a5fb14db91..a625817c85 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -312,6 +312,13 @@ class Cmake(Package): args = [] self.generator = make + # The Intel compiler isn't able to deal with noinline member functions of + # template classes defined in headers. As such it outputs + # warning #2196: routine is both "inline" and "noinline" + # cmake bootstrap will fail due to the word 'warning'. + if spec.satisfies("%intel@:2021.6.0"): + args.append("CXXFLAGS=-diag-disable=2196") + if self.spec.satisfies("platform=windows"): args.append("-GNinja") self.generator = ninja -- cgit v1.2.3-60-g2f50