Skip to content

Classic Intel compilers do not support gcc-toolchain#33281

Merged
rscohn2 merged 3 commits intospack:developfrom
stephenmsachs:intel-classic-no-gcc-toolchain
Oct 17, 2022
Merged

Classic Intel compilers do not support gcc-toolchain#33281
rscohn2 merged 3 commits intospack:developfrom
stephenmsachs:intel-classic-no-gcc-toolchain

Conversation

@stephenmsachs
Copy link
Copy Markdown
Contributor

This fix removes --gcc-toolchain= from the ~.fcg` files for the classic Intel compilers. AFAIK this option is only supported for Clang based compilers.

This lead to an issue when installing cmake. Reproducer:

spack install [email protected]%[email protected]~doc+ncurses+ownlibs~qt
build_type=Release arch=linux-amzn2-skylake_avx512

Tagging maintainer @rscohn2

This fix removes `--gcc-toolchain=` from the ~.fcg` files for the classic Intel
compilers. AFAIK this option is only supported for Clang based compilers.

This lead to an issue when installing cmake. Reproducer:
```
spack install [email protected]%[email protected]~doc+ncurses+ownlibs~qt
build_type=Release arch=linux-amzn2-skylake_avx512
```

Tagging maintainer @rscohn2
@rscohn2
Copy link
Copy Markdown
Member

rscohn2 commented Oct 13, 2022

@haampie @skosukhin:

I see more problems now.

icc accepts gcc-name, icx accepts -gcc-toolchain
icc does not accept -Wno-unused-command-line-argument, but does not need it because it does not warn against Wl,-rpath and -c

I will refactor this a little more and test against all compilers.

@haampie
Copy link
Copy Markdown
Member

haampie commented Oct 13, 2022

Oof, thanks for doing this!

Stephen Sachs and others added 2 commits October 17, 2022 15:07
.. and `-gxx-name` for icpc.

AFAIK this is used for modern C++ support, so we can ignore `ifort`.
Copy link
Copy Markdown
Member

@rscohn2 rscohn2 left a comment

Choose a reason for hiding this comment

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

Thanks for the fix.

@rscohn2 rscohn2 enabled auto-merge (squash) October 17, 2022 16:20
@rscohn2 rscohn2 merged commit 2e55812 into spack:develop Oct 17, 2022
luke-dt added a commit to dantaslab/spack that referenced this pull request Oct 19, 2022
* hypre 2.26.0 (spack#33299)

* Github Discussions can be used for Q&A (spack#33364)

* Support spackbot rebuilding all specs from source (spack#32596)

Support spackbot rebuilding all specs from source when asked (with "rebuild everything")

- Allow overriding --prune-dag cli opt with env var
- Use job variable to optionally prevent rebuild jobs early exit behavior
- ci rebuild: Use new install argument to insist deps are always installed from binary, but
package is only installed from source.
- gitlab: fix bug w/ untouched pruning
- ci rebuild: install from hash rather than json file
- When doing a "rebuild everything" pipeline, make sure that each install job only consumes
binary dependencies from the mirror being populated by the current pipeline.  This avoids
using, e.g. binaries from develop, when rebuilding everything on a PR.
- When running a pipeline to rebuild everything, do not die because we generated a hash on
the broken specs list.  Instead only warn in that case.
- bugfix: Replace broken no-args tty.die() with sys.exit(1)

* python: add 3.10.7, 3.9.14, 3.8.14, 3.7.14 (spack#32623)

* Add checksum for py-secretstorage 3.3.3 (spack#33366)

* Add checksum for py-ipykernel 6.15.2 (spack#33360)

* GnuPG: add v2.3.8 and update stack (spack#33368)

* installer.py: traverse_dependencies has local deptype (spack#33367)

Currently `traverse_dependencies` fixes deptypes to traverse once and
for all in the recursion, but this is incorrect, since deptypes depend
on the node (e.g. if it's a dependency and cache-only, don't follow
build type edges, even if the parent is build from sources and needs
build deps.)

* py-horovod: add v0.26 (spack#33311)

* py-horovod: add v0.26

* py-petastorm: add v0.12.0

* database: don't warn adding missing build deps (spack#33361)

When installing an individual spec `spack --only=package --cache-only /xyz`
from a buildcache, Spack currently issues tons of warnings about
missing build deps (and their deps) in the database.

This PR disables these warnings, since it's fine to have a spec without
its build deps in the db (they are just "missing").

* Classic Intel compilers do not support gcc-toolchain (spack#33281)

* Classic Intel compilers do not support gcc-toolchain

This fix removes `--gcc-toolchain=` from the ~.fcg` files for the classic Intel
compilers. AFAIK this option is only supported for Clang based compilers.

This lead to an issue when installing cmake. Reproducer:
```
spack install [email protected]%[email protected]~doc+ncurses+ownlibs~qt
build_type=Release arch=linux-amzn2-skylake_avx512
```

Tagging maintainer @rscohn2

* Add `-gcc-name` for icc

.. and `-gxx-name` for icpc.

AFAIK this is used for modern C++ support, so we can ignore `ifort`.

Co-authored-by: Stephen Sachs <[email protected]>

* py-xopen: version bump to 1.6.0 (spack#33231)

* version bump to 1.6.0

* added py-isal, updated URL

* Initial contribution of LibPressio ecosystem (spack#32630)

* Add libpressio and dependencies; some of these packages are
  maintained as forks of the original repositories and in those
  cases the docstring mentions this.
* Add optional dependency in adios2 on libpressio
* cub package: set CUB_DIR environment variable for dependent
  installations
* Clear R_HOME/R_ENVIRON before Spack installation (avoid sources
  outside of Spack from affecting the installation in Spack)
* Rename dlib to dorian3d-dlib and update dependents; add new dlib
  implementation. Pending an official policy on how to handle
  packages with short names, reviewer unilaterally decided that
  the rename was acceptable given that the new Spack dlib package
  is referenced more widely (by orders of magnitude) than the
  original

Co-authored-by: Samuel Li <[email protected]>

* New packages: libbigwig, methyldackel (spack#33273)

* libbigwig: adding new package libbigwig
* methyldackel: adding new package methyldackel
* libbigwig: tighten up curl variant

* grid: reference `fftw-api` instead of `fftw` (spack#33374)

This makes it possible to compile with, e.g., `cray-fftw`, not just `fftw`.

* Bugfix HIP and aluminum rocm build (spack#33344)

* Fixed two bugs in the HIP package recipe.  The first is that the
HIP_PATH was being set to the actual spec, and not the spec prefix.

The second bug is that HIP is expected to be in /opt/rocm-x.y.z/hip
but it's libraries can exist at both /opt/rocm-x.y.z/hip/lib and
/opt/rocm-x.y.z/lib.  This means that the external detection logic may
find it in either and it turns out that some modules only expose one
of those two locations.  Logic is added to ensure that the internal
HIP_PATH and associated ROCM_PATH are correctly set in both cases.

* Added support for Aluminum to use the libfabric plugin with either
RCCL or NCCL.

* lz4: add 1.9.4 (spack#33334)

* e4s ci stack: add trilinos +rocm (spack#31601)

* py-fiona: add v1.8.22 (spack#33372)

* intel-oneapi-compilers: fix Python 2.7 compliance (spack#33383)

* build(deps): bump docker/setup-buildx-action from 2.1.0 to 2.2.0 (spack#33384)

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@95cb08c...c74574e)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* mothur: add v1.48.0 and variants (spack#33326)

* vsearch: add v2.22.1 (spack#33327)

* papi: fix for Intel OneAPI compiler (spack#33225)

Without this patch one hits this error trying to compiler papi with Intel OneAPI:

icx: error: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0' [-Werror,-Wdebug-disables-optimization]

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

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

* go,gcc: Support external go compilers for Go bootstrap (spack#27769)

For ARM64, fallback to gccgo. ([email protected] can't support ARM64)

* Reusable --use-buildcache with better validation (spack#33388)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Docs: Spack info option updates (spack#33376)

* intel-oneapi-compilers: do not pass -Wno-unused-command-line-argument to icc + refactor (spack#33389)

* spack checksum: warn if version is deprecated (spack#32438)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Update the binary index before attempting direct fetches (spack#32137)

"spack install" will not update the binary index if given a concrete
spec, which causes it to fall back to direct fetches when a simple
index update would have helped. For S3 buckets in particular, this
significantly and needlessly slows down the install process.

This commit alters the logic so that the binary index is updated
whenever a by-hash lookup fails. The lookup is attempted again with
the updated index before falling back to direct fetches. To avoid
updating too frequently (potentially once for each spec being
installed), BinaryCacheIndex.update now includes a "cooldown"
option, and when this option is enabled it will not update more
than once in a cooldown window (set in config.yaml).

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

* Relocate "run" type dependencies too (spack#33191)

When downloading from binary cache not only replace RPATHs to dependencies, but
also text references to dependencies.

Example:
`[email protected]` contains a text reference to the executable of its dependency
`perl`:

```
$ grep perl-5 /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/autoconf-2.69-q3lo/bin/autoreconf
eval 'case $# in 0) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0";; *) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0" "$@";; esac'
```

These references need to be replace or any package using `autoreconf` will fail
as it cannot find the installed `perl`.

Co-authored-by: Stephen Sachs <[email protected]>

* Add a command to bootstrap Spack right now (spack#33407)

* axom: python only reliably available when +python, +devtools (spack#33414)

* pilercr: new package (spack#33251)

* new package
* fixed style
* actually building now

* raja +rocm: use hipcc as CMAKE_CXX_COMPILER (spack#33375)

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Howard Pritchard <[email protected]>
Co-authored-by: Rui Peng Li <[email protected]>
Co-authored-by: Harmen Stoppels <[email protected]>
Co-authored-by: Scott Wittenburg <[email protected]>
Co-authored-by: Carlos Bederián <[email protected]>
Co-authored-by: iarspider <[email protected]>
Co-authored-by: Massimiliano Culpo <[email protected]>
Co-authored-by: Adam J. Stewart <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Robert Underwood <[email protected]>
Co-authored-by: Samuel Li <[email protected]>
Co-authored-by: snehring <[email protected]>
Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Brian Van Essen <[email protected]>
Co-authored-by: Michael Kuhn <[email protected]>
Co-authored-by: eugeneswalker <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Howard Pritchard <[email protected]>
Co-authored-by: Bernhard Kaindl <[email protected]>
Co-authored-by: Tamara Dahlgren <[email protected]>
Co-authored-by: Robert Cohn <[email protected]>
Co-authored-by: Jonathon Anderson <[email protected]>
luke-dt added a commit to dantaslab/spack that referenced this pull request Oct 19, 2022
* hypre 2.26.0 (spack#33299)

* Github Discussions can be used for Q&A (spack#33364)

* Support spackbot rebuilding all specs from source (spack#32596)

Support spackbot rebuilding all specs from source when asked (with "rebuild everything")

- Allow overriding --prune-dag cli opt with env var
- Use job variable to optionally prevent rebuild jobs early exit behavior
- ci rebuild: Use new install argument to insist deps are always installed from binary, but
package is only installed from source.
- gitlab: fix bug w/ untouched pruning
- ci rebuild: install from hash rather than json file
- When doing a "rebuild everything" pipeline, make sure that each install job only consumes
binary dependencies from the mirror being populated by the current pipeline.  This avoids
using, e.g. binaries from develop, when rebuilding everything on a PR.
- When running a pipeline to rebuild everything, do not die because we generated a hash on
the broken specs list.  Instead only warn in that case.
- bugfix: Replace broken no-args tty.die() with sys.exit(1)

* python: add 3.10.7, 3.9.14, 3.8.14, 3.7.14 (spack#32623)

* Add checksum for py-secretstorage 3.3.3 (spack#33366)

* Add checksum for py-ipykernel 6.15.2 (spack#33360)

* GnuPG: add v2.3.8 and update stack (spack#33368)

* installer.py: traverse_dependencies has local deptype (spack#33367)

Currently `traverse_dependencies` fixes deptypes to traverse once and
for all in the recursion, but this is incorrect, since deptypes depend
on the node (e.g. if it's a dependency and cache-only, don't follow
build type edges, even if the parent is build from sources and needs
build deps.)

* py-horovod: add v0.26 (spack#33311)

* py-horovod: add v0.26

* py-petastorm: add v0.12.0

* database: don't warn adding missing build deps (spack#33361)

When installing an individual spec `spack --only=package --cache-only /xyz`
from a buildcache, Spack currently issues tons of warnings about
missing build deps (and their deps) in the database.

This PR disables these warnings, since it's fine to have a spec without
its build deps in the db (they are just "missing").

* Classic Intel compilers do not support gcc-toolchain (spack#33281)

* Classic Intel compilers do not support gcc-toolchain

This fix removes `--gcc-toolchain=` from the ~.fcg` files for the classic Intel
compilers. AFAIK this option is only supported for Clang based compilers.

This lead to an issue when installing cmake. Reproducer:
```
spack install [email protected]%[email protected]~doc+ncurses+ownlibs~qt
build_type=Release arch=linux-amzn2-skylake_avx512
```

Tagging maintainer @rscohn2

* Add `-gcc-name` for icc

.. and `-gxx-name` for icpc.

AFAIK this is used for modern C++ support, so we can ignore `ifort`.

Co-authored-by: Stephen Sachs <[email protected]>

* py-xopen: version bump to 1.6.0 (spack#33231)

* version bump to 1.6.0

* added py-isal, updated URL

* Initial contribution of LibPressio ecosystem (spack#32630)

* Add libpressio and dependencies; some of these packages are
  maintained as forks of the original repositories and in those
  cases the docstring mentions this.
* Add optional dependency in adios2 on libpressio
* cub package: set CUB_DIR environment variable for dependent
  installations
* Clear R_HOME/R_ENVIRON before Spack installation (avoid sources
  outside of Spack from affecting the installation in Spack)
* Rename dlib to dorian3d-dlib and update dependents; add new dlib
  implementation. Pending an official policy on how to handle
  packages with short names, reviewer unilaterally decided that
  the rename was acceptable given that the new Spack dlib package
  is referenced more widely (by orders of magnitude) than the
  original

Co-authored-by: Samuel Li <[email protected]>

* New packages: libbigwig, methyldackel (spack#33273)

* libbigwig: adding new package libbigwig
* methyldackel: adding new package methyldackel
* libbigwig: tighten up curl variant

* grid: reference `fftw-api` instead of `fftw` (spack#33374)

This makes it possible to compile with, e.g., `cray-fftw`, not just `fftw`.

* Bugfix HIP and aluminum rocm build (spack#33344)

* Fixed two bugs in the HIP package recipe.  The first is that the
HIP_PATH was being set to the actual spec, and not the spec prefix.

The second bug is that HIP is expected to be in /opt/rocm-x.y.z/hip
but it's libraries can exist at both /opt/rocm-x.y.z/hip/lib and
/opt/rocm-x.y.z/lib.  This means that the external detection logic may
find it in either and it turns out that some modules only expose one
of those two locations.  Logic is added to ensure that the internal
HIP_PATH and associated ROCM_PATH are correctly set in both cases.

* Added support for Aluminum to use the libfabric plugin with either
RCCL or NCCL.

* lz4: add 1.9.4 (spack#33334)

* e4s ci stack: add trilinos +rocm (spack#31601)

* py-fiona: add v1.8.22 (spack#33372)

* intel-oneapi-compilers: fix Python 2.7 compliance (spack#33383)

* build(deps): bump docker/setup-buildx-action from 2.1.0 to 2.2.0 (spack#33384)

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@95cb08c...c74574e)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* mothur: add v1.48.0 and variants (spack#33326)

* vsearch: add v2.22.1 (spack#33327)

* papi: fix for Intel OneAPI compiler (spack#33225)

Without this patch one hits this error trying to compiler papi with Intel OneAPI:

icx: error: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0' [-Werror,-Wdebug-disables-optimization]

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

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

* go,gcc: Support external go compilers for Go bootstrap (spack#27769)

For ARM64, fallback to gccgo. ([email protected] can't support ARM64)

* Reusable --use-buildcache with better validation (spack#33388)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Docs: Spack info option updates (spack#33376)

* intel-oneapi-compilers: do not pass -Wno-unused-command-line-argument to icc + refactor (spack#33389)

* spack checksum: warn if version is deprecated (spack#32438)

Co-authored-by: Massimiliano Culpo <[email protected]>

* Update the binary index before attempting direct fetches (spack#32137)

"spack install" will not update the binary index if given a concrete
spec, which causes it to fall back to direct fetches when a simple
index update would have helped. For S3 buckets in particular, this
significantly and needlessly slows down the install process.

This commit alters the logic so that the binary index is updated
whenever a by-hash lookup fails. The lookup is attempted again with
the updated index before falling back to direct fetches. To avoid
updating too frequently (potentially once for each spec being
installed), BinaryCacheIndex.update now includes a "cooldown"
option, and when this option is enabled it will not update more
than once in a cooldown window (set in config.yaml).

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

* Relocate "run" type dependencies too (spack#33191)

When downloading from binary cache not only replace RPATHs to dependencies, but
also text references to dependencies.

Example:
`[email protected]` contains a text reference to the executable of its dependency
`perl`:

```
$ grep perl-5 /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/autoconf-2.69-q3lo/bin/autoreconf
eval 'case $# in 0) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0";; *) exec /shared/spack/opt/spack/linux-amzn2-x86_64_v3/gcc-7.3.1/perl-5.34.1-yphg/bin/perl -S "$0" "$@";; esac'
```

These references need to be replace or any package using `autoreconf` will fail
as it cannot find the installed `perl`.

Co-authored-by: Stephen Sachs <[email protected]>

* Add a command to bootstrap Spack right now (spack#33407)

* axom: python only reliably available when +python, +devtools (spack#33414)

* pilercr: new package (spack#33251)

* new package
* fixed style
* actually building now

* raja +rocm: use hipcc as CMAKE_CXX_COMPILER (spack#33375)

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Howard Pritchard <[email protected]>
Co-authored-by: Rui Peng Li <[email protected]>
Co-authored-by: Harmen Stoppels <[email protected]>
Co-authored-by: Scott Wittenburg <[email protected]>
Co-authored-by: Carlos Bederián <[email protected]>
Co-authored-by: iarspider <[email protected]>
Co-authored-by: Massimiliano Culpo <[email protected]>
Co-authored-by: Adam J. Stewart <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Stephen Sachs <[email protected]>
Co-authored-by: Robert Underwood <[email protected]>
Co-authored-by: Samuel Li <[email protected]>
Co-authored-by: snehring <[email protected]>
Co-authored-by: Mosè Giordano <[email protected]>
Co-authored-by: Brian Van Essen <[email protected]>
Co-authored-by: Michael Kuhn <[email protected]>
Co-authored-by: eugeneswalker <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Howard Pritchard <[email protected]>
Co-authored-by: Bernhard Kaindl <[email protected]>
Co-authored-by: Tamara Dahlgren <[email protected]>
Co-authored-by: Robert Cohn <[email protected]>
Co-authored-by: Jonathon Anderson <[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.

3 participants