Skip to content

Spack environments in uberenv: handling of compiler flags #117

@adrienbernede

Description

@adrienbernede

I am trying to switch to Uberenv with Spack environments.
I made the necessary changes in Radiuss Spack Configs, and for the most part, it works seamlessly.

However, there is one corner case I would like to share with you, to see if you know something about it:

I am getting the following error with one of my specs:

==> Added repo with namespace 'llnl.radiuss'.
[adding spack package]
[exe: /dev/shm/lassen646-1247741/spack/bin/spack -D /dev/shm/lassen646-1247741/spack_env add 'umpire@develop~shared +asan +sanitizer_tests +tools tests=basic %[email protected] cxxflags==-fsanitize=address']
==> Adding umpire@develop%[email protected] cxxflags=="-fsanitize=address" +asan+sanitizer_tests~shared+tools tests=basic to environment /dev/shm/lassen646-1247741/spack_env
[calling spack develop]
[exe: /dev/shm/lassen646-1247741/spack/bin/spack -D /dev/shm/lassen646-1247741/spack_env develop --no-clone --path=/usr/WS2/umdev/gitlab-runner/umdev/builds/T5vctq-D/011/gitlab/radiuss/Umpire 'umpire@develop~shared +asan +sanitizer_tests +tools tests=basic %[email protected] cxxflags==-fsanitize=address']
==> Configuring spec umpire@develop%[email protected] cxxflags=="-fsanitize=address" +asan+sanitizer_tests~shared+tools tests=basic for development at path /usr/WS2/umdev/gitlab-runner/umdev/builds/T5vctq-D/011/gitlab/radiuss/Umpire
[concretizing spack env]
[exe: /dev/shm/lassen646-1247741/spack/bin/spack -D /dev/shm/lassen646-1247741/spack_env concretize --fresh ]
==> Error: --gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 -fsanitize=address does not satisfy -fsanitize=address

Here is my interpretation:
The compiler I ask for is defined with cxxflags: --gcc-toolchain=/usr/tce/packages/gcc/gcc-8.3.1 flags, and in my spec, I ask for cxxflags==-fsanitize=address.
Before switching to environments, both would combine. The consequence being that I could define both generic flags in the compiler definition, and specific ones in the spec.
With environments it looks like I can’t do the same.

Is this a known limitation? Is there a work around?

I found this issue with [email protected], I can see it with [email protected] too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions