Aidan
(Aidan Heerdegen, ACCESS-NRI Release Team Lead)
3 June 2025 01:05
21
Can we get some more info about this issue?
opened 07:56AM - 30 May 25 UTC
bug
triage
### Steps to reproduce
An environment is being rebuilt(`spack install`) with mi… nor changes to the `flags` very soon after the previous build. All other dependencies are unchanged, so we expect that those unchanged dependencies would not need to be rebuilt.
However the concretization resolves to a different hash for the dependencies, so they are rebuilt, which means the build is taking substantially longer than it should. It appears the ordering of compilation flags is not deterministic, and can change from one build to the next.
I can try and make an MRE, but this is a complex build, so I don't know if that will work. However there are two build logs available in GitHub actions which provide a lot of detail.
Specifically
1. https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/15337260423/job/43156769782#step:11:630
2. https://github.com/ACCESS-NRI/ACCESS-ESM1.6/actions/runs/15339465156/job/43162794023#step:11:638
The difference between the commits for 1 and 2 is
https://github.com/ACCESS-NRI/ACCESS-ESM1.6/compare/8618e3c...01b39d1
### Error message
The respective concretization graphs
<details>
<summary>concretization for 1: 15337260423 </summary>
==> [2025-05-30-11:41:59.811318] Concretized access-esm1p6
- hsi4r4g access-esm1p6@latest%oneapi@2025.0.4+generic-tracers build_system=bundle cice=4 um=access-esm1.6 arch=linux-rocky8-x86_64_v3
- susieal ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-xCORE-AVX2 -fprotect-parens -g3 -traceback -assume nan_compares -assume ieee_compares' build_system=makefile arch=linux-rocky8-x86_64_v3
[+] 7jm5ui5 ^gmake@4.4.1%oneapi@2025.0.4~guile build_system=generic arch=linux-rocky8-x86_64_v3
- spafzdb ^netcdf-fortran@4.5.2%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-traceback -xCORE-AVX2 -assume ieee_compares -g3 -fprotect-parens -assume nan_compares' ~doc+pic+shared build_system=autotools patches=b050dbd arch=linux-rocky8-x86_64_v3
- 3e4ypaa ^oasis3-mct@git.7036f26ece68c26083fec2fe96e3cb1faed7559d=access-esm1.5%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-g3 -traceback -fprotect-parens -xCORE-AVX2 -assume nan_compares -assume ieee_compares' ~deterministic~optimisation_report build_system=makefile arch=linux-rocky8-x86_64_v3
[e] 6rciua3 ^openmpi@4.1.5%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-fprotect-parens -xCORE-AVX2 -traceback -assume ieee_compares -g3 -assume nan_compares' ~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~singularity~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-rocky8-x86_64_v3
[e] aehs5ds ^glibc@2.28%gcc@14.1.0 build_system=autotools arch=linux-rocky8-x86_64_v3
[+] a5p6o3a ^intel-oneapi-runtime@2025.0.4%oneapi@2025.0.4 build_system=generic arch=linux-rocky8-x86_64_v3
[+] thbbu3x ^gcc-runtime@14.1.0%gcc@14.1.0 build_system=generic arch=linux-rocky8-x86_64_v3
- z5nav4f ^mom5@git.7f3317663cd7ade995476c4e0dc09d361ad3bd36=access-esm1.6%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-xCORE-AVX2 -assume dummy_aliases -g3 -assume nan_compares -traceback -assume ieee_compares -fprotect-parens' +access-gtracers~deterministic~optimisation_report+restart_repro build_system=makefile type=ACCESS-ESM arch=linux-rocky8-x86_64_v3
- qay6cql ^access-fms@git.mom5-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-g3 -traceback -fprotect-parens -assume ieee_compares -xCORE-AVX2 -assume nan_compares' +gfs_phys+internal_file_nml~ipo~large_file build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64_v3
[e] c5j7mps ^cmake@3.24.2%oneapi@2025.0.4~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-rocky8-x86_64_v3
- m4c2x7l ^access-generic-tracers@git.dev-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-assume ieee_compares -traceback -g3 -assume nan_compares -fprotect-parens -xCORE-AVX2' ~ipo build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64_v3
- 4dfqajn ^access-mocsy@git.2017.12.0=2017.12.0%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-g3 -traceback -assume nan_compares -assume ieee_compares -fprotect-parens -xCORE-AVX2' build_system=makefile arch=linux-rocky8-x86_64_v3
- pzg2ki2 ^netcdf-c@4.7.4%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-assume nan_compares -assume ieee_compares -xCORE-AVX2 -fprotect-parens -traceback -g3' ~blosc~byterange~dap~fsync~hdf4~jna+mpi~nczarr_zip+optimize~parallel-netcdf+pic+shared~szip~zstd build_system=autotools arch=linux-rocky8-x86_64_v3
- np6elcb ^hdf5@1.10.11%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-g3 -fprotect-parens -xCORE-AVX2' fflags='-fprotect-parens -assume nan_compares -traceback -assume ieee_compares -xCORE-AVX2 -g3' ~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64_v3
[+] fv4gd6w ^pkgconf@2.2.0%oneapi@2025.0.4 build_system=autotools arch=linux-rocky8-x86_64_v3
[+] 7zrg4uj ^zlib-ng@2.1.6%oneapi@2025.0.4+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-rocky8-x86_64_v3
- aagxavo ^um7@git.1ea43190add8627fb317906d257f278763b55125=access-esm1.6%oneapi@2025.0.4 cflags='-g3 -fprotect-parens -xCORE-AVX2' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-g3 -traceback -assume nan_compares -xCORE-AVX2 -fprotect-parens -assume ieee_compares' build_system=generic optim=high arch=linux-rocky8-x86_64_v3
[+] p3e3j56 ^dummygrib@1.0%oneapi@2025.0.4 build_system=makefile arch=linux-rocky8-x86_64_v3
[+] 537j3rk ^fcm@2021.05.0%oneapi@2025.0.4 build_system=generic site=none arch=linux-rocky8-x86_64_v3
- etg42ku ^gcom4@git.0f17657a3b21cda9c0f3c403d99667e436062e38=access-esm1.5%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-fprotect-parens -xCORE-AVX2 -g3' fflags='-g3 -assume ieee_compares -assume nan_compares -traceback -xCORE-AVX2 -fprotect-parens' +mpi build_system=generic arch=linux-rocky8-x86_64_v3
</details>
<details>
<summary>concretization for 2: 15339465156</summary>
```
==> [2025-05-30-14:55:09.632509] Concretized access-esm1p6
- canaqei access-esm1p6@latest%oneapi@2025.0.4+generic-tracers build_system=bundle cice=4 um=access-esm1.6 arch=linux-rocky8-x86_64_v3
- qljzx7x ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-xCORE-AVX2 -fprotect-parens -g3 -assume nan_compares -traceback -assume ieee_compares' build_system=makefile arch=linux-rocky8-x86_64_v3
[+] 7jm5ui5 ^gmake@4.4.1%oneapi@2025.0.4~guile build_system=generic arch=linux-rocky8-x86_64_v3
- vqb6dyd ^netcdf-fortran@4.5.2%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -fprotect-parens -xCORE-AVX2' fflags='-xCORE-AVX2 -assume ieee_compares -assume nan_compares -fprotect-parens -g3 -traceback' ~doc+pic+shared build_system=autotools patches=b050dbd arch=linux-rocky8-x86_64_v3
- 6quqwyb ^oasis3-mct@git.7036f26ece68c26083fec2fe96e3cb1faed7559d=access-esm1.5%oneapi@2025.0.4 cflags='-g3 -fprotect-parens -xCORE-AVX2' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-assume nan_compares -fprotect-parens -g3 -assume ieee_compares -traceback -xCORE-AVX2' ~deterministic~optimisation_report build_system=makefile arch=linux-rocky8-x86_64_v3
[e] xid2pum ^openmpi@4.1.5%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-assume ieee_compares -traceback -g3 -assume nan_compares -xCORE-AVX2 -fprotect-parens' ~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix~romio+rsh~singularity~static+vt+wrapper-rpath build_system=autotools fabrics=none romio-filesystem=none schedulers=none arch=linux-rocky8-x86_64_v3
[e] aehs5ds ^glibc@2.28%gcc@14.1.0 build_system=autotools arch=linux-rocky8-x86_64_v3
[+] a5p6o3a ^intel-oneapi-runtime@2025.0.4%oneapi@2025.0.4 build_system=generic arch=linux-rocky8-x86_64_v3
[+] thbbu3x ^gcc-runtime@14.1.0%gcc@14.1.0 build_system=generic arch=linux-rocky8-x86_64_v3
- pasoao7 ^mom5@git.003c8a80bd223d2722b4aaca4174b3e3a21d87e6=access-esm1.6%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-fprotect-parens -g3 -traceback -xCORE-AVX2 -assume ieee_compares -assume nan_compares' +access-gtracers~deterministic~optimisation_report+restart_repro build_system=makefile type=ACCESS-ESM arch=linux-rocky8-x86_64_v3
- finlfac ^access-fms@git.mom5-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-assume nan_compares -traceback -xCORE-AVX2 -assume ieee_compares -g3 -fprotect-parens' +gfs_phys+internal_file_nml~ipo~large_file build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64_v3
[e] c5j7mps ^cmake@3.24.2%oneapi@2025.0.4~doc+ncurses+ownlibs build_system=generic build_type=Release arch=linux-rocky8-x86_64_v3
- z2t66eo ^access-generic-tracers@git.dev-2025.04.001=2025.04.001%oneapi@2025.0.4 cflags='-fprotect-parens -g3 -xCORE-AVX2' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-g3 -traceback -assume nan_compares -xCORE-AVX2 -assume ieee_compares -fprotect-parens' ~ipo build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64_v3
- meqj55h ^access-mocsy@git.2017.12.0=2017.12.0%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-xCORE-AVX2 -fprotect-parens -g3' fflags='-fprotect-parens -assume nan_compares -assume ieee_compares -traceback -g3 -xCORE-AVX2' build_system=makefile arch=linux-rocky8-x86_64_v3
- dpqjhl3 ^netcdf-c@4.7.4%oneapi@2025.0.4 cflags='-xCORE-AVX2 -fprotect-parens -g3' cxxflags='-g3 -fprotect-parens -xCORE-AVX2' fflags='-traceback -xCORE-AVX2 -g3 -fprotect-parens -assume ieee_compares -assume nan_compares' ~blosc~byterange~dap~fsync~hdf4~jna+mpi~nczarr_zip+optimize~parallel-netcdf+pic+shared~szip~zstd build_system=autotools arch=linux-rocky8-x86_64_v3
- v7qxufc ^hdf5@1.10.11%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-assume ieee_compares -xCORE-AVX2 -assume nan_compares -fprotect-parens -g3 -traceback' ~cxx~fortran+hl~ipo~java+mpi+shared~szip~threadsafe+tools api=default build_system=cmake build_type=Release generator=make arch=linux-rocky8-x86_64_v3
[+] fv4gd6w ^pkgconf@2.2.0%oneapi@2025.0.4 build_system=autotools arch=linux-rocky8-x86_64_v3
[+] 7zrg4uj ^zlib-ng@2.1.6%oneapi@2025.0.4+compat+new_strategies+opt+pic+shared build_system=autotools arch=linux-rocky8-x86_64_v3
- rjo4gre ^um7@git.1ea43190add8627fb317906d257f278763b55125=access-esm1.6%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-xCORE-AVX2 -g3 -fprotect-parens' fflags='-g3 -xCORE-AVX2 -fprotect-parens -assume nan_compares -assume ieee_compares -traceback' build_system=generic optim=high arch=linux-rocky8-x86_64_v3
[+] p3e3j56 ^dummygrib@1.0%oneapi@2025.0.4 build_system=makefile arch=linux-rocky8-x86_64_v3
[+] 537j3rk ^fcm@2021.05.0%oneapi@2025.0.4 build_system=generic site=none arch=linux-rocky8-x86_64_v3
- 4ahbikn ^gcom4@git.0f17657a3b21cda9c0f3c403d99667e436062e38=access-esm1.5%oneapi@2025.0.4 cflags='-g3 -xCORE-AVX2 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-xCORE-AVX2 -g3 -assume nan_compares -traceback -fprotect-parens -assume ieee_compares' +mpi build_system=generic arch=linux-rocky8-x86_64_v3
```
</details>
Many of the dependencies have altered hashes, even though there was no change to the dependency requirements in the `spack.yaml`.
It seems the issue is ordering of the `FFLAGS` in the resolved spec, e.g.
1:
```
susieal ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-fprotect-parens -xCORE-AVX2 -g3' cxxflags='-g3 -xCORE-AVX2 -fprotect-parens' fflags='-xCORE-AVX2 -fprotect-parens -g3 -traceback -assume nan_compares -assume ieee_compares' build_system=makefile arch=linux-rocky8-x86_64_v3
```
2:
```
qljzx7x ^cice4@git.access-esm1.6-2025.04.000=access-esm1.5%oneapi@2025.0.4 cflags='-xCORE-AVX2 -g3 -fprotect-parens' cxxflags='-fprotect-parens -g3 -xCORE-AVX2' fflags='-xCORE-AVX2 -fprotect-parens -g3 -assume nan_compares -traceback -assume ieee_compares' build_system=makefile arch=linux-rocky8-x86_64_v3
```
the changes are
1. `cflags='-fprotect-parens -xCORE-AVX2 -g3'`
2. `cflags='-xCORE-AVX2 -g3 -fprotect-parens'`
1. `cxxflags='-g3 -xCORE-AVX2 -fprotect-parens'`
2. `cxxflags='-fprotect-parens -g3 -xCORE-AVX2'`
1. `fflags='-xCORE-AVX2 -fprotect-parens -g3 -traceback -assume nan_compares -assume ieee_compares'`
2. `fflags='-xCORE-AVX2 -fprotect-parens -g3 -assume nan_compares -traceback -assume ieee_compares'`
So the flags haven't changed, but the ordering has, which results in a different `spec` and therefore hash.
### Information on your system
* **Spack:** 0.22.2 (d7cf46c839d49af84dac543cf7bd315e6df3ae9b)
* **Python:** 3.6.8
* **Platform:** linux-rocky8-cascadelake
* **Concretizer:** clingo
Note that we're using *very* lightly updated version of 0.22.2 to backport some package fixes
https://github.com/spack/spack/compare/releases/v0.22...ACCESS-NRI:spack:releases/v0.22
These are builds for the `gadi` HPC system at NCI (Australia). The system specific config is here:
https://github.com/ACCESS-NRI/spack-config/tree/main/v0.22/gadi
and the spack-packages repo is here
https://github.com/ACCESS-NRI/spack-packages
### General information
- [x] I have run `spack debug report` and reported the version of Spack/Python/Platform
- [x] I have searched the issues of this repo and believe this is not a duplicate
- [x] I have run the failing commands in debug mode and reported the output
Seems like it has been acknowledged as something to be fixed?
Aidan
(Aidan Heerdegen, ACCESS-NRI Release Team Lead)
3 June 2025 06:09
22
As a work-around to above I’ve tried to use the spack hash
to force package reuse as recommended in a previous telecom, but this does not seem to work
opened 01:12PM - 18 Jul 23 UTC
bug
concretization
impact-medium
### Steps to reproduce
```console
$ # install some package
$ spack install fi… ndutils%gcc@9.4.0
[...]
$ spack find -ldv
-- linux-ubuntu20.04-x86_64_v3 / gcc@9.4.0 ----------------------
akqxr5c findutils@4.9.0 build_system=autotools patches=440b954
==> 1 installed package
$ # create an environment
$ spack env create test
[...]
$ # add the known findutils version
$ spack -e test add findutils/akqxr5c
$ # add something that depends on it with a different compiler (just to trigger the problem)
$ spack -e test add flex%gcc@11.4.0
$ # This results in the following simple environment spack.yaml:
$ cat $SPACK_ROOT/var/spack/environments/test/spack.yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
# add package specs to the `specs` list
specs:
- findutils/akqxr5c
- flex%gcc@11.4.0
view: true
concretizer:
unify: true
# concretize with fresh flag (to trigger the problem)
$ spack -e test concretize -U
==> Concretized findutils/akqxr5c
- pxmo3cc flex@2.6.3%gcc@11.4.0+lex~nls build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
- xowvb7r ^bison@3.8.2%gcc@11.4.0 build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
- dl4cry5 ^perl@5.36.0%gcc@11.4.0+cpanm+open+shared+threads build_system=generic arch=linux-ubuntu20.04-x86_64_v3
- k2fvyiq ^berkeley-db@18.1.40%gcc@11.4.0+cxx~docs+stl build_system=autotools patches=26090f4,b231fcc arch=linux-ubuntu20.04-x86_64_v3
- prfn7g7 ^bzip2@1.0.8%gcc@11.4.0~debug~pic+shared build_system=generic arch=linux-ubuntu20.04-x86_64_v3
- vpjhxv6 ^gdbm@1.23%gcc@11.4.0 build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
- xxolw6e ^readline@8.2%gcc@11.4.0 build_system=autotools patches=bbf97f1 arch=linux-ubuntu20.04-x86_64_v3
- umdrpve ^ncurses@6.4%gcc@11.4.0~symlinks+termlib abi=none build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
- t2ic332 ^pkgconf@1.9.5%gcc@11.4.0 build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
- jg4hpwc ^zlib@1.2.13%gcc@11.4.0+optimize+pic+shared build_system=makefile arch=linux-ubuntu20.04-x86_64_v3
- fam3ymf ^diffutils@3.9%gcc@11.4.0 build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
- vulkfaz ^libiconv@1.17%gcc@11.4.0 build_system=autotools libs=shared,static arch=linux-ubuntu20.04-x86_64_v3
- zzi557h ^findutils@4.9.0%gcc@11.4.0 build_system=autotools patches=440b954 arch=linux-ubuntu20.04-x86_64_v3
- ubuuf53 ^m4@1.4.19%gcc@11.4.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-ubuntu20.04-x86_64_v3
- 6gsrgnj ^libsigsegv@2.14%gcc@11.4.0 build_system=autotools arch=linux-ubuntu20.04-x86_64_v3
```
I have a similar case in a more complex environment with an explicit hash for llvm where spack concretizes a different llvm:
```console
$ spack -e PrgEnv-llvm16-mpich concretize
==> Starting concretization pool with 16 processes
==> Environment concretized in 23.61 seconds.
==> Concretized llvm/wuwxxxqrm3ync3lkgad72yyn2pax7es4
- aze3pqz llvm@16.0.6%gcc@13.1.0+clang+compiler-rt~cuda+flang~gold+internal_unwind~ipo+libcxx~link_llvm_dylib+lld+lldb+llvm_dylib~mlir+omp_as_runtime~omp_debug~omp_tsan+polly~python~split_dwarf~z3~zstd build_system=cmake build_type=Release generator=ninja shlib_symbol_version=none targets=none version_suffix=none arch=linux-ubuntu20.04-x86_64_v3
[...]
- t6acmue ^ninja@1.11.1%gcc@13.1.0+re2c build_system=generic arch=linux-ubuntu20.04-x86_64_v3
[...]
```
because it chooses to recompile ninja with a different compiler: so there is no problem here using the specified llvm version.
And if there was a problem, this should abort with an error and not silently continue with a different hash.
This worked completely as expected in v0.19.2 with the same spack.yaml (or steps) from above with `- name/hash` lines.
Thinks for looking into this!
### Error message
_No response_
### Information on your system
* **Spack:** 0.20.1 (e8658d6493887ef702dd38f0e9ee5870a1651c1e)
* **Python:** 3.8.10
* **Platform:** linux-ubuntu20.04-icelake
* **Concretizer:** clingo
### General information
- [X] I have run `spack debug report` and reported the version of Spack/Python/Platform
- [X] I have searched the issues of this repo and believe this is not a duplicate
- [X] I have run the failing commands in debug mode and reported the output
See
harshula
(Harshula)
29 June 2025 23:28
23
Can a variant support an arbitrary string as user input? e.g. variant(var, default="none", description=var, values="*", multi=False)
Answer: Dynamic variants: we don’t seem to document this anywhere I can find, and I don’t see any examples in our builtin repo, but we do have a test which basically does what you are doing in spack-packages/packages/um/package.py at 9e984d69c91580748fc05b5af46dd5a9566f565a · ACCESS-NRI/spack-packages · GitHub , so we are enforcing it at the test level (FWIW that test is called test_wild_card_valued_variants_equivalent_to_str
)
harshula
(Harshula)
4 July 2025 02:05
24
Can the compiler wrapper output be put in the .spack
directory when a standard spack install
is executed? We are using Spack v0.22 and we need to run spack -d install
and the output (spack-cc*.out) files are in the working directory.