summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark W. Krentel <krentel@rice.edu>2023-03-01 02:44:32 -0600
committerGitHub <noreply@github.com>2023-03-01 09:44:32 +0100
commit99fb4c4a47efe98bcb0149516e52d1c2b232ccae (patch)
tree50441a841e43c5951aff35186c54e4bb65774050
parent5b526852168d56ea9d271fe220eac22f8acc4b3f (diff)
downloadspack-99fb4c4a47efe98bcb0149516e52d1c2b232ccae.tar.gz
spack-99fb4c4a47efe98bcb0149516e52d1c2b232ccae.tar.bz2
spack-99fb4c4a47efe98bcb0149516e52d1c2b232ccae.tar.xz
spack-99fb4c4a47efe98bcb0149516e52d1c2b232ccae.zip
hpctoolkit: add version 2023.03.01, add python variant (#35662)
1. add version 2023.03.01 2. add variant 'python' that supports unwinding python source 3. clean up some things with the cray variant 4. require the latest libmonitor 5. fix sha256 checksum for url patch 6. delete rocm 5.3 from older versions
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/411d62544717873432c49ef45c7cb99cc5de2fb8.patch91
-rw-r--r--var/spack/repos/builtin/packages/hpctoolkit/package.py36
2 files changed, 23 insertions, 104 deletions
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/411d62544717873432c49ef45c7cb99cc5de2fb8.patch b/var/spack/repos/builtin/packages/hpctoolkit/411d62544717873432c49ef45c7cb99cc5de2fb8.patch
deleted file mode 100644
index 7cc956ac6b..0000000000
--- a/var/spack/repos/builtin/packages/hpctoolkit/411d62544717873432c49ef45c7cb99cc5de2fb8.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 411d62544717873432c49ef45c7cb99cc5de2fb8 Mon Sep 17 00:00:00 2001
-From: "Mark W. Krentel" <krentel@rice.edu>
-Date: Thu, 15 Dec 2022 16:43:43 -0600
-Subject: [PATCH] Add a temporary hack to allow both ROCM 5.2/5.3 to build
- cleanly.
-
-There were some corner cases (build 5.3 pieces from spack and feed
-into autotools) that didn't work. After the next release, I will want
-to rework ROCM configure more extensively.
----
- configure | 21 +++++++++++++--------
- configure.ac | 17 +++++++++++------
- 2 files changed, 24 insertions(+), 14 deletions(-)
-
-diff --git a/configure b/configure
-index 1760e678e8..814376b3bd 100755
---- a/configure
-+++ b/configure
-@@ -23891,10 +23891,13 @@ $as_echo "$as_me: found $ROCM/rocprofiler/lib/librocprofiler64.so" >&6;}
- fi
-
- # HSA
-- if test -f "$ROCM/include/hsa/hsa.h" ; then
-- { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM/include/hsa/hsa.h" >&5
--$as_echo "$as_me: found $ROCM/include/hsa/hsa.h" >&6;}
-- ROCM_HSA_IFLAGS="-I$ROCM/include/hsa"
-+ # FIXME: as of rocm 5.2/5.3, this was not fully switched over,
-+ # so temporarily use both paths.
-+ if test -f "$ROCM/include/hsa/hsa.h" || test -f "$ROCM/include/hsa.h"
-+ then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM: hsa.h" >&5
-+$as_echo "$as_me: found $ROCM: hsa.h" >&6;}
-+ ROCM_HSA_IFLAGS="-I$ROCM/include -I$ROCM/include/hsa"
- ROCM_HSA_INC_MESG="$ROCM/hsa"
- found=yes
- fi
-@@ -24020,10 +24023,12 @@ case "$ROCM_HSA" in
- require_rocm=yes
- found=no
-
-- if test -f "$ROCM_HSA/include/hsa/hsa.h" ; then
-- { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM_HSA/include/hsa/hsa.h" >&5
--$as_echo "$as_me: found $ROCM_HSA/include/hsa/hsa.h" >&6;}
-- ROCM_HSA_IFLAGS="-I$ROCM_HSA/include/hsa"
-+ # FIXME: again, temporarily use both paths
-+ if test -f "$ROCM_HSA/include/hsa/hsa.h" || test -f "$ROCM_HSA/include/hsa.h"
-+ then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: found $ROCM_HSA: hsa.h" >&5
-+$as_echo "$as_me: found $ROCM_HSA: hsa.h" >&6;}
-+ ROCM_HSA_IFLAGS="-I$ROCM_HSA/include -I$ROCM_HSA/include/hsa"
- ROCM_HSA_INC_MESG="$ROCM_HSA"
- found=yes
- fi
-diff --git a/configure.ac b/configure.ac
-index a14b15835f..9d5ed46134 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -4885,9 +4885,12 @@ case "$ROCM" in
- fi
-
- # HSA
-- if test -f "$ROCM/include/hsa/hsa.h" ; then
-- AC_MSG_NOTICE([found $ROCM/include/hsa/hsa.h])
-- ROCM_HSA_IFLAGS="-I$ROCM/include/hsa"
-+ # FIXME: as of rocm 5.2/5.3, this was not fully switched over,
-+ # so temporarily use both paths.
-+ if test -f "$ROCM/include/hsa/hsa.h" || test -f "$ROCM/include/hsa.h"
-+ then
-+ AC_MSG_NOTICE([found $ROCM: hsa.h])
-+ ROCM_HSA_IFLAGS="-I$ROCM/include -I$ROCM/include/hsa"
- ROCM_HSA_INC_MESG="$ROCM/hsa"
- found=yes
- fi
-@@ -5002,9 +5005,11 @@ case "$ROCM_HSA" in
- require_rocm=yes
- found=no
-
-- if test -f "$ROCM_HSA/include/hsa/hsa.h" ; then
-- AC_MSG_NOTICE([found $ROCM_HSA/include/hsa/hsa.h])
-- ROCM_HSA_IFLAGS="-I$ROCM_HSA/include/hsa"
-+ # FIXME: again, temporarily use both paths
-+ if test -f "$ROCM_HSA/include/hsa/hsa.h" || test -f "$ROCM_HSA/include/hsa.h"
-+ then
-+ AC_MSG_NOTICE([found $ROCM_HSA: hsa.h])
-+ ROCM_HSA_IFLAGS="-I$ROCM_HSA/include -I$ROCM_HSA/include/hsa"
- ROCM_HSA_INC_MESG="$ROCM_HSA"
- found=yes
- fi
---
-GitLab
-
diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py
index 66972f3938..3f7e53f7e4 100644
--- a/var/spack/repos/builtin/packages/hpctoolkit/package.py
+++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py
@@ -27,6 +27,7 @@ class Hpctoolkit(AutotoolsPackage):
test_requires_compiler = True
version("develop", branch="develop")
+ version("2023.03.01", commit="9e0daf2ad169f6c7f6c60408475b3c2f71baebbf")
version("2022.10.01", commit="e8a5cc87e8f5ddfd14338459a4106f8e0d162c83")
version("2022.05.15", commit="8ac72d9963c4ed7b7f56acb65feb02fbce353479")
version("2022.04.15", commit="a92fdad29fc180cc522a9087bba9554a829ee002")
@@ -45,17 +46,19 @@ class Hpctoolkit(AutotoolsPackage):
# Options for MPI and hpcprof-mpi. We always support profiling
# MPI applications. These options add hpcprof-mpi, the MPI
- # version of hpcprof. Cray needs a separate option because an
- # external MPI module in packages.yaml doesn't work.
+ # version of hpcprof. Cray is a separate option for old systems
+ # where an external MPI module doesn't work.
variant(
- "cray", default=False, description="Build hpcprof-mpi for Cray systems (requires --dirty)."
+ "cray",
+ default=False,
+ description="Build hpcprof-mpi for Cray systems (may require --dirty).",
)
variant(
"cray-static",
default=False,
description="Build old rev of hpcprof-mpi statically on Cray systems.",
- when="@:2022.09",
+ when="@:2022.09+cray",
)
variant(
@@ -93,14 +96,16 @@ class Hpctoolkit(AutotoolsPackage):
)
variant("opencl", default=False, description="Support offloading with OpenCL.")
-
variant("rocm", default=False, description="Support ROCM on AMD GPUs.", when="@2022.04:")
# Other variants.
variant("debug", default=False, description="Build in debug (develop) mode.")
-
variant("viewer", default=True, description="Include hpcviewer.")
+ variant(
+ "python", default=False, description="Support unwinding Python source.", when="@2023.03:"
+ )
+
boost_libs = (
"+atomic +chrono +date_time +filesystem +system +thread +timer"
" +graph +regex +shared +multithreaded visibility=global"
@@ -121,6 +126,7 @@ class Hpctoolkit(AutotoolsPackage):
depends_on("libiberty+pic", when="@2022.10:")
depends_on("libmonitor+hpctoolkit~dlopen", when="@2021.00:")
depends_on("libmonitor+hpctoolkit+dlopen", when="@:2020")
+ depends_on("libmonitor@2023.02.13:", when="@2023.01:")
depends_on("libmonitor@2021.11.08:", when="@2022.01:")
depends_on("libunwind@1.4: +xz+pic")
depends_on("mbedtls+pic", when="@:2022.03")
@@ -139,9 +145,11 @@ class Hpctoolkit(AutotoolsPackage):
depends_on("memkind", type=("build", "run"), when="@2021.05.01:")
depends_on("papi", when="+papi")
depends_on("libpfm4", when="~papi")
+ depends_on("mpi", when="+cray")
depends_on("mpi", when="+mpi")
depends_on("hpcviewer@2022.10:", type="run", when="@2022.10: +viewer")
depends_on("hpcviewer", type="run", when="+viewer")
+ depends_on("python@3.10:", type=("build", "run"), when="+python")
# Avoid 'link' dep, we don't actually link, and that adds rpath
# that conflicts with app.
@@ -159,16 +167,14 @@ class Hpctoolkit(AutotoolsPackage):
conflicts("+cray", when="@2022.10.01", msg="hpcprof-mpi is not available in 2022.10.01")
conflicts("+mpi", when="@2022.10.01", msg="hpcprof-mpi is not available in 2022.10.01")
- # Fix the build for old revs with gcc 10.x.
- patch("gcc10-enum.patch", when="@2020.01.01:2020.08 %gcc@10.0:")
+ conflicts(
+ "^hip@5.3:", when="@:2022.12", msg="rocm 5.3 requires hpctoolkit 2023.03.01 or later"
+ )
+ # Fix the build for old revs with gcc 10.x and 11.x.
+ patch("gcc10-enum.patch", when="@2020.01.01:2020.08 %gcc@10.0:")
patch("511afd95b01d743edc5940c84e0079f462b2c23e.patch", when="@2019.08.01:2021.03 %gcc@11.0:")
- # Update configure for rocm 5.3.0
- patch(
- "411d62544717873432c49ef45c7cb99cc5de2fb8.patch", when="@2022.04:2022.10 +rocm ^hip@5.3.0:"
- )
-
# Change python to python3 for some old revs that use a script
# with /usr/bin/env python.
depends_on("python@3.4:", type="build", when="@2020.03:2020.08")
@@ -249,6 +255,10 @@ class Hpctoolkit(AutotoolsPackage):
]
)
+ if spec.satisfies("+python"):
+ p3config = join_path(spec["python"].prefix, "bin", "python3-config")
+ args.append("--with-python=%s" % p3config)
+
# MPI options for hpcprof-mpi. +cray supersedes +mpi.
if spec.satisfies("+cray"):
args.append("--enable-mpi-search=cray")