summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-09-26External: add macholib and altgraph needed to relocate Mach-o binaries on ↵Patrick Gartung26-0/+5433
Linux (#12909)
2019-09-26Update target comparison semantic for a few packages (#12947)Massimiliano Culpo6-14/+14
Use spec.target.family instead of spec.architecture.target
2019-09-26Removed references to '(-march|-mtune|-mcpu)=native' (#12948)Massimiliano Culpo11-37/+10
Now that Spack injects microarchitecture specific optimizations for the selected target, packages should avoid adding flags that could step over those.
2019-09-26parsimonator: simplified recipe by removing SIMD variants (#12949)Massimiliano Culpo1-49/+11
Now the support for SSE3 or AVX is tested on the selected target
2019-09-25New package: flibcpp (Fortran bindings to C++ standard library) (#12926)Seth R. Johnson1-0/+44
2019-09-25butterflypack package: add version 1.0.3 (#12927)liuyangzhuan1-1/+2
2019-09-25interproscan package: add version 4.8, patch for version 5 (#12897)Glenn Johnson3-3/+222
This PR adds interproscan-4.8, which has a completely different build system than version 5. Note that this builds for running on a host as opposed to a queue system. I am fairly certain that a queue system can be configured later. This PR also adds a patch for intrproscan-5 to build when the user building the packages has a large GID by setting posix mode for tar.
2019-09-25libspatialite package: add version 3.0.1 and missing dependencies (#12843)Sinan1-3/+7
2019-09-25py-imageio package: add versions 2.4.1 and 2.5.0 (#12884)Sinan1-0/+2
2019-09-25llvm, mesa: update target comparison semantics (#12914)Matthieu Dorier2-7/+10
* llvm: fixed issues with syntax and formatting * use spec.architecture.target.family * use spec.target instead of spec.architecture.target * mesa: use == instead of __contains__
2019-09-25libflame: fix macOS build (#12950)Adam J. Stewart2-0/+241
2019-09-25openblas: fixed a query to target family (#12910)Matthieu Dorier1-1/+1
2019-09-25portage: fix RelWithDebInfo build (#12944)Christoph Junghans2-0/+19
2019-09-25kokkos-kernels: initial commit (#12934)Christoph Junghans2-0/+106
2019-09-24Upcxx package: remove warning, add version 2019.9.0 (#12880)Mathias Jacquelin1-38/+28
A function added to this package ran as part of importing it and printed a warning for most Spack invocations, this removes the warning message. Also: * Use compilers directly instead of Spack compiler wrappers (since references to the compiler are embedded in text and binary files of the installation) * Add 'cross' variant for setting CROSS environment variable for build * Set UPCXX_INSTALL for generated module files * Set UPCXX_GASNET_CONDUIT/UPCXX_NETWORK in generated module files on Cray systems * Also set UPCXX_NETWORK in build environment for Cray systems
2019-09-24Fix "specific target" detection in Python 3 (#12906)Adam J. Stewart1-8/+5
The output of subprocess.check_output is a byte string in Python 3. This causes dictionary lookup to fail later on. A try-except around this function prevented this error from being noticed. Removed this so that more errors can propagate out.
2019-09-24heaptrack: added new package at version 1.1.0 (#12844)Simo Tuomisto1-0/+36
2019-09-24Change get_patchelf to immediately return patchelf path if found (#12925)Patrick Gartung1-7/+7
2019-09-24Add missing dependency to perl-xml-parser (#12903)Glenn Johnson1-0/+1
This PR adds the following dependency: + depends_on('perl-libwww-perl', type=('build', 'run'))
2019-09-24Added missing dependencies for perl-list-moreutils (#12900)Glenn Johnson1-0/+3
The following dependencies were added: + depends_on('perl-exporter-tiny', type=('build', 'run')) + depends_on('perl-list-moreutils-xs', type=('build', 'run'))
2019-09-24Added depencies to perl-libwww-perl (#12899)Glenn Johnson1-0/+14
The following dependencies are needed for perl-libwww-perl according to https://metacpan.org: + depends_on('perl-encode-locale', type=('build', 'run')) + depends_on('perl-file-listing', type=('build', 'run')) + depends_on('perl-html-parser', type=('build', 'run')) + depends_on('perl-http-cookies', type=('build', 'run')) + depends_on('perl-http-daemon', type=('build', 'run')) + depends_on('perl-http-date', type=('build', 'run')) + depends_on('perl-http-message', type=('build', 'run')) + depends_on('perl-http-negotiate', type=('build', 'run')) + depends_on('perl-lwp-mediatypes', type=('build', 'run')) + depends_on('perl-net-http', type=('build', 'run')) + depends_on('perl-try-tiny', type=('build', 'run')) + depends_on('perl-uri', type=('build', 'run')) + depends_on('perl-www-robotrules', type=('build', 'run'))
2019-09-24Add missing dependencies to perl-http-daemon (#12898)Glenn Johnson1-0/+2
Added the following dependencies: + depends_on('perl-http-date', type=('build', 'run')) + depends_on('perl-module-build-tiny', type='build')
2019-09-24spdlog: added version 1.4.1 (#12917)Axel Huebl1-1/+23
Add newest release with ability to pre-build as shared or static library.
2019-09-24Fujitsu compilers: added 'verbose_flag' method (#12922)t-karatsu1-0/+4
2019-09-24bugfix: use string keys to set preferred targets (#12921)Todd Gamblin4-9/+32
Preferred targets were failing because we were looking them up by Microarchitecture object, not by string. - [x] Add a call to `str()` to fix target lookup. - [x] Add a test to exercise this part of concretization. - [x] Add documentation for setting `target` in `packages.yaml`
2019-09-23AMD: fix architecture hierarchy (zen) (#12913)Massimiliano Culpo3-17/+45
* microarchitectures: zen starts from x86_64, not from excavator * Unit tests: fixed a test that is wrong with the new modeling * microarchitectures: fixed features and inheritance for 15h family bulldozer doesn't inherit from barcelona (10h) + added xop, lwp and tbm instruction sets to the 15h family (it distinguish the family from 17h)
2019-09-23Fix installation permissions on BLIS and libflame libs (#12919)Adam J. Stewart4-3/+80
* Fix installation permissions on BLIS and libflame libs * Fix undefined symbols
2019-09-23Fix detection of Apple Clang 11.0.0 (#12912)Adam J. Stewart2-1/+6
2019-09-23libceed package: add version 0.5 (#12875)Jed Brown1-2/+3
Also enable vectorization via -O3 for gcc/clang
2019-09-23tests: more template creation tests (#12882)Tamara Dahlgren1-8/+50
Addresses #12804 This PR adds the creation of the remaining (16) templates to ensure we can create them with expected content. The goal is to facilitate catching during testing.
2019-09-23QT package: only enable fontconfig when freetype is enabled (#12574)Seth R. Johnson1-4/+4
The 'fontconfig' option is only valid when freetype is enabled.
2019-09-22externals: add note to jsonschema about modifications (#12895)Todd Gamblin1-1/+3
2019-09-21environment-modules: add version 4.3.1 (#12893)Xavier Delaruelle1-1/+2
2019-09-21externals: avoid importing requests in jsonschemaTodd Gamblin1-4/+1
Spack doesn't need `requests`, and neither does `jsonschema`, but `jsonschema` tries to import it, and it'll succeed if `requests` is on your machine (which is likely, given how popular it is). This commit removes the import to improve Spack's startup time a bit. On a mac with SSD, the import of requests is ~28% of Spack's startup time when run as `spack --print-shell-vars sh,modules` (.069 / .25 seconds), which is what `setup-env.sh` runs. On a Linux cluster where Python is mounted from NFS, this reduces `setup-env.sh` source time from ~1s to .75s. Note: This issue will be eliminated if we upgrade to a newer `jsonschema` (we'd need to drop Python 2.6 for that). See https://github.com/Julian/jsonschema/pull/388.
2019-09-20czmq package: add autoreconf stage (#12846)Paul1-0/+4
2019-09-20charliecloud package: add version 0.11 and test dependency (#12861)Jordan Ogas1-0/+4
2019-09-20New package: py-gast (#12874)Sinan1-0/+18
2019-09-20intel-tbb: fix typo.t-karatsu1-1/+1
2019-09-20py-protobuf package: fix import error for Python 2.x (#12873)Sinan1-0/+8
2019-09-20Add --known-targets to bash completion for arch command (#12887)Glenn Johnson1-1/+1
This PR adds the new --known-targets flag to the `spack arch` command.
2019-09-20Fix how 'gpg --list-secret-keys ...' output is parsedScott Wittenburg2-6/+77
2019-09-20targets: add mic_knl target to microarchitectures.jsonGregory Becker1-0/+37
- This is needed to support Cray machines -- we need an architecture mic_knl > x86_64 - We used Cray's naming scheme for this target to make it work seamlessly with the module-based detection sccheme on Cray. mic_knl is pretty much dead, so this will be the last succh target. We will need to work wtih Cray and other vendors in the future.
2019-09-20targets: adjust packages to use new specific targets semanticsMassimiliano Culpo43-68/+80
Seamless translation from 'target=<generic>' to either - target.family == <generic> (in methods) - 'target=<generic>:' (in directives) Also updated docs to show ranges in directives.
2019-09-20targets: Spack targets can now be fine-grained microarchitecturesMassimiliano Culpo50-540/+3040
Spack can now: - label ppc64, ppc64le, x86_64, etc. builds with specific microarchitecture-specific names, like 'haswell', 'skylake' or 'icelake'. - detect the host architecture of a machine from /proc/cpuinfo or similar tools. - Understand which microarchitectures are compatible with which (for binary reuse) - Understand which compiler flags are needed (for GCC, so far) to build binaries for particular microarchitectures. All of this is managed through a JSON file (microarchitectures.json) that contains detailed auto-detection, compiler flag, and compatibility information for specific microarchitecture targets. The `llnl.util.cpu` module implements a library that allows detection and comparison of microarchitectures based on the data in this file. The `target` part of Spack specs is now essentially a Microarchitecture object, and Specs' targets can be compared for compatibility as well. This allows us to label optimized binary packages at a granularity that enables them to be reused on compatible machines. Previously, we only knew that a package was built for x86_64, NOT which x86_64 machines it was usable on. Currently this feature supports Intel, Power, and AMD chips. Support for ARM is forthcoming. Specifics: - Add microarchitectures.json with descriptions of architectures - Relaxed semantic of compiler's "target" attribute. Before this change the semantic to check if a compiler could be viable for a given target was exact match. This made sense as the finest granularity of targets was architecture families. As now we can target micro-architectures, this commit changes the semantic by interpreting as the architecture family what is stored in the compiler's "target" attribute. A compiler is then a viable choice if the target being concretized belongs to the same family. Similarly when a new compiler is detected the architecture family is stored in the "target" attribute. - Make Spack's `cc` compiler wrapper inject target-specific flags on the command line - Architecture concretization updated to use the same algorithm as compiler concretization - Micro-architecture features, vendor, generation etc. are included in the package hash. Generic architectures, such as x86_64 or ppc64, are still dumped using the name only. - If the compiler for a target is not supported exit with an intelligible error message. If the compiler support is unknown don't try to use optimization flags. - Support and define feature aliases (e.g., sse3 -> ssse3) in microarchitectures.json and on Microarchitecture objects. Feature aliases are defined in targets.json and map a name (the "alias") to a list of rules that must be met for the test to be successful. The rules that are available can be extended later using a decorator. - Implement subset semantics for comparing microarchitectures (treat microarchitectures as a partial order, i.e. (a < b), (a == b) and (b < a) can all be false. - Implement logic to automatically demote the default target if the compiler being used is too old to optimize for it. Updated docs to make this behavior explicit. This avoids surprising the user if the default compiler is older than the host architecture. This commit adds unit tests to verify the semantics of target ranges and target lists in constraints. The implementation to allow target ranges and lists is minimal and doesn't add any new type. A more careful refactor that takes into account the type system might be due later. Co-authored-by: Gregory Becker <becker33.llnl.gov>
2019-09-20targets: first pass at target detection for linuxGregory Becker12-17/+350
Add llnl.util.cpu_name, with initial support for detecting different microarchitectures on Linux. This also adds preliminary changes for compiler support and variants to control the optimizatoin levels by target. This does not yet include translations of targets to particular compilers; that is left to another PR. Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2019-09-19Put back the use of otool and install_name_tool when running on macOS. Only ↵Patrick Gartung4-68/+112
use machotools on linux. (#12867) Move verbose messages to debug level get_patchelf should return None for test platform as well because create_buildinfo invokes patchelf to get rpaths.
2019-09-19CLAW Compiler: added version 2.0.1 (#12878)Valentin Clement (バレンタイン クレメン)1-0/+1
2019-09-18Ignore git *.orig files and emacs backup filesGregory Becker1-1/+2
2019-09-18blis: fix darwin install name (#12869)Adam J. Stewart1-1/+7
2019-09-18googletest: fix darwin install name (#12871)Adam J. Stewart1-0/+6