summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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")