apple-clang: add correct path to compiler wrappers (#21662)

Follow-up to #17110

### Before
```bash
CC=/Users/Adam/spack/lib/spack/env/clang/clang; export CC
SPACK_CC=/usr/bin/clang; export SPACK_CC
PATH=...:/Users/Adam/spack/lib/spack/env/apple-clang:/Users/Adam/spack/lib/spack/env/case-insensitive:/Users/Adam/spack/lib/spack/env:...; export PATH
```

### After
```bash
CC=/Users/Adam/spack/lib/spack/env/clang/clang; export CC
SPACK_CC=/usr/bin/clang; export SPACK_CC
PATH=...:/Users/Adam/spack/lib/spack/env/clang:/Users/Adam/spack/lib/spack/env/case-insensitive:/Users/Adam/spack/lib/spack/env:...; export PATH
```

`CC` and `SPACK_CC` were being set correctly, but `PATH` was using the name of the compiler `apple-clang` instead of `clang`. For most packages, since `CC` was set correctly, nothing broke. But for packages using `Makefiles` that set `CC` based on `which clang`, it was using the system compilers instead of the compiler wrappers. Discovered when working on `py-xgboost@0.90`.

An alternative fix would be to copy the symlinks in `env/clang` to `env/apple-clang`. Let me know if you think there's a better way to do this, or to test this.
This commit is contained in:
Adam J. Stewart 2021-02-17 17:54:50 -06:00 committed by GitHub
parent c11c5df738
commit d04f9a1ae3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -417,7 +417,7 @@ def set_build_environment_variables(pkg, env, dirty):
# directory. Add that to the path too. # directory. Add that to the path too.
env_paths = [] env_paths = []
compiler_specific = os.path.join( compiler_specific = os.path.join(
spack.paths.build_env_path, pkg.compiler.name) spack.paths.build_env_path, os.path.dirname(pkg.compiler.link_paths['cc']))
for item in [spack.paths.build_env_path, compiler_specific]: for item in [spack.paths.build_env_path, compiler_specific]:
env_paths.append(item) env_paths.append(item)
ci = os.path.join(item, 'case-insensitive') ci = os.path.join(item, 'case-insensitive')