Tutorial setup
If you have not done the prior sections, you’ll need to start the docker image:
docker run -it ghcr.io/spack/tutorial:cineca23
and then set Spack up like this:
git clone --depth=100 --branch=releases/v0.19 https://github.com/spack/spack
. spack/share/spack/setup-env.sh
spack tutorial -y
spack bootstrap now
spack compiler find
See the Basic Installation Tutorial for full details on setup. For more
help, join us in the #tutorial
channel on Slack – get an
invitation at spackpm.herokuapp.com
Package Creation Tutorial¶
This tutorial walks you through the steps for creating and
debugging a simple Spack package. We will develop and debug
a package using an iterative approach in order to gain more
experience with additional Spack commands. For consistency,
we will create the package for mpileaks
, which is an MPI
debugging tool.
What is a Spack Package?¶
Spack packages are installation scripts, which are essentially recipes for building software.
They define properties and behavior of the build, such as:
- where to find and how to retrieve the software;
- its dependencies;
- options for building from source; and
- build commands.
Once we’ve specified a package’s recipe, users can ask Spack to build the software with different features on any of the supported systems.
Caveats¶
This tutorial assumes you have a working version of Spack installed. Refer to the Getting Started guide for information on how to install Spack.
We’ll be writing code so it is assumed you have at least a beginner’s-level familiarity with Python.
Being a tutorial, this document can help you get started with packaging,
but it is not intended to be complete. Links to additional information
are provided at the bottom of this tutorial.
The example code snippets used in this section can be found at
https://github.com/spack/spack-tutorial under tutorial/examples/packaging
.
Getting Started¶
Before we get started, you need to confirm you have three environment variables set as follows:
SPACK_ROOT
: consisting of the path to your Spack installation;PATH
: including$SPACK_ROOT/bin
(so calls to thespack
command work); andEDITOR
: containing the path of your preferred text editor (so Spack can run it when we modify the package).
The first two variables are automatically set by setup-env.sh
so, if they
aren’t, run the following command:
$ . ~/spack/share/spack/setup-env.sh
or the equivalent for your shell (e.g., csh
, fish
).
In order to avoid modifying your Spack installation with the package we are creating, add a package repository just for this tutorial by entering the following command:
$ spack repo add $SPACK_ROOT/var/spack/repos/tutorial/
==> Added repo with namespace 'tutorial'.
Doing this ensures changes we make here do not adversely affect other parts of the tutorial. You can find out more about repositories at Package Repositories.
Creating the Package File¶
Suppose you want to install software that depends on mpileaks but found Spack did not already have a built-in package for it. This means you are going to have to create one.
Spack’s create command builds a new package from a template by taking the location of the package’s source code and using it to:
- fetch the code;
- create a package skeleton; and
- open the file up in your editor of choice.
Note
An example of creating a package from software with more available versions can be found at Creating and Editing Packages.
The mpileaks
source code is available in a tarball in the
software’s repository (https://github.com/LLNL/mpileaks). Spack
will look at the contents of the tarball and generate a package when we
run spack create
with the URL:
$ spack create --name tutorial-mpileaks https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
==> Using specified package name: 'tutorial-mpileaks'
==> Found 1 version of tutorial-mpileaks:
1.0 https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
==> Fetching https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
==> This package looks like it uses the autotools build system
==> Created template for tutorial-mpileaks package
==> Created package file: /home/spack/spack/var/spack/repos/tutorial/packages/tutorial-mpileaks/package.py
You should now be in your text editor of choice, with the package.py
file open for editing.
Your package.py
file should reside in the tutorial-mpileaks
subdirectory of your tutorial repository’s packages
directory, i.e.,
$SPACK_ROOT/var/spack/repos/tutorial/packages/tutorial-mpileaks/package.py
Take a moment to look over the file.
As we can see from the skeleton contents, shown below, the Spack template:
- provides instructions for how to contribute your package to the Spack repository;
- indicates the software is built with
Autotools
; - provides a docstring template;
- provides an example homepage URL;
- shows how to specify a list of package maintainers;
- specifies the version directive, with checksum, for the software;
- shows a dependency directive example; and
- provides a skeleton
configure_args
method.
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
# ----------------------------------------------------------------------------
# If you submit this package back to Spack as a pull request,
# please first remove this boilerplate and all FIXME comments.
#
# This is a template package file for Spack. We've put "FIXME"
# next to all the things you'll want to change. Once you've handled
# them, you can save this file and test your package like this:
#
# spack install tutorial-mpileaks
#
# You can edit this file again by typing:
#
# spack edit tutorial-mpileaks
#
# See the Spack documentation for more information on packaging.
# ----------------------------------------------------------------------------
from spack import *
class TutorialMpileaks(AutotoolsPackage):
"""FIXME: Put a proper description of your package here."""
# FIXME: Add a proper url for your package's homepage here.
homepage = "https://www.example.com"
url = "https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz"
# FIXME: Add a list of GitHub accounts to
# notify when the package is updated.
# maintainers = ['github_user1', 'github_user2']
version('1.0', sha256='2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825')
# FIXME: Add dependencies if required.
# depends_on('foo')
def configure_args(self):
# FIXME: Add arguments other than --prefix
# FIXME: If not needed delete this function
args = []
return args
Note
The maintainers
field is a comma-separated list of GitHub user
names for those people who are willing to be notified when a change
is made to the package. This information is useful for developers who
maintain a Spack package for their own software and or rely on software
maintained by other people.
Since we are providing a url
, we can confirm the checksum, or sha256
calculation. Exit your editor to return to the command line and use the
spack checksum
command:
$ spack checksum tutorial-mpileaks 1.0
==> Found 1 version of tutorial-mpileaks:
1.0 https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
==> Fetching https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
version("1.0", sha256="2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825")
Note the entire version
directive is provided for your convenience.
We will now fill in the provided placeholders as we:
- document some information about this package;
- add dependencies; and
- add the configuration arguments needed to build the package.
For the moment, though, let’s see what Spack does with the skeleton
by trying to install the package using the spack install
command:
$ spack install tutorial-mpileaks
==> Installing tutorial-mpileaks-1.0-qwtmb4qyczw6g6qswc2yitf4oqruhfw5
==> No binary for tutorial-mpileaks-1.0-qwtmb4qyczw6g6qswc2yitf4oqruhfw5 found: installing from source
==> Fetching https://mirror.spack.io/_source-cache/archive/2e/2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825.tar.gz
==> No patches needed for tutorial-mpileaks
==> tutorial-mpileaks: Executing phase: 'autoreconf'
==> tutorial-mpileaks: Executing phase: 'configure'
==> Error: ProcessError: Command exited with status 1:
'/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-qwtmb4qyczw6g6qswc2yitf4oqruhfw5/spack-src/configure' '--prefix=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-qwtmb4qyczw6g6qswc2yitf4oqruhfw5'
1 error found in build log:
33 checking for mpipgcc... no
34 Checking whether not-found responds to '-showme:compile'... no
35 Checking whether not-found responds to '-showme'... no
36 Checking whether not-found responds to '-compile-info'... no
37 Checking whether not-found responds to '-show'... no
38 /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-qwtmb4qyczw6g6qswc2yitf4oqruhfw5/spack-src/configure: line 4931: Echo: command not found
>> 39 configure: error: unable to locate adept-utils installation
See build log for details:
/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-qwtmb4qyczw6g6qswc2yitf4oqruhfw5/spack-build-out.txt
It clearly did not build. The error indicates configure
is unable
to find the installation location of a dependency.
So let’s start to customize the package to our software.
Adding Package Documentation¶
First let’s fill in the documentation.
Bring mpileaks’ package.py
file back into your $EDITOR
with the
spack edit
command:
$ spack edit tutorial-mpileaks
Let’s make the following changes:
- remove the instructions between dashed lines at the top;
- replace the first
FIXME
comment with a description ofmpileaks
in the docstring; - replace the homepage property with the correct link; and
- uncomment the
maintainers
property and add your GitHub user name.
Note
We will exclude the Copyright
clause in the remainder of
the package snippets here to reduce the length of the tutorial
documentation; however, it is required for published
packages.
Now make the changes and additions to your package.py
file.
The resulting package should contain the following information:
from spack import *
class TutorialMpileaks(AutotoolsPackage):
"""Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes."""
homepage = "https://github.com/LLNL/mpileaks"
url = "https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz"
maintainers = ['adamjstewart']
version('1.0', sha256='2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825')
# FIXME: Add dependencies if required.
# depends_on('foo')
def configure_args(self):
# FIXME: Add arguments other than --prefix
# FIXME: If not needed delete this function
args = []
return args
At this point we’ve only updated key documentation within the package. It won’t help us build the software but the information is now available for review.
Let’s enter the spack info
command for the package:
$ spack info tutorial-mpileaks
AutotoolsPackage: tutorial-mpileaks
Description:
Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes.
Homepage: https://github.com/LLNL/mpileaks
Preferred version:
1.0 https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
Safe versions:
1.0 https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
Deprecated versions:
None
Variants:
Name [Default] When Allowed values Description
======================== ==== ============== ======================================
build_system [autotools] -- autotools Build systems supported by the package
Build Dependencies:
gnuconfig
Link Dependencies:
None
Run Dependencies:
None
Take a moment to look over the output. You should see the following information derived from the package:
- it is an
Autotools
package; - it has the description, homepage, and maintainer(s) we provided;
- it is not externally detectable;
- it has the URL we gave the
spack create
command; - the preferred version was derived from the code;
- the default
Autotools
package installation phases are listed; - the
gnuconfig
build dependency is inherited fromAutotoolsPackage
; - both the link and run dependencies are
None
at this point;
As we fill in more information about the package, the spack info
command will become more informative.
Note
More information on using Autotools
packages is provided in
AutotoolsPackage.
The full list of build systems known to Spack can be found at Build Systems.
More information on the build-time tests can be found at https://spack.readthedocs.io/en/latest/packaging_guide.html#build-time-tests.
Refer to the links at the end of this section for more information.
Now we’re ready to start filling in the build recipe.
Adding Dependencies¶
First we’ll add the dependencies determined by reviewing documentation
in the software’s repository (https://github.com/LLNL/mpileaks). The
mpileaks
software relies on three third-party libraries:
mpi
,adept-utils
, andcallpath
.
Note
Luckily, all of these dependencies are built-in packages in Spack; otherwise, we would have to create packages for them as well.
Bring mpileaks’ package.py
file back up in your $EDITOR
with
the spack edit
command:
$ spack edit tutorial-mpileaks
and add the dependencies by specifying them using the depends_on
directive as shown below:
from spack import *
class TutorialMpileaks(AutotoolsPackage):
"""Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes."""
homepage = "https://github.com/LLNL/mpileaks"
url = "https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz"
maintainers = ['adamjstewart']
version('1.0', sha256='2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825')
depends_on('mpi')
depends_on('adept-utils')
depends_on('callpath')
def configure_args(self):
# FIXME: Add arguments other than --prefix
# FIXME: If not needed delete this function
args = []
return args
Adding dependencies tells Spack that it must ensure these packages are installed before it can build our package.
Note
The mpi
dependency is different from the other two in that it is
a virtual dependency. That means Spack must satisfy the dependency
with a package that provides the mpi
interface, such as openmpi
or mvapich2
.
We call such packages providers. More information on virtual dependencies can be found in the Packaging Guide linked at the bottom of this tutorial.
Let’s check that dependencies are effectively built when we try to install tutorial-mpileaks
:
$ spack install tutorial-mpileaks
==> Installing boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/boost-1.72.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev.spack
==> Extracting boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev from binary cache
==> boost: Successfully installed boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev
Fetch: 0.17s. Build: 4.54s. Total: 4.71s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev
==> Installing pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455.spack
==> Extracting pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455 from binary cache
==> pkgconf: Successfully installed pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
Fetch: 0.02s. Build: 0.23s. Total: 0.26s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
==> Installing ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11/linux-ubuntu18.04-x86_64-gcc-7.5.0-ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj.spack
==> Extracting ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj from binary cache
==> ca-certificates-mozilla: Successfully installed ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
Fetch: 0.03s. Build: 0.23s. Total: 0.26s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
==> Installing berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40/linux-ubuntu18.04-x86_64-gcc-7.5.0-berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4.spack
==> Extracting berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4 from binary cache
==> berkeley-db: Successfully installed berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
Fetch: 0.03s. Build: 0.33s. Total: 0.36s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
==> Installing libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16/linux-ubuntu18.04-x86_64-gcc-7.5.0-libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq.spack
==> Extracting libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq from binary cache
==> libiconv: Successfully installed libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
Fetch: 0.03s. Build: 0.28s. Total: 0.30s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
==> Installing zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13/linux-ubuntu18.04-x86_64-gcc-7.5.0-zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6.spack
==> Extracting zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6 from binary cache
==> zlib: Successfully installed zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
Fetch: 0.03s. Build: 0.23s. Total: 0.26s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
==> Installing libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13/linux-ubuntu18.04-x86_64-gcc-7.5.0-libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf.spack
==> Extracting libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf from binary cache
==> libsigsegv: Successfully installed libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
Fetch: 0.03s. Build: 0.24s. Total: 0.27s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
==> Installing util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd.spack
==> Extracting util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd from binary cache
==> util-macros: Successfully installed util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
Fetch: 0.03s. Build: 0.23s. Total: 0.26s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
==> Installing xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7/linux-ubuntu18.04-x86_64-gcc-7.5.0-xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau.spack
==> Extracting xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau from binary cache
==> xz: Successfully installed xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
Fetch: 0.03s. Build: 0.29s. Total: 0.31s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
==> Installing zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu.spack
==> Extracting zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu from binary cache
==> zstd: Successfully installed zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
Fetch: 0.03s. Build: 0.27s. Total: 0.30s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
==> Installing libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiberty-2.37/linux-ubuntu18.04-x86_64-gcc-7.5.0-libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj.spack
==> Extracting libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj from binary cache
==> libiberty: Successfully installed libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj
Fetch: 0.03s. Build: 0.25s. Total: 0.28s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj
==> Installing ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf.spack
==> Extracting ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf from binary cache
==> ncurses: Successfully installed ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
Fetch: 0.03s. Build: 0.72s. Total: 0.75s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
==> Installing diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s.spack
==> Extracting diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s from binary cache
==> diffutils: Successfully installed diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
Fetch: 0.03s. Build: 0.29s. Total: 0.32s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
==> Installing pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7/linux-ubuntu18.04-x86_64-gcc-7.5.0-pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3.spack
==> Extracting pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3 from binary cache
==> pigz: Successfully installed pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
Fetch: 0.02s. Build: 0.23s. Total: 0.25s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
==> Installing libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e.spack
==> Extracting libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e from binary cache
==> libxml2: Successfully installed libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
Fetch: 0.02s. Build: 0.32s. Total: 0.34s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
==> Installing libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216/linux-ubuntu18.04-x86_64-gcc-7.5.0-libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76.spack
==> Extracting libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76 from binary cache
==> libedit: Successfully installed libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
Fetch: 0.03s. Build: 0.26s. Total: 0.29s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
==> Installing readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa.spack
==> Extracting readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa from binary cache
==> readline: Successfully installed readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
Fetch: 0.03s. Build: 0.28s. Total: 0.31s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
==> Installing m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19/linux-ubuntu18.04-x86_64-gcc-7.5.0-m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b.spack
==> Extracting m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b from binary cache
==> m4: Successfully installed m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
Fetch: 0.03s. Build: 0.28s. Total: 0.30s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
==> Installing bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8/linux-ubuntu18.04-x86_64-gcc-7.5.0-bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6.spack
==> Extracting bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6 from binary cache
==> bzip2: Successfully installed bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
Fetch: 0.03s. Build: 0.25s. Total: 0.28s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
==> Installing gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23/linux-ubuntu18.04-x86_64-gcc-7.5.0-gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq.spack
==> Extracting gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq from binary cache
==> gdbm: Successfully installed gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
Fetch: 0.03s. Build: 0.27s. Total: 0.30s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
==> Installing libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7/linux-ubuntu18.04-x86_64-gcc-7.5.0-libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz.spack
==> Extracting libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz from binary cache
==> libtool: Successfully installed libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
Fetch: 0.03s. Build: 0.26s. Total: 0.29s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
==> Installing tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34/linux-ubuntu18.04-x86_64-gcc-7.5.0-tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w.spack
==> Extracting tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w from binary cache
==> tar: Successfully installed tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
Fetch: 0.04s. Build: 0.33s. Total: 0.36s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
==> Installing perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w.spack
==> Extracting perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w from binary cache
==> perl: Successfully installed perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w
Fetch: 0.04s. Build: 1.66s. Total: 1.70s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w
==> Installing libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16/linux-ubuntu18.04-x86_64-gcc-7.5.0-libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23.spack
==> Extracting libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23 from binary cache
==> libpciaccess: Successfully installed libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
Fetch: 0.03s. Build: 0.24s. Total: 0.26s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
==> Installing gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu.spack
==> Extracting gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu from binary cache
==> gettext: Successfully installed gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
Fetch: 0.04s. Build: 0.86s. Total: 0.90s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
==> Installing bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn.spack
==> Extracting bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn from binary cache
==> bison: Successfully installed bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn
Fetch: 0.03s. Build: 0.34s. Total: 0.37s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn
==> Installing autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69/linux-ubuntu18.04-x86_64-gcc-7.5.0-autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua.spack
==> Extracting autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua from binary cache
==> autoconf: Successfully installed autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua
Fetch: 0.03s. Build: 0.29s. Total: 0.32s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua
==> Installing openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2.spack
==> Extracting openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2 from binary cache
==> openssl: Successfully installed openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2
Fetch: 0.04s. Build: 0.39s. Total: 0.43s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2
==> Installing hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq.spack
==> Extracting hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq from binary cache
==> hwloc: Successfully installed hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
Fetch: 0.03s. Build: 0.42s. Total: 0.45s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
==> Installing elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/elfutils-0.188/linux-ubuntu18.04-x86_64-gcc-7.5.0-elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7.spack
==> Extracting elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7 from binary cache
==> elfutils: Successfully installed elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7
Fetch: 0.04s. Build: 0.51s. Total: 0.55s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7
==> Installing automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5/linux-ubuntu18.04-x86_64-gcc-7.5.0-automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre.spack
==> Extracting automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre from binary cache
==> automake: Successfully installed automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre
Fetch: 0.03s. Build: 0.30s. Total: 0.33s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre
==> Installing cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy.spack
==> Extracting cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy from binary cache
==> cmake: Successfully installed cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy
Fetch: 0.05s. Build: 1.04s. Total: 1.10s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy
==> Installing libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12/linux-ubuntu18.04-x86_64-gcc-7.5.0-libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh.spack
==> Extracting libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh from binary cache
==> libevent: Successfully installed libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh
Fetch: 0.03s. Build: 0.29s. Total: 0.32s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh
==> Installing krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy.spack
==> Extracting krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy from binary cache
==> krb5: Successfully installed krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy
Fetch: 0.03s. Build: 0.40s. Total: 0.43s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy
==> Installing libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/libdwarf-20180129/linux-ubuntu18.04-x86_64-gcc-7.5.0-libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx.spack
==> Extracting libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx from binary cache
==> libdwarf: Successfully installed libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx
Fetch: 0.03s. Build: 0.29s. Total: 0.32s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx
==> Installing numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14/linux-ubuntu18.04-x86_64-gcc-7.5.0-numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk.spack
==> Extracting numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk from binary cache
==> numactl: Successfully installed numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk
Fetch: 0.02s. Build: 0.25s. Total: 0.27s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk
==> Installing intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/intel-tbb-2020.3/linux-ubuntu18.04-x86_64-gcc-7.5.0-intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv.spack
==> Extracting intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv from binary cache
==> intel-tbb: Successfully installed intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv
Fetch: 0.03s. Build: 0.30s. Total: 0.34s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv
==> Installing pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2/linux-ubuntu18.04-x86_64-gcc-7.5.0-pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo.spack
==> Extracting pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo from binary cache
==> pmix: Successfully installed pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo
Fetch: 0.03s. Build: 0.44s. Total: 0.47s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo
==> Installing openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1/linux-ubuntu18.04-x86_64-gcc-7.5.0-openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo.spack
==> Extracting openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo from binary cache
==> openssh: Successfully installed openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo
Fetch: 0.03s. Build: 0.33s. Total: 0.36s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo
==> Installing dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/dyninst-12.2.0/linux-ubuntu18.04-x86_64-gcc-7.5.0-dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf.spack
==> Extracting dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf from binary cache
==> dyninst: Successfully installed dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf
Fetch: 0.14s. Build: 2.62s. Total: 2.76s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf
==> Installing openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4/linux-ubuntu18.04-x86_64-gcc-7.5.0-openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb.spack
==> Extracting openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb from binary cache
==> openmpi: Successfully installed openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb
Fetch: 0.03s. Build: 0.70s. Total: 0.72s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb
==> Installing adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1/linux-ubuntu18.04-x86_64-gcc-7.5.0-adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d.spack
==> Extracting adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d from binary cache
==> adept-utils: Successfully installed adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d
Fetch: 0.03s. Build: 0.30s. Total: 0.33s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d
==> Installing callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64-gcc-7.5.0-callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix.spec.json.sig
==> Fetching file:///mirror/build_cache/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4/linux-ubuntu18.04-x86_64-gcc-7.5.0-callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix.spack
==> Extracting callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix from binary cache
==> callpath: Successfully installed callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix
Fetch: 0.03s. Build: 0.34s. Total: 0.37s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix
==> Installing tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek
==> No binary for tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek found: installing from source
==> Using cached archive: /home/spack/spack/var/spack/cache/_source-cache/archive/2e/2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825.tar.gz
==> No patches needed for tutorial-mpileaks
==> tutorial-mpileaks: Executing phase: 'autoreconf'
==> tutorial-mpileaks: Executing phase: 'configure'
==> Error: ProcessError: Command exited with status 1:
'/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-src/configure' '--prefix=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek'
1 error found in build log:
26 checking whether /home/spack/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
27 checking whether we are using the GNU C++ compiler... yes
28 checking whether /home/spack/spack/lib/spack/env/gcc/g++ accepts -g... yes
29 checking dependency style of /home/spack/spack/lib/spack/env/gcc/g++... gcc3
30 checking for /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbb
upwb/bin/mpicc
31 Checking whether /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc responds to '-showme:compile'... yes
>> 32 configure: error: unable to locate adept-utils installation
See build log for details:
/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-build-out.txt
Note
This command may take a while to run and may produce more output if you don’t already have an MPI installed or configured in Spack.
We see that Spack has now identified and built all of our dependencies. It found that the:
openmpi
package will satisfy ourmpi
dependency;adept-utils
is a concrete dependency; andcallpath
is a concrete dependency.
But we are still not able to build the package.
Debugging Package Builds¶
Our tutorial-mpileaks
package is still not building due to the
adept-utils
package’s configure
error. Experienced
Autotools
developers will likely already see the problem and
its solution.
But let’s take this opportunity to use Spack features to investigate the problem. Our options for proceeding are:
- review the build log; and
- build the package manually.
Reviewing the Build Log¶
The build log might yield some clues so let’s look at the contents of
the spack-build-out.txt
file at the path recommended above by our
failed installation:
$ cat /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-build-out.txt
==> tutorial-mpileaks: Executing phase: 'autoreconf'
==> tutorial-mpileaks: Executing phase: 'configure'
==> [2023-02-11-11:52:40.215636] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-src/configure [replacing "^(\s*if test x-L = )("\$p" \|\|\s*)$"]
==> [2023-02-11-11:52:40.245102] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-src/configure [replacing "^(\s*test x-R = )("\$p")(; then\s*)$"]
==> [2023-02-11-11:52:40.278040] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-src/configure [replacing "^(\s*test \$p = "-R")(; then\s*)$"]
==> [2023-02-11-11:52:40.310569] '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek/spack-src/configure' '--prefix=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-nng3rr4o7awq5w7bmm7btk4wsap3m7ek'
checking metadata... no
checking installation directory variables... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... /home/spack/spack/lib/spack/env/gcc/gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/gcc accepts -g... yes
checking for /home/spack/spack/lib/spack/env/gcc/gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of /home/spack/spack/lib/spack/env/gcc/gcc... gcc3
checking whether /home/spack/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
checking whether we are using the GNU C++ compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/g++ accepts -g... yes
checking dependency style of /home/spack/spack/lib/spack/env/gcc/g++... gcc3
checking for /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc
Checking whether /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc responds to '-showme:compile'... yes
configure: error: unable to locate adept-utils installation
In this case the error conveniently appears on the last line of the log and the output from spack install.
Here we also see a number of checks performed by the configure
command.
Most importantly, the last line is very clear: the installation path of the
adept-utils
dependency cannot be found.
Note
Spack automatically adds standard include and library directories
to the compiler’s search path but it is not uncommon for this
information to not get picked up. Some software, like mpileaks
,
requires the paths to be explicitly provided on the command line.
So let’s investigate further from the staged build directory.
Building Manually¶
First let’s try to build the package manually to see if we can figure out how to solve the problem.
Let’s move to the build directory using the spack cd
command:
$ spack cd tutorial-mpileaks
You should now be in the appropriate stage directory since this
command moves us into the working directory of the last attempted
build. If not, you can cd
into the directory above that contained
the spack-build-out.txt
file then into it’s spack-src
subdirectory.
Now let’s ensure the environment is properly set up using the
spack build-env
command:
$ spack build-env tutorial-mpileaks bash
This command spawned a new shell containing the same environment
that Spack used to build the tutorial-mpileaks
package. (Feel
free to substitute your favorite shell for bash
.)
Note
If you are running using an AWS instance, you’ll want to
substitute your home directory for /home/spack
below.
From here we can manually re-run the build using the configure
command:
$ ./configure --prefix=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/mpileaks-1.0-wl3kx4o4bgegghl4u7hb3jk4toina3fx
checking metadata... no
checking installation directory variables... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... /home/spack/spack/lib/spack/env/gcc/gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/gcc accepts -g... yes
checking for /home/spack/spack/lib/spack/env/gcc/gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of /home/spack/spack/lib/spack/env/gcc/gcc... gcc3
checking whether /home/spack/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
checking whether we are using the GNU C++ compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/g++ accepts -g... yes
checking dependency style of /home/spack/spack/lib/spack/env/gcc/g++... gcc3
checking for /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.3-jfxctqwar7wb65rn7wf5mot7m4jxmsey/bin/mpicc... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.3-jfxctqwar7wb65rn7wf5mot7m4jxmsey/bin/mpicc
Checking whether /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.3-jfxctqwar7wb65rn7wf5mot7m4jxmsey/bin/mpicc responds to '-showme:compile'... yes
configure: error: unable to locate adept-utils installation
checking metadata... no
checking installation directory variables... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... /home/spack/spack/lib/spack/env/gcc/gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/gcc accepts -g... yes
checking for /home/spack/spack/lib/spack/env/gcc/gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of /home/spack/spack/lib/spack/env/gcc/gcc... gcc3
checking whether /home/spack/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
checking whether we are using the GNU C++ compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/g++ accepts -g... yes
checking dependency style of /home/spack/spack/lib/spack/env/gcc/g++... gcc3
checking for /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.1-p5qicacmcy72pjljd4lfdy66kavxp3tv/bin/mpicc... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.1-p5qicacmcy72pjljd4lfdy66kavxp3tv/bin/mpicc
Checking whether /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.1-p5qicacmcy72pjljd4lfdy66kavxp3tv/bin/mpicc responds to '-showme:compile'... yes
configure: error: unable to locate adept-utils installation
And we get the same results as before. Unfortunately, the output does not provide any additional information that can help us with the build.
Given that this is a simple package built with configure
and we know
that installation directories need to be specified, we can use its
help to see what command line options are available for the software.
$ ./configure --help
`configure' configures mpileaks 1.0 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/mpileaks]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-adept-utils=PATH Specify adept-utils path
--with-callpath=PATH Specify libcallpath path
--with-stack-start-c=value
Specify integer number for MPILEAKS_STACK_START for
C code
--with-stack-start-fortran=value
Specify integer number for MPILEAKS_STACK_START for
FORTRAN code
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CPP C preprocessor
CXXCPP C++ preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <moody20@llnl.gov>.
Note that you can specify the paths for the two concrete dependencies with the following options:
--with-adept-utils=PATH
--with-callpath=PATH
So let’s leave the spawned shell and return to the Spack repository directory:
$ exit
$ cd $SPACK_ROOT
Now that we know what arguments to provide, we can update the recipe.
Specifying Configure Arguments¶
We now know which options we need to pass to configure
, but how do we
know where to find the installation paths for the package’s dependencies
from within the package.py
file?
Fortunately, we can query the package’s concrete Spec
instance.
The self.spec
property holds the package’s directed acyclic graph
(DAG) of its dependencies. Each dependency’s Spec
, accessed by name,
has a prefix
property containing its installation path.
So let’s add the configuration arguments for specifying the paths to
the two concrete dependencies in the configure_args
method of our
package.
Bring mpileaks’ package.py
file back up in your $EDITOR
with
the spack edit
command:
$ spack edit tutorial-mpileaks
and add the --with-adept-utils
and --with-callpath
arguments
in the configure_args
method as follows:
from spack import *
class TutorialMpileaks(AutotoolsPackage):
"""Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes."""
homepage = "https://github.com/LLNL/mpileaks"
url = "https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz"
maintainers = ['adamjstewart']
version('1.0', sha256='2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825')
depends_on('mpi')
depends_on('adept-utils')
depends_on('callpath')
def configure_args(self):
args = [
'--with-adept-utils={0}'.format(self.spec['adept-utils'].prefix),
'--with-callpath={0}'.format(self.spec['callpath'].prefix),
]
return args
Since this is an AutotoolsPackage
, the arguments returned from the
method will automatically get passed to configure
during the build.
Now let’s try the build again:
$ spack install tutorial-mpileaks
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix
==> Installing tutorial-mpileaks-1.0-qqk3e4sa4ixjz4xfg6xrzna3himabcnx
==> No binary for tutorial-mpileaks-1.0-qqk3e4sa4ixjz4xfg6xrzna3himabcnx found: installing from source
==> Using cached archive: /home/spack/spack/var/spack/cache/_source-cache/archive/2e/2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825.tar.gz
==> No patches needed for tutorial-mpileaks
==> tutorial-mpileaks: Executing phase: 'autoreconf'
==> tutorial-mpileaks: Executing phase: 'configure'
==> tutorial-mpileaks: Executing phase: 'build'
==> tutorial-mpileaks: Executing phase: 'install'
==> tutorial-mpileaks: Successfully installed tutorial-mpileaks-1.0-qqk3e4sa4ixjz4xfg6xrzna3himabcnx
Fetch: 0.00s. Build: 8.81s. Total: 8.81s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-qqk3e4sa4ixjz4xfg6xrzna3himabcnx
Success!
All we needed to do was add the path arguments for the two concrete packages for configure to perform a simple, no frills build.
But is that all we can do to help other users build our software?
Adding Variants¶
What if we want to expose the software’s optional features in the package? We can do this by adding build-time options using package variants.
Recall from configure’s help output for tutorial-mpileaks
that the
software has several optional features and packages that we could support
in Spack. Two stand out for tutorial purposes because they both take integers,
as opposed to simply allowing them to be enabled or disabled.
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-adept-utils=PATH Specify adept-utils path
--with-callpath=PATH Specify libcallpath path
--with-stack-start-c=value
Specify integer number for MPILEAKS_STACK_START for
C code
--with-stack-start-fortran=value
Specify integer number for MPILEAKS_STACK_START for
FORTRAN code
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
According to the software’s documentation (https://github.com/LLNL/mpileaks),
the integer values for the --with-stack-start-*
options represent the
numbers of calls to shave off of the top of the stack traces for each
language, effectively reducing the noise of internal mpileaks library function
calls in generated traces.
For simplicity, we’ll use one variant to supply the value for both arguments.
Supporting this optional feature will require two changes to the package:
- add a
variant
directive; and - change the configure options to use the value.
Let’s add the variant to expect an int
value with a default of
0
. Defaulting to 0
effectively disables the option. Also change
configure_args
to retrieve the value and add the corresponding
configure arguments when a non-zero value is provided by the user.
Bring mpileaks’ package.py
file back up in your $EDITOR
with
the spack edit
command:
$ spack edit tutorial-mpileaks
and add the variant
directive and associated arguments as follows:
from spack import *
class TutorialMpileaks(AutotoolsPackage):
"""Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes."""
homepage = "https://github.com/LLNL/mpileaks"
url = "https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz"
maintainers = ['adamjstewart']
version('1.0', sha256='2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825')
variant('stackstart', values=int, default=0,
description='Specify the number of stack frames to truncate')
depends_on('mpi')
depends_on('adept-utils')
depends_on('callpath')
def configure_args(self):
args = [
'--with-adept-utils={0}'.format(self.spec['adept-utils'].prefix),
'--with-callpath={0}'.format(self.spec['callpath'].prefix),
]
stackstart = int(self.spec.variants['stackstart'].value)
if stackstart:
args.extend([
'--with-stack-start-c={0}'.format(stackstart),
'--with-stack-start-fortran={0}'.format(stackstart),
])
return args
Notice that the variant
directive is translated into a variants
dictionary
in self.spec
. Also note that the value provided by the user is accessed
by the entry’s value
property.
Now run the installation again with the --verbose
install option – to
get more output during the build – and the new stackstart
package option:
$ spack install --verbose tutorial-mpileaks stackstart=4
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/boost-1.72.0-ujhjgu2zonpa2gxluint57fl5v23i2ev
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pkgconf-1.8.0-k2lfw6fht6zvsfihvx3avihboi3uv455
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ca-certificates-mozilla-2022-10-11-aurd37jjebxaqzs73saip5v6hgfu3foj
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/berkeley-db-18.1.40-53fb72wziswrec6tkbjpowshkul2nsk4
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiconv-1.16-ltvovvvjgmlvy4m2pn365cy6p5dysajq
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zlib-1.2.13-2hfr5rbzefrxf6t6kv4trbsl63puaza6
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libsigsegv-2.13-e262sf6ptgnmyu7zkflzp3ycbdfqz7hf
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/util-macros-1.19.3-ao5w53rpwhgfruk2zrqcehlov5slestd
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/xz-5.2.7-nrwxythffgfumjv7skmgdjtxaunlmqau
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/zstd-1.5.2-fprmzmoubdjdr663rprctp2tuqiv5apu
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libiberty-2.37-zm47sgeycvd3tajg3ixpva6d4n64swbj
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/ncurses-6.3-zcuawlif55qhuknvbk4jez7xjcxhnydf
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/diffutils-3.8-c3uhkcjt7tagz2djrd6r2b6b3c2tia3s
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pigz-2.7-wod35nye4qcrkbopr23zoy5qb3ywp3v3
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libxml2-2.10.1-4aq5aj2n5u2n3dbrb76pnhoil6tv3e4e
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/readline-8.1.2-kgyvtw5h6mi5nms32x3vzgbw32ymmfwa
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libedit-3.1-20210216-6pzeykrtvrkpbw6u3mq6likd4ktvah76
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/m4-1.4.19-z7d5q4f2qzxejx4xxdrj45q5gxur6q7b
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bzip2-1.0.8-cxcrelnw64jh6lvhzb6pfar7nijv6us6
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gdbm-1.23-cpmyntybsnm3se7lfnvqosbiqzrcg2kq
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libtool-2.4.7-bdxu4wnbhlmvj6sh5y7uynrldzepiilz
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tar-1.34-kawegoyhusotpo5mlsqnjqf6ngrjyj2w
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/perl-5.36.0-eydiwimku2cctu6dsom3yvfxxjmqyr4w
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libpciaccess-0.16-p7f5n6q6kwnzq7syvqbslnotl72yxs23
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/gettext-0.21.1-hj6szikaqzdpxa36gk4w72m4czhwd6gu
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssl-1.1.1s-yr4z2pt4jnp5fltumr2my3badazsarz2
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/bison-3.8.2-wobmzgvlc235muaaxwehzblkgcnhvwtn
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/autoconf-2.69-btoteeiz74epw4kulm7aecae4cxraxua
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/hwloc-2.8.0-5yywrk2zoib75deet4eu4ocxim2ldngq
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/elfutils-0.188-6zgpdw77llwjihnyt6aub2eji4oncol7
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libevent-2.1.12-nblr6w4gwbdyhjz2z5lg5pseztxnb7gh
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/cmake-3.24.3-stszbnscxrtgzqrwmx2wfwsuntf47mpy
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/krb5-1.19.3-y6ek4vz7ntj6qw26jv2trb3ok4m5koxy
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/automake-1.16.5-rxjqnjw5jkrbym5x4yshogm3f262crre
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/libdwarf-20180129-zzsoeov5q6isot24zaei32htsyme65kx
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/pmix-4.1.2-76ul6unbdppxalfkkxjqzoky7lu4jqpo
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/intel-tbb-2020.3-s4gwwbxg5aowksbqquhd7cfn2bpw7qgv
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/numactl-2.0.14-qbwqmk6qylskqtyrfuyfp36f465bxrrk
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/dyninst-12.2.0-p5agglszh4ajwdur74fqztkbcrcsxwjf
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix
==> Installing tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn
==> No binary for tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn found: installing from source
==> Using cached archive: /home/spack/spack/var/spack/cache/_source-cache/archive/2e/2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825.tar.gz
==> No patches needed for tutorial-mpileaks
==> tutorial-mpileaks: Executing phase: 'autoreconf'
==> tutorial-mpileaks: Executing phase: 'configure'
==> [2023-02-11-11:53:39.640903] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/configure [replacing "^(\s*if test x-L = )("\$p" \|\|\s*)$"]
==> [2023-02-11-11:53:39.673154] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/configure [replacing "^(\s*test x-R = )("\$p")(; then\s*)$"]
==> [2023-02-11-11:53:39.698560] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/configure [replacing "^(\s*test \$p = "-R")(; then\s*)$"]
==> [2023-02-11-11:53:39.719578] '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/configure' '--prefix=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn' '--with-adept-utils=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d' '--with-callpath=/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix' '--with-stack-start-c=4' '--with-stack-start-fortran=4'
checking metadata... no
checking installation directory variables... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... /home/spack/spack/lib/spack/env/gcc/gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/gcc accepts -g... yes
checking for /home/spack/spack/lib/spack/env/gcc/gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of /home/spack/spack/lib/spack/env/gcc/gcc... gcc3
checking whether /home/spack/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
checking whether we are using the GNU C++ compiler... yes
checking whether /home/spack/spack/lib/spack/env/gcc/g++ accepts -g... yes
checking dependency style of /home/spack/spack/lib/spack/env/gcc/g++... gcc3
checking for /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc
Checking whether /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin/mpicc responds to '-showme:compile'... yes
checking for adept-utils installation... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d
checking for libcallpath installation... /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by /home/spack/spack/lib/spack/env/gcc/gcc... /home/spack/spack/lib/spack/env/ld
checking if the linker (/home/spack/spack/lib/spack/env/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /home/spack/spack/lib/spack/env/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from /home/spack/spack/lib/spack/env/gcc/gcc object... ok
checking how to run the C preprocessor... /home/spack/spack/lib/spack/env/gcc/gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether /home/spack/spack/lib/spack/env/gcc/g++ accepts -g... (cached) yes
checking dependency style of /home/spack/spack/lib/spack/env/gcc/g++... (cached) gcc3
checking how to run the C++ preprocessor... /home/spack/spack/lib/spack/env/gcc/g++ -E
checking for objdir... .libs
checking if /home/spack/spack/lib/spack/env/gcc/gcc supports -fno-rtti -fno-exceptions... no
checking for /home/spack/spack/lib/spack/env/gcc/gcc option to produce PIC... -fPIC -DPIC
checking if /home/spack/spack/lib/spack/env/gcc/gcc PIC flag -fPIC -DPIC works... yes
checking if /home/spack/spack/lib/spack/env/gcc/gcc static flag -static works... yes
checking if /home/spack/spack/lib/spack/env/gcc/gcc supports -c -o file.o... yes
checking if /home/spack/spack/lib/spack/env/gcc/gcc supports -c -o file.o... (cached) yes
checking whether the /home/spack/spack/lib/spack/env/gcc/gcc linker (/home/spack/spack/lib/spack/env/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for ld used by /home/spack/spack/lib/spack/env/gcc/g++... /home/spack/spack/lib/spack/env/ld -m elf_x86_64
checking if the linker (/home/spack/spack/lib/spack/env/ld -m elf_x86_64) is GNU ld... yes
checking whether the /home/spack/spack/lib/spack/env/gcc/g++ linker (/home/spack/spack/lib/spack/env/ld -m elf_x86_64) supports shared libraries... yes
checking for /home/spack/spack/lib/spack/env/gcc/g++ option to produce PIC... -fPIC -DPIC
checking if /home/spack/spack/lib/spack/env/gcc/g++ PIC flag -fPIC -DPIC works... yes
checking if /home/spack/spack/lib/spack/env/gcc/g++ static flag -static works... yes
checking if /home/spack/spack/lib/spack/env/gcc/g++ supports -c -o file.o... yes
checking if /home/spack/spack/lib/spack/env/gcc/g++ supports -c -o file.o... (cached) yes
checking whether the /home/spack/spack/lib/spack/env/gcc/g++ linker (/home/spack/spack/lib/spack/env/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for ANSI C header files... (cached) yes
checking whether byte ordering is bigendian... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating examples/Makefile
config.status: creating scripts/Makefile
config.status: creating scripts/srun-mpileaks
config.status: creating scripts/srun-mpileaksf
config.status: creating config/config.h
config.status: executing depfiles commands
config.status: executing libtool commands
==> [2023-02-11-11:53:43.583388] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/libtool [replacing "^wl=""$"]
==> [2023-02-11-11:53:43.599252] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/libtool [replacing "^pic_flag=""$"]
==> [2023-02-11-11:53:43.610110] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/libtool [replacing "^pic_flag=""$"]
==> [2023-02-11-11:53:43.661361] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/libtool [replacing "^pic_flag=""$"]
==> [2023-02-11-11:53:43.713039] FILTER FILE: /tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/libtool [replacing "^pic_flag=""$"]
==> tutorial-mpileaks: Executing phase: 'build'
==> [2023-02-11-11:53:43.800615] 'make' '-j16' 'V=1'
Making all in scripts
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/scripts'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/scripts'
Making all in src
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/src'
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT mpileaks.lo -MD -MP -MF .deps/mpileaks.Tpo -c -o mpileaks.lo mpileaks.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT comm.lo -MD -MP -MF .deps/comm.Tpo -c -o comm.lo comm.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT datatype.lo -MD -MP -MF .deps/datatype.Tpo -c -o datatype.lo datatype.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT errhandler.lo -MD -MP -MF .deps/errhandler.Tpo -c -o errhandler.lo errhandler.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT fileio.lo -MD -MP -MF .deps/fileio.Tpo -c -o fileio.lo fileio.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT group.lo -MD -MP -MF .deps/group.Tpo -c -o group.lo group.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT info.lo -MD -MP -MF .deps/info.Tpo -c -o info.lo info.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT keyval.lo -MD -MP -MF .deps/keyval.Tpo -c -o keyval.lo keyval.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT mem.lo -MD -MP -MF .deps/mem.Tpo -c -o mem.lo mem.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT op.lo -MD -MP -MF .deps/op.Tpo -c -o op.lo op.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT request.lo -MD -MP -MF .deps/request.Tpo -c -o request.lo request.cpp
/bin/bash ../libtool --tag=CXX --mode=compile /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT win.lo -MD -MP -MF .deps/win.Tpo -c -o win.lo win.cpp
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT datatype.lo -MD -MP -MF .deps/datatype.Tpo -c datatype.cpp -fPIC -DPIC -o .libs/datatype.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT mem.lo -MD -MP -MF .deps/mem.Tpo -c mem.cpp -fPIC -DPIC -o .libs/mem.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT group.lo -MD -MP -MF .deps/group.Tpo -c group.cpp -fPIC -DPIC -o .libs/group.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT errhandler.lo -MD -MP -MF .deps/errhandler.Tpo -c errhandler.cpp -fPIC -DPIC -o .libs/errhandler.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT comm.lo -MD -MP -MF .deps/comm.Tpo -c comm.cpp -fPIC -DPIC -o .libs/comm.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT mpileaks.lo -MD -MP -MF .deps/mpileaks.Tpo -c mpileaks.cpp -fPIC -DPIC -o .libs/mpileaks.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT win.lo -MD -MP -MF .deps/win.Tpo -c win.cpp -fPIC -DPIC -o .libs/win.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT keyval.lo -MD -MP -MF .deps/keyval.Tpo -c keyval.cpp -fPIC -DPIC -o .libs/keyval.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT request.lo -MD -MP -MF .deps/request.Tpo -c request.cpp -fPIC -DPIC -o .libs/request.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT fileio.lo -MD -MP -MF .deps/fileio.Tpo -c fileio.cpp -fPIC -DPIC -o .libs/fileio.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT op.lo -MD -MP -MF .deps/op.Tpo -c op.cpp -fPIC -DPIC -o .libs/op.o
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT info.lo -MD -MP -MF .deps/info.Tpo -c info.cpp -fPIC -DPIC -o .libs/info.o
keyval.cpp: In function 'int MPI_Keyval_create(int (*)(MPI_Comm, int, void*, void*, void*, int*), int (*)(MPI_Comm, int, void*, void*), int*, void*)':
keyval.cpp:38:70: warning: 'int PMPI_Keyval_create(int (*)(MPI_Comm, int, void*, void*, void*, int*), int (*)(MPI_Comm, int, void*, void*), int*, void*)' is deprecated: PMPI_Keyval_create was deprecated in MPI-2.0; use PMPI_Comm_create_keyval instead. [-Wdeprecated-declarations]
int rc = PMPI_Keyval_create(copy_fn, delete_fn, keyval, extra_state);
^
In file included from keyval.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2744:20: note: declared here
OMPI_DECLSPEC int PMPI_Keyval_create(MPI_Copy_function *copy_fn,
^~~~~~~~~~~~~~~~~~
keyval.cpp: In function 'int MPI_Keyval_free(int*)':
keyval.cpp:93:35: warning: 'int PMPI_Keyval_free(int*)' is deprecated: PMPI_Keyval_free was deprecated in MPI-2.0; PMPI_Comm_free_keyval instead. [-Wdeprecated-declarations]
int rc = PMPI_Keyval_free(keyval);
^
In file included from keyval.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2750:20: note: declared here
OMPI_DECLSPEC int PMPI_Keyval_free(int *keyval)
^~~~~~~~~~~~~~~~
errhandler.cpp: In function 'int MPI_Errhandler_create(void (*)(ompi_communicator_t**, int*, ...), ompi_errhandler_t**)':
errhandler.cpp:33:47: warning: 'int PMPI_Errhandler_create(void (*)(ompi_communicator_t**, int*, ...), ompi_errhandler_t**)' is deprecated: PMPI_Errhandler_create was removed in MPI-3.0. Use PMPI_Comm_create_errhandler instead. continuing... [-Wdeprecated-declarations]
int rc = PMPI_Errhandler_create(function, eh);
^
In file included from errhandler.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2811:20: note: declared here
OMPI_DECLSPEC int PMPI_Errhandler_create(MPI_Handler_function *function,
^~~~~~~~~~~~~~~~~~~~~~
errhandler.cpp: In function 'int MPI_Errhandler_get(MPI_Comm, ompi_errhandler_t**)':
errhandler.cpp:40:40: warning: 'int PMPI_Errhandler_get(MPI_Comm, ompi_errhandler_t**)' is deprecated: PMPI_Errhandler_get was removed in MPI-3.0. Use PMPI_Comm_get_errhandler instead. continuing... [-Wdeprecated-declarations]
int rc = PMPI_Errhandler_get(comm, eh);
^
In file included from errhandler.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2816:20: note: declared here
OMPI_DECLSPEC int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler)
^~~~~~~~~~~~~~~~~~~
datatype.cpp: In function 'int MPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, ompi_datatype_t**)':
datatype.cpp:60:74: warning: 'int PMPI_Type_hvector(int, int, MPI_Aint, MPI_Datatype, ompi_datatype_t**)' is deprecated: PMPI_Type_hvector was removed in MPI-3.0. Use PMPI_Type_create_hvector instead. continuing... [-Wdeprecated-declarations]
int rc = PMPI_Type_hvector(count, blocklength, stride, oldtype, newtype);
^
In file included from datatype.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2837:20: note: declared here
OMPI_DECLSPEC int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride,
^~~~~~~~~~~~~~~~~
datatype.cpp: In function 'int MPI_Type_hindexed(int, int*, MPI_Aint*, MPI_Datatype, ompi_datatype_t**)':
datatype.cpp:79:26: warning: 'int PMPI_Type_hindexed(int, int*, MPI_Aint*, MPI_Datatype, ompi_datatype_t**)' is deprecated: PMPI_Type_hindexed was removed in MPI-3.0. Use PMPI_Type_create_hindexed instead. continuing... [-Wdeprecated-declarations]
oldtype, newtype);
^
In file included from datatype.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2830:20: note: declared here
OMPI_DECLSPEC int PMPI_Type_hindexed(int count, int array_of_blocklengths[],
^~~~~~~~~~~~~~~~~~
datatype.cpp: In function 'int MPI_Type_struct(int, int*, MPI_Aint*, ompi_datatype_t**, ompi_datatype_t**)':
datatype.cpp:89:31: warning: 'int PMPI_Type_struct(int, int*, MPI_Aint*, ompi_datatype_t**, ompi_datatype_t**)' is deprecated: PMPI_Type_struct was removed in MPI-3.0. Use PMPI_Type_create_struct instead. continuing... [-Wdeprecated-declarations]
array_of_types, newtype);
^
In file included from datatype.cpp:10:0:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include/mpi.h:2849:20: note: declared here
OMPI_DECLSPEC int PMPI_Type_struct(int count, int array_of_blocklengths[],
^~~~~~~~~~~~~~~~
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT win.lo -MD -MP -MF .deps/win.Tpo -c win.cpp -o win.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT mpileaks.lo -MD -MP -MF .deps/mpileaks.Tpo -c mpileaks.cpp -o mpileaks.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT group.lo -MD -MP -MF .deps/group.Tpo -c group.cpp -o group.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT keyval.lo -MD -MP -MF .deps/keyval.Tpo -c keyval.cpp -o keyval.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT op.lo -MD -MP -MF .deps/op.Tpo -c op.cpp -o op.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT fileio.lo -MD -MP -MF .deps/fileio.Tpo -c fileio.cpp -o fileio.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT errhandler.lo -MD -MP -MF .deps/errhandler.Tpo -c errhandler.cpp -o errhandler.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT info.lo -MD -MP -MF .deps/info.Tpo -c info.cpp -o info.o >/dev/null 2>&1
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT mem.lo -MD -MP -MF .deps/mem.Tpo -c mem.cpp -o mem.o >/dev/null 2>&1
mv -f .deps/win.Tpo .deps/win.Plo
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT datatype.lo -MD -MP -MF .deps/datatype.Tpo -c datatype.cpp -o datatype.o >/dev/null 2>&1
mv -f .deps/op.Tpo .deps/op.Plo
mv -f .deps/mpileaks.Tpo .deps/mpileaks.Plo
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT comm.lo -MD -MP -MF .deps/comm.Tpo -c comm.cpp -o comm.o >/dev/null 2>&1
mv -f .deps/fileio.Tpo .deps/fileio.Plo
mv -f .deps/group.Tpo .deps/group.Plo
mv -f .deps/mem.Tpo .deps/mem.Plo
mv -f .deps/info.Tpo .deps/info.Plo
mv -f .deps/errhandler.Tpo .deps/errhandler.Plo
mv -f .deps/keyval.Tpo .deps/keyval.Plo
libtool: compile: /home/spack/spack/lib/spack/env/gcc/g++ -DHAVE_CONFIG_H -I. -I../config -DHAVE_CONFIG_H -I. -I../config -I../src -I../config -g -O2 -I//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/include -I/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/include -g -O2 -MT request.lo -MD -MP -MF .deps/request.Tpo -c request.cpp -o request.o >/dev/null 2>&1
mv -f .deps/datatype.Tpo .deps/datatype.Plo
mv -f .deps/comm.Tpo .deps/comm.Plo
mv -f .deps/request.Tpo .deps/request.Plo
/bin/bash ../libtool --tag=CXX --mode=link /home/spack/spack/lib/spack/env/gcc/g++ -g -O2 -avoid-version -o libmpileaks.la -rpath /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib mpileaks.lo comm.lo datatype.lo errhandler.lo fileio.lo group.lo info.lo keyval.lo mem.lo op.lo request.lo win.lo -L/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/lib -ladept_cutils -ladept_timing -ladept_utils -L/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/lib -lcallpath
libtool: link: /home/spack/spack/lib/spack/env/gcc/g++ -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o .libs/mpileaks.o .libs/comm.o .libs/datatype.o .libs/errhandler.o .libs/fileio.o .libs/group.o .libs/info.o .libs/keyval.o .libs/mem.o .libs/op.o .libs/request.o .libs/win.o -L/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/adept-utils-1.0.1-v7ra4diio6yvl5ijom4ekcoldpe7747d/lib -ladept_cutils -ladept_timing -ladept_utils -L/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/lib -lcallpath -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o -Wl,-soname -Wl,libmpileaks.so -o .libs/libmpileaks.so
libtool: link: ar cru .libs/libmpileaks.a mpileaks.o comm.o datatype.o errhandler.o fileio.o group.o info.o keyval.o mem.o op.o request.o win.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libmpileaks.a
libtool: link: ( cd ".libs" && rm -f "libmpileaks.la" && ln -s "../libmpileaks.la" "libmpileaks.la" )
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/src'
Making all in examples
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/examples'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/examples'
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src'
==> tutorial-mpileaks: Executing phase: 'install'
==> [2023-02-11-11:53:48.127588] 'make' '-j16' 'install'
Making install in scripts
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/scripts'
make[2]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/scripts'
test -z "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/bin" || /bin/mkdir -p "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/bin"
make[2]: Nothing to be done for 'install-data-am'.
/usr/bin/install -c srun-mpileaks srun-mpileaksf '/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/bin'
make[2]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/scripts'
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/scripts'
Making install in src
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/src'
make[2]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/src'
test -z "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib" || /bin/mkdir -p "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib"
make[2]: Nothing to be done for 'install-data-am'.
/bin/bash ../libtool --mode=install /usr/bin/install -c libmpileaks.la '/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib'
libtool: install: /usr/bin/install -c .libs/libmpileaks.so /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib/libmpileaks.so
libtool: install: /usr/bin/install -c .libs/libmpileaks.lai /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib/libmpileaks.la
libtool: install: /usr/bin/install -c .libs/libmpileaks.a /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib/libmpileaks.a
libtool: install: chmod 644 /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib/libmpileaks.a
libtool: install: ranlib /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib/libmpileaks.a
libtool: finish: PATH="/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/callpath-1.0.4-4hietixg47mkdt6izrg3zkoxzvd5c4ix/bin:/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openmpi-4.1.4-mfxvu5fnaac33f4pw25rjrojafbbupwb/bin:/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/openssh-9.1p1-xevso22q5f5fb2bqp5lhuutgvrqtiolo/bin:/home/spack/spack/lib/spack/env/gcc:/home/spack/spack/lib/spack/env/case-insensitive:/home/spack/spack/lib/spack/env:/home/spack/spack/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib
----------------------------------------------------------------------
Libraries have been installed in:
/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
make[2]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/src'
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/src'
Making install in examples
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/examples'
make[2]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/examples'
make[2]: Nothing to be done for 'install-exec-am'.
test -z "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/share/mpileaks/examples" || /bin/mkdir -p "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/share/mpileaks/examples"
/usr/bin/install -c -m 644 tests.c mpiPing_leaky.f '/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/share/mpileaks/examples'
make[2]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/examples'
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src/examples'
make[1]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src'
make[2]: Entering directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src'
make[2]: Nothing to be done for 'install-exec-am'.
test -z "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/share/mpileaks" || /bin/mkdir -p "/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/share/mpileaks"
/usr/bin/install -c -m 644 README '/home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/share/mpileaks'
make[2]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src'
make[1]: Leaving directory '/tmp/spack/spack-stage/spack-stage-tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn/spack-src'
==> tutorial-mpileaks: Successfully installed tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn
Fetch: 0.00s. Build: 8.81s. Total: 8.81s.
[+] /home/spack/spack/opt/spack/linux-ubuntu18.04-x86_64/gcc-7.5.0/tutorial-mpileaks-1.0-rvk7u6vepjxi2nbko4tnoudwfxmgyopn
Notice the addition of the two stack start arguments in the configure
command that appears at the end of the highlighted line after mpileaks’
Executing phase: 'configure'
.
At this point we’ve covered how to create a package; update its documentation; add dependencies; and add variants to support builds with optional features.
What if you need to customize the build to reflect feature changes?
Querying the Spec Object¶
As packages evolve and are ported to different systems, the builds
often need to be changed. This is where the package’s Spec
comes
in.
So far we’ve looked at getting the paths for dependencies and values of
variants from the Spec
but there is more. The package’s self.spec
,
property allows you to query information about the package build, such as:
- how a package’s dependencies were built;
- what compiler was being used;
- what version of a package is being installed; and
- what variants were specified (implicitly or explicitly).
Examples of common queries are provided below.
Querying Spec Versions¶
You can customize the build based on the version of the package, compiler, and dependencies. Examples of each are:
- Am I building my package with version
1.1
or greater?
if self.spec.satisfies('@1.1:'):
# Do things needed for version 1.1 or newer
- Am I building with a
gcc
version up to5.0
?
if self.spec.satisfies('%gcc@:5.0'):
# Add arguments specific to gcc's up to 5.0
- Is my
dyninst
dependency at least version8.0
?
if self.spec['dyninst'].satisfies('@8.0:'):
# Use newest dyninst options
Querying Spec Names¶
If the build has to be customized to the concrete version of an abstract
Spec
you can use its name
property. For example:
- Is
openmpi
the MPI I’m building with?
if self.spec['mpi'].name == 'openmpi':
# Do openmpi things
Querying Variants¶
Adjusting build options based on enabled variants can be done by querying
the Spec
itself, such as:
- Am I building with the
debug
variant?
if '+debug' in self.spec:
# Add -g option to configure flags
These are just a few examples of Spec
queries. Spack has thousands of
built-in packages that can serve as examples to guide the development
of your package. You can find these packages in
$SPACK_ROOT/var/spack/repos/builtin/packages
.
Multiple Build Systems¶
There are cases where software actively supports two build systems, or changes build systems as it evolves, or needs different build systems on different platforms. Spack allows you to write a single, neat recipe for these cases too. It will only require a slight change in the recipe’s structure compared to what we have seen so far.
Let’s take uncrustify
, a source code beautifier, as an example. This software
used to build with autotools
until version 0.63, and then switched build systems
to cmake
at version 0.64.
Compared to previous recipes in this tutorial, in this case we need Uncrustify
to
inherit from both CMakePackage
and AutotoolsPackage
. We also need to explicitly
specify the build_system
directive, and add conditional dependencies based on
build system:
class Uncrustify(CMakePackage, AutotoolsPackage):
"""Source Code Beautifier for C, C++, C#, ObjectiveC, Java, and others."""
homepage = "http://uncrustify.sourceforge.net/"
git = "https://github.com/uncrustify/uncrustify"
version("0.64", commit="1d7d97")
version("0.63", commit="44ce0f")
build_system(
conditional("cmake", when="@0.64:"),
conditional("autotools", when="@:0.63"),
default="cmake",
)
with when("build_system=cmake"):
depends_on("cmake@3.18:", type="build")
We didn’t mention it so far, but each spec has a build_system
variant that specifies
the build system it uses. In most cases that variant has a single allowed value, inherited from the
corresponding base package - so, usually, you don’t have to think about it.
When your package supports more than one build system though, you have to explicitly declare which ones are
allowed and under which conditions. In the example above it’s cmake
for version 0.64 and higher and
autotools
for version 0.63 and lower.
The build_system
variant can also be used to declare other properties which are conditional on the build
system being selected. For instance, above we declare that when using cmake
, CMake 3.18+ is required.
The other relevant difference, compared to the previous recipes we have seen so far, is that the code prescribing the installation procedure will live into two separate classes:
class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
def cmake_args(self):
pass
class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder):
def configure_args(self):
pass
Depending on the spec
, and more specifically on the value of the build_system
directive, a builder
object will be instantiated from one of the two classes when an installation is requested from a user.
Cleaning Up¶
Before leaving this tutorial, let’s ensure what we have done does not interfere with your Spack instance or future sections of the tutorial. Undo the work we’ve done here by entering the following commands:
$ spack uninstall -ay tutorial-mpileaks
==> Successfully uninstalled tutorial-mpileaks@1.0%gcc@7.5.0 build_system=autotools arch=linux-ubuntu18.04-x86_64/qqk3e4s
==> Successfully uninstalled tutorial-mpileaks@1.0%gcc@7.5.0 build_system=autotools stackstart=4 arch=linux-ubuntu18.04-x86_64/rvk7u6v
$ spack repo remove tutorial
==> Removed repository /home/spack/spack/var/spack/repos/tutorial with namespace 'tutorial'.
$ rm -rf $SPACK_ROOT/var/spack/repos/tutorial/packages/tutorial-mpileaks
More information¶
This tutorial module only scratches the surface of defining Spack package recipes. The Packaging Guide more thoroughly covers packaging topics.
Additional information on key topics can be found at the links below.
Testing an installation¶
- Checking an installation: for more information on adding tests that run at build-time and against an installation
Using other build systems¶
- Build Systems: for the full list of built-in build systems
- Spack Package Build Systems tutorial: for tutorials on common build systems
- Multiple Build Systems: for a reference on writing packages with multiple build systems
- Package Class Architecture:
for more insight on the inner workings of
Package
andBuilder
classes. - The GDAL Package: for an example of a complex package which extends Python and supports two build systems.
Making a package externally detectable¶
- Making a package externally discoverable:
for making a package discoverable using the
spack external find
command