diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/hpctoolkit/411d62544717873432c49ef45c7cb99cc5de2fb8.patch | 91 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/hpctoolkit/package.py | 36 |
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") |