Skip to content

cmake fails with icpc warning#34167

Closed
stephenmsachs wants to merge 118 commits intospack:developfrom
stephenmsachs:cmake-intel-warning
Closed

cmake fails with icpc warning#34167
stephenmsachs wants to merge 118 commits intospack:developfrom
stephenmsachs:cmake-intel-warning

Conversation

@stephenmsachs
Copy link
Copy Markdown
Contributor

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 Intel compiler isn't able to deal with noinline member functions of
template classses defined in headers.  As such it outputs
   warning spack#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.
Comment on lines +315 to +320
# 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 th word 'warning'.
if spec.satisfies("%intel@:2021.6.0"):
args.append("CXXFLAGS=-diag-disable=2196")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# 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 th word 'warning'.
if spec.satisfies("%intel@:2021.6.0"):
args.append("CXXFLAGS=-diag-disable=2196")
# 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")

Pinging @rscohn2 to confirm that's the best way to solve this

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems ok. What about icc 2021.7.0, 2021.7.1, & 2021.8.0? They don't have the problem?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, they don't issue this warning anymore:

$~: 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.

@alalazo alalazo self-assigned this Dec 21, 2022
Stephen Sachs and others added 22 commits January 3, 2023 13:49
Implement an alternative strategy to do index.json invalidation.

The current approach of pairs of index.json / index.json.hash is
problematic because it leads to races.

The standard solution for cache invalidation is etags, which are
supported by both http and s3 protocols, which allows one to do
conditional fetches.

This PR implements that for the http/https schemes. It should also work
for s3 schemes, but that requires other prs to be merged.

Also it improves unit tests for index.json fetches.
Replace the filter_file for older configure with rocm 5.3 with an
upstream patch.  Further, the patch is no longer needed for develop or
later releases.
The sticky property will prevent clingo from changing the amdgpu_target
to work around conflicts. This is the same behaviour as was adopted for
cuda_arch in 055c9d1.
without this patch, build of paraview has a meltdown when reaching 3rd party catalyst and other packages
with these types of errors:

   335    /tmp/foo/spack-stage/spack-stage-paraview-5.10.1-gscoqxhhakjyyfirdefuhmi2bzw4scho/spack-src/VTK/ThirdParty/fmt/vtkfmt/vtkfmt/format.h:1732:11: error: cannot capture a bi
            t-field by reference
   336          if (sign) *it++ = static_cast<Char>(data::signs[sign]);
   337              ^

Signed-off-by: Howard Pritchard <[email protected]>

Signed-off-by: Howard Pritchard <[email protected]>
* add psij package and deps

* update hashes, URLs

* linting

* Update var/spack/repos/builtin/packages/py-psij-python/package.py

Co-authored-by: Adam J. Stewart <[email protected]>

* Update var/spack/repos/builtin/packages/py-pystache/package.py

Co-authored-by: Adam J. Stewart <[email protected]>

* Update var/spack/repos/builtin/packages/py-pystache/package.py

Co-authored-by: Tamara Dahlgren <[email protected]>

* Update package.py

apply suggested change

* Update package.py

apply suggested change

* Update package.py

ensure maintainer inheritance

* add psij to exaworks meta-package

Co-authored-by: Adam J. Stewart <[email protected]>
Co-authored-by: Tamara Dahlgren <[email protected]>
@stephenmsachs
Copy link
Copy Markdown
Contributor Author

Seems like I broke something by merging develop. I'll open a new PR.

stephenmsachs pushed a commit to stephenmsachs/spack that referenced this pull request Jan 3, 2023
Tagging @alalazo and @rschon2

The Intel compiler isn't able to deal with noinline member functions of template classses defined in headers. As such it outputs
warning spack#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 [email protected] 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 spack#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 spack#34167
@stephenmsachs stephenmsachs deleted the cmake-intel-warning branch January 3, 2023 12:56
alalazo pushed a commit that referenced this pull request Jan 5, 2023
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 [email protected] 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 #34167

Co-authored-by: Stephen Sachs <[email protected]>
RikkiButler20 pushed a commit to RikkiButler20/spack that referenced this pull request Jan 24, 2023
The Intel compiler isn't able to deal with noinline member functions of template classses defined in headers. As such it outputs
```
warning spack#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 [email protected] 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 spack#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 spack#34167

Co-authored-by: Stephen Sachs <[email protected]>
amd-toolchain-support pushed a commit to amd-toolchain-support/spack that referenced this pull request Feb 16, 2023
The Intel compiler isn't able to deal with noinline member functions of template classses defined in headers. As such it outputs
```
warning spack#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 [email protected] 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 spack#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 spack#34167

Co-authored-by: Stephen Sachs <[email protected]>
techxdave pushed a commit to Tech-XCorp/spack that referenced this pull request Feb 17, 2023
The Intel compiler isn't able to deal with noinline member functions of template classses defined in headers. As such it outputs
```
warning spack#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 [email protected] 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 spack#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 spack#34167

Co-authored-by: Stephen Sachs <[email protected]>
jmcarcell pushed a commit to key4hep/spack that referenced this pull request Apr 13, 2023
The Intel compiler isn't able to deal with noinline member functions of template classses defined in headers. As such it outputs
```
warning spack#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 [email protected] 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 spack#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 spack#34167

Co-authored-by: Stephen Sachs <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.