Commit graph

10097 commits

Author SHA1 Message Date
Todd Gamblin
4210f839e2 cc: restore ccache support in the wrapper, add a regression test
- Add back ccache support to the wrapper.
- Add a regression test to make sure ccache is working properly.
2018-08-08 01:51:51 -07:00
Todd Gamblin
62089d43ef cc: run shellcheck linter on the cc compiler script, minor cleanup
- This corrects most of the issues found by shellcheck

- This also uses ':' as the delimiter for SPACK_SYSTEM_DIRS, for
  consistency with other variables.
2018-08-08 01:51:51 -07:00
Todd Gamblin
b84067f6db cc: don't use sed to filter system directories
- filtering using sed causes most builds to slow down quite a bit, as the
  compiler wrapper has to run sed many times, and *it* runs many times

- do the system directory parsing directly in bash
2018-08-08 01:51:51 -07:00
Todd Gamblin
0e81f6cba5 refactor: clean up and fix the cc test
- Add tests to ensure that RPATHs are not added in cc mode, which can
  cause some builds to fail.

- Change cc.py to use pytest style

- Instead of writing out all the flags, break the flags down into
  variables so that it's easy to read what each test is supposed to
  check. This should make cc.py more maintainable in the future.
2018-08-08 01:51:51 -07:00
Todd Gamblin
c8fb9b5479 bugfix: cc should not add -L or -Wl,-rpath in compile-only mode
- Adding -L and -Wl,-rpath to compile-only command lines ("cc mode" or
  "-c") causes clang (if not also other compilers) to emit warnings that
  confuse configure systems.

- Clang will print warnings about unused command-line arguments.

- This fix ensures that -L and -Wl,-rpath are not added if the compile
  line is just building an object file with -c

- This also cleans up the cc script in several places.
2018-08-08 01:51:51 -07:00
Gregory Becker
683c7fbf3b Restore cc: package search paths come before dependency paths (#4692)
Spack currently prepends include paths, library paths, and rpaths to the
compile line.  This causes problems when a header or library in the package
has the same name as one exported by one of its dependencies.  The
*dependency's* header will be preferred over the package's, which is not
what most builds expect.  This also breaks some of our production codes.

This restores the original cc behavior (from *very* early Spack) of parsing
compiler arguments out by type (`-L`, `-I`, `-Wl,-rpath`) and reconstituting
the full command at the end.

`<includes> <other_args> <library dirs> <rpaths>`

This differs from the original behavior in one significant way, though: it
*appends* the library arguments so that dependency libraries do not shadow
those in the build.

This is safe because semantics aren't affected by *interleaving* `-I`, `-L`,
and `-Wl,-rpath` arguments with others, only with each other (so the order of
two `-L` args affects the search path, but we search for all libraries on the
command line using the same search path).

We preserve the following:
1. Any system directory in the paths will be listed last.
2. The root package's include/library/RPATH flags come before flags of the
   same type for any dependency.
3. Order will be preserved within flags passed by the build (except system
   paths, which are moved to be last)
4. Flags for dependencies will appear between the root flags and the system
   flags, and the flags for any dependency will come before those for *its*
   dependencies (this is for completeness -- we already guarantee this in
   `build_environment.py`)
2018-08-08 01:51:51 -07:00
Mark W. Krentel
f152063898 elfutils: update version and add variants (#8891)
* elfutils: update version and add variants

Add latest version 0.173.

Add variants bzip2, xz and zlib to support reading compressed DWARF
sections, default True.

Move maintainer-mode to a variant with default False.  This is only
useful for developers who want to modify the source for generated
files.

* Add dependency on zlib for reading compressed DWARF sections.

Add variants to use bzip2 and xz for compressed sections.

Remove maintainer mode and the dependencies on flex and bison.
These are not used for one-time builds.

Be sure to squash both the commits and the commit messages.
2018-08-07 14:04:05 -05:00
Micheal Quinn
203bd555a4 Fixing the addition curly brackets to conform to the rest of the templates usage of a literal curly bracket 2018-08-07 19:56:11 +02:00
Micheal Quinn
d163be6a13 Adding logic to the autoload if statement so it only fire if the module is being loaded. 2018-08-07 19:56:11 +02:00
cedricchevalier19
3301e21f06 Fix performance issue when compiling. (#8828)
* Fix performance issue when compiling.

Spack was doing active wait when compiling, spoiling one core.
My fix consists in not setting any timeout for select, instead of
the previous 0 second.

* Fix comments about select.select timeout
2018-08-07 09:13:07 -07:00
Adam J. Stewart
79e7359f4d Add libs attribute to mesa and mesa-glu packages (#8904)
Also fix dependency version in glvis package.
Fixes build errors mentioned in #8454.
2018-08-07 10:18:05 +02:00
Paul Chelarescu
6ef2eb8f7e libstdc++ detection uses os.path.realpath instead of os.readlink (#8865) 2018-08-06 22:30:29 -07:00
Geoffrey Malcolm Oxberry
e380b08bab spack general packages.yaml defaults: add unwind
This commit adds 'libunwind' as the default 'unwind' provider in
spack. This preference should be overridden by the
darwin/packages.yaml file on macOS. Continues the changes discussed in
2018-08-06 22:01:50 -07:00
Geoffrey Malcolm Oxberry
4f251345fb caliper: update to use unwind virtual package 2018-08-06 22:01:50 -07:00
Geoffrey Malcolm Oxberry
6d92a88eb4 gperftools: use unwind virtual package 2018-08-06 22:01:50 -07:00
Geoffrey Malcolm Oxberry
f395aaa71d mfem+libunwind: use "unwind" virtual package 2018-08-06 22:01:50 -07:00
Geoffrey Malcolm Oxberry
ec0050a1bb darwin packages.yaml defaults: add unwind provider
This commit adds default unwind providers to the default packages.yaml
for darwin. Compiler versions are supplied with the apple-unwind
package so that apple-unwind is only used with Apple's clang fork, and
not with LLVM's clang.
2018-08-06 22:01:50 -07:00
Geoffrey Malcolm Oxberry
163fc4cd18 apple-libunwind: new package, provides unwind
This commit continues the changes discussed in #8823 by creating a new
"apple-libunwind" placeholder package that supplies instructions for
how to configure packages.yaml to register Apple's libunwind
implementation with spack. This package also provides the "unwind"
virtual package representing the libunwind base API. The clang-apple
compiler version should be specified in packages.yaml so that
apple-unwind is only used with Apple's clang compiler, not the stock
LLVM compiler.
2018-08-06 22:01:50 -07:00
Geoffrey Malcolm Oxberry
853a3f14c7 Make libunwind provider of unwind virtual pkg
This commit begins addressing the ideas discussed in #8823. The
libunwind library now provides the "unwind" virtual package, which
represents the "libunwind base API" common to LLVM libunwind, Apple's
LLVM libunwind, and non-GNU libunwind.
2018-08-06 22:01:50 -07:00
Levi Baber
ea6918c1bf py-crossmap: needs py-setuptools (#8898)
* py-crossmap: needs py-setuptools

* py-crossmap: additional deps

* py-crossmap: make bx build/run
2018-08-06 17:43:14 -05:00
Reid Priedhorsky
ed9a1b7a45 add Charliecloud 0.9.1 (#8902) 2018-08-06 17:43:00 -05:00
Adam J. Stewart
5f10d9239b Remove default variant bug from list of known issues (#8900) 2018-08-06 16:56:45 -04:00
George Hartzell
4e985051c0 Docstring typo: builing -> building (#8896) 2018-08-06 13:36:57 -04:00
健美猞猁
a816397322 Bump R to v3.5.1. (#8895) 2018-08-06 11:16:27 -05:00
Sergey Kosukhin
7cc11debdd Libtool: version 'develop' (#8894)
* libtool: add version 'develop'.

* libtool: patch: correct parsing of compiler output when collecting predeps and postdeps.
2018-08-06 10:43:26 -05:00
Sajid Ali
3fc1a65867 modified: var/spack/repos/builtin/packages/py-pytest/package.py (#8890) 2018-08-06 09:21:49 -05:00
Thomas Roehl
377e957f3b LIKWID: Switch to perf_event backend to allow user installations but with limited features (#8886)
* Switch to perf_event backend to allow user installations but with limited features.

* Fix flake8 issues

* Fix flake8 issues remove filter for INSTALL_CHOWN

* Incorporate the comments
2018-08-06 09:21:30 -05:00
健美猞猁
4dc8936b63 Bump mvapich2 to the latest v2.3 release. (#8892) 2018-08-06 12:03:33 +02:00
George Hartzell
9c2c6c7f7e Add unzip runtime dependency to lua package (#8831)
* Add unzip to lua-luaposix

I ended up on an [Ubuntu] system that hadn't had unzip employed
and discovered lua-luaposix requires it (while buildig Lmod).

Closes #8533

* Move unzip prereq to lua, type=run

Rather than touching up each of the lua rocks (packages)
that need unzip, make it available as a run dependency in
lua.

Tested by building lmod on a minimal Ubuntu system.
2018-08-05 13:26:22 -05:00
Adam J. Stewart
7e0bd152b7 Generate coverage reports for all unit and build tests 2018-08-04 21:18:49 -07:00
Todd Gamblin
5cc2309330 revert cd9691de5 (#4692) while we work on a fix. 2018-08-04 20:31:55 -07:00
Christoph Junghans
abd1dfc333 kim-api: initial commit (#8873)
* kim-api: initial commit

* Update package.py
2018-08-04 16:47:35 -05:00
Tin Huynh
eb39d0c729 Package/flang: Updated to use own version of llvm (#8766)
Flang now uses its own version of llvm and clang (called flang-driver). This is
handled by adding flang-specific versions of the LLVM package and updates flang
to depend on those versions.
2018-08-03 20:35:09 -04:00
Todd Gamblin
b5071312c4 spack spec: no extra newline with --yaml; error with no specs
- `spack spec` now returns an error if given no specs

- removed superfluous trailing newline from `spack spec --yaml` output
  (only one newline now)
2018-08-03 15:18:34 -05:00
Christoph Junghans
c73d237d08 simplemoc: version bump (#8884) 2018-08-03 14:31:06 -05:00
Mark W. Krentel
69641851ea libmonitor: update version and add variant to configure (#8834)
* libmonitor: update to version 2018.07.18 and add variant to configure
for hpctoolkit.

* Specify the @2013.02.18 version in cbtf-argonavis and cbtf-krell,
since this is no longer the default version.  These are the only
other packages that use libmonitor.
2018-08-03 14:00:12 -04:00
Adam J. Stewart
4de301ebf2 Update bash completion with new spack arch flags 2018-08-03 11:32:08 -05:00
Adam J. Stewart
4f76e80925 Add spack arch --operating-system and --target flags 2018-08-03 11:32:08 -05:00
Abhinav Bhatele
febfa60935 Update broken codesign.llnl.gov urls (#8880)
* amg2013: fix homepage and url

* kripke: fix homepage and url

* lcals: fix homepage and url

* lulesh: fix homepage and move to git

* urls on single line
2018-08-03 10:25:10 -05:00
Geoffrey Oxberry
0c01f42a9f arpack: add version 3.6.2 (#8881) 2018-08-03 09:53:44 -05:00
健美猞猁
8e1cc26be7 dmd: a new package. (#8826)
* dmd: a new package.

* Install src for dmd.

* Install src to prefix.src.

* Replace copy_tree with install_tree.
2018-08-02 22:07:01 -05:00
Todd Gamblin
43c77ac3cb libdwarf: remove use of hide_files()
- This was a nasty workaround due to the way our compiler wrappers used
  to work.  We don't want to have to modify our elfutils installation to
  install libdwarf.

- Since cd9691de5, we no longer need this because the package will always
  come before dependencies in our include order.
2018-08-02 19:00:52 -07:00
dorier
1ec06e6111 new package: XSD (#8784) 2018-08-02 16:28:19 -04:00
Stephen Herbein
3b0983a217 flux: update flux-core package and add a flux-sched package (#8818)
Renames the flux package to flux-core and updates its dependencies, versions,
and variants. Adds a flux-sched package.

This also updates two flux-core dependencies: lua and czmq.
2018-08-02 16:20:55 -04:00
Dan FitzGerald
e554add64b Change MUMPS to allow it to build with clang+xlf compiler combination (#8388)
The mumps package was unable to build using the llvm clang compiler
suite, as it defaulted to using mpif90 for linking and mpif90 cannot
be used for linking shared library code. This PR modifies the MUMPS
package.py to allow it to use IBM XL Fortran for linking. It also
eliminates the need for the existing MUMPS IBM XL patches by having
package.py specify the compiler-dependent "shared" flag to the
linker, and always using the compiler suite's Fortran compiler
for linking.
2018-08-02 14:23:37 -04:00
Tom Merrick
51aa604ed2 Fix openmpi to work with slurm/pmi and mxm (#8427)
* Add binutils+libiberty for mxm fabric
* Help find the pmi library when using the slurm scheduler
2018-08-02 14:06:39 -04:00
Levi Baber
c94109c34c Package py-biom-format fixes (#8727)
* py-biom-format: needs py-setuptools at runtime
* py-biom-format: needs py-pyqi
2018-08-02 13:51:51 -04:00
Yifan Zhu
6f2a739053 New package: GRNBoost (#8763) 2018-08-02 13:46:36 -04:00
Michael Kuhn
12fb1cdbe5 Replace pkg-config dependencies with virtual (#8783)
Several packages specified pkg-config as a dependency, which is
a specific implementation of the pkgconfig virtual. Most packages
do not request a specific implementation. The current concretizer
may choose a different implentation of pkgconfig for the nonspecific
dependents, which conflicts with the request for pkg-config. This
replaces all requests for a specific implementation of pkgconfig
with the virtual package as a temporary solution to the issue.
2018-08-02 13:29:04 -04:00
Matthias Wolf
b1c35e1e13 package neovim: add info for version 0.3.1 (#8866) 2018-08-02 13:04:59 -04:00