Fixes#3428
Users can run 'spack compiler find' to automatically initialize their
compilers.yaml configuration file. It also turns out that Spack will
implicitly initialize the compilers configuration file as part of
detecting compilers if none are found (so if a user were to attempt to
concretize a spec without running 'spack compiler find' it would not
fail). However, in this case Spack was overlooking its own implicit
initialization of the config files and would report that no new
compilers were found. This commit removes implicit initialization when
the user calls 'spack compiler find'.
This did not surface until #2999 because the 'spack compiler' command
defaulted to using a scope 'user/platform' that was not accounted for
in get_compiler_config (where the implicit initialization logic
predates the addition of this new scope); #2999 removed the scope
specification when checking through config files, leading to the
implicit initialization.
* hwloc: Add missing dependencies
- add several missing dependencies
- add variants for various features
- add new version 1.11.6
* hwloc: Add descriptions to variants
* New package pocl
* pocl: Update dependencies, add self-test
* pocl: Don't require LLVM shared libraries
LLVM build fails with shared libraries.
* Add patch
* Update
* Update
* Make build and install work; install test still fails
* Split pocl into pocl proper and pocl-test
* Add debug output
* pocl: Update to 0.14-rc
* pocl: Correct flake8 error
* pocl: Heed code review recommendations
* pocl: Add newline at end of file
* pocl: Correct flake8 error
I don’t want to use an even longer line by putting the whole variant declaration onto a single line, nor do I think that having an overlong line and adding `# noqa` at the end is more readable than splitting a string over three lines.
* pocl: Correct dependency type for libtool
Previously, this would fail with a NoSuchMethodError:
class Package(object):
# this is the default implementation
def some_method(self):
...
class Foo(Package):
@when('platform=cray')
def some_method(self):
...
@when('platform=linux')
def some_method(self):
...
This fixes the implementation of `@when` so that the superclass method
will be invoked when no subclass method matches.
Adds tests to ensure this works, as well.
* Add paths to PKG_CONFIG_PATH to find cray .pc file
Adds two paths: /usr/lib64/pkgconfig and /usr/local/lib64/pkgconfig.
cray pkg-config looks at two different paths which are not included
in PKG_CONFIG_PATH environment variable. This PR addresses #3167.
* Flake8 fixes
* flake8 fix again
* default scope for config command is made consistent with cmd/__init__ default
* dont specify a scope when looking for compilers with a matching spec (since compiler concretization is scope-independent)
* config edit should default to platform-specific file only for compilers
* when duplicate compiler specs are detected, the exception raised now points the user to the files where the duplicates appear
* updated error message to emphasize that a spec is duplicated (since multiple specs can reference the same compiler)
* 'spack compilers' is now also broken down into sections by os and target
* Added tests for new compiler methods