Restore openspeedshop and openspeedshop-utils, update the cbtf components (#35052)
This commit is contained in:
parent
7c122da48b
commit
a913ed229d
@ -17,7 +17,10 @@ class CbtfArgonavisGui(QMakePackage):
|
|||||||
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
||||||
git = "https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git"
|
git = "https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
version("develop", branch="master")
|
version("develop", branch="master")
|
||||||
|
version("1.3.0.0", branch="1.3.0.0")
|
||||||
|
|
||||||
depends_on("cmake@3.0.2:", type="build")
|
depends_on("cmake@3.0.2:", type="build")
|
||||||
|
|
||||||
@ -31,21 +34,28 @@ class CbtfArgonavisGui(QMakePackage):
|
|||||||
depends_on(Boost.with_default_variants)
|
depends_on(Boost.with_default_variants)
|
||||||
|
|
||||||
# For MRNet
|
# For MRNet
|
||||||
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop")
|
depends_on("mrnet@5.0.1-3+lwthreads", when="@1.3.0.0:9999")
|
||||||
|
|
||||||
# Dependencies for the openspeedshop cbtf packages.
|
# Dependencies for the openspeedshop cbtf packages.
|
||||||
depends_on("cbtf@develop", when="@develop")
|
depends_on("cbtf@develop", when="@develop")
|
||||||
|
depends_on("cbtf@1.9.3:9999", when="@1.3.0.0:9999")
|
||||||
|
|
||||||
depends_on("cbtf-krell@develop", when="@develop")
|
depends_on("cbtf-krell@develop", when="@develop")
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999", when="@1.3.0.0:9999")
|
||||||
|
|
||||||
depends_on("cbtf-argonavis@develop", when="@develop")
|
depends_on("cbtf-argonavis@develop", when="@develop")
|
||||||
|
depends_on("cbtf-argonavis@1.9.3:9999", when="@1.3.0.0:9999")
|
||||||
|
|
||||||
depends_on("cuda")
|
depends_on("cuda")
|
||||||
|
|
||||||
|
depends_on("openspeedshop-utils+cuda@develop", when="@develop")
|
||||||
|
depends_on("openspeedshop-utils@2.4.0:+cuda", when="@1.3.0.0:9999")
|
||||||
|
|
||||||
# For Xerces-C
|
# For Xerces-C
|
||||||
depends_on("xerces-c")
|
depends_on("xerces-c")
|
||||||
|
|
||||||
depends_on("graphviz@2.40.1:", when="@develop")
|
depends_on("graphviz@2.40.1:", when="@develop")
|
||||||
|
depends_on("graphviz@2.40.1", when="@1.3.0.0:9999")
|
||||||
|
|
||||||
depends_on("qtgraph")
|
depends_on("qtgraph")
|
||||||
|
|
||||||
@ -57,6 +67,7 @@ def setup_build_environment(self, env):
|
|||||||
env.set("CBTF_ROOT", self.spec["cbtf"].prefix)
|
env.set("CBTF_ROOT", self.spec["cbtf"].prefix)
|
||||||
env.set("CBTF_KRELL_ROOT", self.spec["cbtf-krell"].prefix)
|
env.set("CBTF_KRELL_ROOT", self.spec["cbtf-krell"].prefix)
|
||||||
env.set("CBTF_ARGONAVIS_ROOT", self.spec["cbtf-argonavis"].prefix)
|
env.set("CBTF_ARGONAVIS_ROOT", self.spec["cbtf-argonavis"].prefix)
|
||||||
|
env.set("OSS_CBTF_ROOT", self.spec["openspeedshop-utils"].prefix)
|
||||||
env.set("GRAPHVIZ_ROOT", self.spec["graphviz"].prefix)
|
env.set("GRAPHVIZ_ROOT", self.spec["graphviz"].prefix)
|
||||||
env.set("QTGRAPHLIB_ROOT", self.spec["qtgraph"].prefix)
|
env.set("QTGRAPHLIB_ROOT", self.spec["qtgraph"].prefix)
|
||||||
env.set("KRELL_ROOT_MRNET", self.spec["mrnet"].prefix)
|
env.set("KRELL_ROOT_MRNET", self.spec["mrnet"].prefix)
|
||||||
@ -79,6 +90,10 @@ def setup_run_environment(self, env):
|
|||||||
join_path(qtgraph_lib_dir, "{0}".format(self.spec["qt"].version.up_to(3))),
|
join_path(qtgraph_lib_dir, "{0}".format(self.spec["qt"].version.up_to(3))),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# The openspeedshop libraries are needed to actually load the
|
||||||
|
# performance information into the GUI.
|
||||||
|
env.prepend_path("LD_LIBRARY_PATH", self.spec["openspeedshop-utils"].prefix.lib64)
|
||||||
|
|
||||||
def qmake_args(self):
|
def qmake_args(self):
|
||||||
options = ["-o", "Makefile", "openss-gui.pro"]
|
options = ["-o", "Makefile", "openss-gui.pro"]
|
||||||
return options
|
return options
|
||||||
|
@ -15,7 +15,12 @@ class CbtfArgonavis(CMakePackage):
|
|||||||
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
||||||
git = "https://github.com/OpenSpeedShop/cbtf-argonavis.git"
|
git = "https://github.com/OpenSpeedShop/cbtf-argonavis.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
version("develop", branch="master")
|
version("develop", branch="master")
|
||||||
|
version("1.9.4.1", branch="1.9.4.1")
|
||||||
|
version("1.9.4", branch="1.9.4")
|
||||||
|
version("1.9.3", branch="1.9.3")
|
||||||
|
|
||||||
variant(
|
variant(
|
||||||
"crayfe",
|
"crayfe",
|
||||||
@ -51,12 +56,17 @@ class CbtfArgonavis(CMakePackage):
|
|||||||
|
|
||||||
# For MRNet
|
# For MRNet
|
||||||
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("mrnet@5.0.1-3+lwthreads", when="@1.9.3:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
# For CBTF
|
# For CBTF
|
||||||
depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
|
depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf@1.9.3:9999", when="@1.9.3:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
# For CBTF with runtime
|
# For CBTF with runtime
|
||||||
depends_on("cbtf@develop+runtime", when="@develop+runtime", type=("build", "link", "run"))
|
depends_on("cbtf@develop+runtime", when="@develop+runtime", type=("build", "link", "run"))
|
||||||
|
depends_on(
|
||||||
|
"cbtf@1.9.3:9999+runtime", when="@1.9.3:9999+runtime", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
# For libmonitor
|
# For libmonitor
|
||||||
depends_on("libmonitor@2013.02.18+commrank", type=("build", "link", "run"))
|
depends_on("libmonitor@2013.02.18+commrank", type=("build", "link", "run"))
|
||||||
@ -66,10 +76,14 @@ class CbtfArgonavis(CMakePackage):
|
|||||||
|
|
||||||
# For CBTF-KRELL
|
# For CBTF-KRELL
|
||||||
depends_on("cbtf-krell@develop", when="@develop", type=("build", "link", "run"))
|
depends_on("cbtf-krell@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999", when="@1.9.3:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
depends_on(
|
depends_on(
|
||||||
"cbtf-krell@develop+runtime", when="@develop+runtime", type=("build", "link", "run")
|
"cbtf-krell@develop+runtime", when="@develop+runtime", type=("build", "link", "run")
|
||||||
)
|
)
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+runtime", when="@1.9.3:9999+runtime", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
# For CUDA
|
# For CUDA
|
||||||
depends_on("cuda")
|
depends_on("cuda")
|
||||||
|
@ -18,7 +18,12 @@ class CbtfKrell(CMakePackage):
|
|||||||
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
||||||
git = "https://github.com/OpenSpeedShop/cbtf-krell.git"
|
git = "https://github.com/OpenSpeedShop/cbtf-krell.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
version("develop", branch="master")
|
version("develop", branch="master")
|
||||||
|
version("1.9.4.1", branch="1.9.4.1")
|
||||||
|
version("1.9.4", branch="1.9.4")
|
||||||
|
version("1.9.3", branch="1.9.3")
|
||||||
|
|
||||||
# MPI variants
|
# MPI variants
|
||||||
variant(
|
variant(
|
||||||
@ -55,7 +60,7 @@ class CbtfKrell(CMakePackage):
|
|||||||
depends_on("libtirpc", type="link")
|
depends_on("libtirpc", type="link")
|
||||||
|
|
||||||
# For binutils
|
# For binutils
|
||||||
depends_on("binutils+plugins~gold@2.32")
|
depends_on("binutils@2.32")
|
||||||
|
|
||||||
# For boost
|
# For boost
|
||||||
depends_on("boost@1.70.0:")
|
depends_on("boost@1.70.0:")
|
||||||
@ -67,23 +72,30 @@ class CbtfKrell(CMakePackage):
|
|||||||
|
|
||||||
# For Dyninst
|
# For Dyninst
|
||||||
depends_on("dyninst@10.1.0", when="@develop")
|
depends_on("dyninst@10.1.0", when="@develop")
|
||||||
|
depends_on("dyninst@10.1.0", when="@1.9.3:9999")
|
||||||
|
|
||||||
# For MRNet
|
# For MRNet
|
||||||
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("mrnet@5.0.1-3+lwthreads", when="@1.9.3:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
# For Xerces-C
|
# For Xerces-C
|
||||||
depends_on("xerces-c")
|
depends_on("xerces-c")
|
||||||
|
|
||||||
# For CBTF
|
# For CBTF
|
||||||
depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
|
depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf@1.9.3:9999", when="@1.9.3:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
# For CBTF with runtime
|
# For CBTF with runtime
|
||||||
depends_on("cbtf@develop+runtime", when="@develop+runtime", type=("build", "link", "run"))
|
depends_on("cbtf@develop+runtime", when="@develop+runtime", type=("build", "link", "run"))
|
||||||
|
depends_on(
|
||||||
|
"cbtf@1.9.3:9999+runtime", when="@1.9.3:9999+runtime", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
# for services and collectors
|
# for services and collectors
|
||||||
depends_on("libmonitor@2013.02.18+commrank", type=("build", "link", "run"))
|
depends_on("libmonitor@2013.02.18+commrank", type=("build", "link", "run"))
|
||||||
|
|
||||||
depends_on("libunwind", when="@develop")
|
depends_on("libunwind", when="@develop")
|
||||||
|
depends_on("libunwind@1.2.1", when="@1.9.3:9999")
|
||||||
|
|
||||||
depends_on("papi@5.4.1:", type=("build", "link", "run"))
|
depends_on("papi@5.4.1:", type=("build", "link", "run"))
|
||||||
|
|
||||||
@ -95,9 +107,7 @@ class CbtfKrell(CMakePackage):
|
|||||||
depends_on("mvapich2@2:", when="+mvapich2")
|
depends_on("mvapich2@2:", when="+mvapich2")
|
||||||
depends_on("mpt", when="+mpt")
|
depends_on("mpt", when="+mpt")
|
||||||
|
|
||||||
depends_on("python", when="@develop", type=("build", "run"))
|
depends_on("python", type=("build", "run"))
|
||||||
|
|
||||||
depends_on("gotcha")
|
|
||||||
|
|
||||||
patch("arm.patch", when="target=aarch64:")
|
patch("arm.patch", when="target=aarch64:")
|
||||||
|
|
||||||
|
@ -13,7 +13,12 @@ class CbtfLanl(CMakePackage):
|
|||||||
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
homepage = "https://sourceforge.net/p/cbtf/wiki/Home/"
|
||||||
git = "https://github.com/OpenSpeedShop/cbtf-lanl.git"
|
git = "https://github.com/OpenSpeedShop/cbtf-lanl.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
version("develop", branch="master")
|
version("develop", branch="master")
|
||||||
|
version("1.9.4.1", branch="1.9.4.1")
|
||||||
|
version("1.9.4", branch="1.9.4")
|
||||||
|
version("1.9.3", branch="1.9.3")
|
||||||
|
|
||||||
variant(
|
variant(
|
||||||
"build_type",
|
"build_type",
|
||||||
@ -30,20 +35,25 @@ class CbtfLanl(CMakePackage):
|
|||||||
|
|
||||||
# For MRNet
|
# For MRNet
|
||||||
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop")
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop")
|
||||||
|
depends_on("mrnet@5.0.1-3+lwthreads", when="@1.9.3:9999")
|
||||||
|
|
||||||
# For Xerces-C
|
# For Xerces-C
|
||||||
depends_on("xerces-c")
|
depends_on("xerces-c")
|
||||||
|
|
||||||
# For CBTF
|
# For CBTF
|
||||||
depends_on("cbtf@develop", when="@develop")
|
depends_on("cbtf@develop", when="@develop")
|
||||||
|
depends_on("cbtf@1.9.3:9999", when="@1.9.3:9999")
|
||||||
|
|
||||||
# For CBTF with runtime
|
# For CBTF with runtime
|
||||||
depends_on("cbtf@develop+runtime", when="@develop+runtime")
|
depends_on("cbtf@develop+runtime", when="@develop+runtime")
|
||||||
|
depends_on("cbtf@1.9.3:9999+runtime", when="@1.9.3:9999+runtime")
|
||||||
|
|
||||||
# For CBTF-KRELL
|
# For CBTF-KRELL
|
||||||
depends_on("cbtf-krell@develop", when="@develop")
|
depends_on("cbtf-krell@develop", when="@develop")
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999", when="@1.9.3:9999")
|
||||||
|
|
||||||
depends_on("cbtf-krell@develop+runtime", when="@develop+runtime")
|
depends_on("cbtf-krell@develop+runtime", when="@develop+runtime")
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999+runtime", when="@1.9.3:9999+runtime")
|
||||||
|
|
||||||
parallel = False
|
parallel = False
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ class Cbtf(CMakePackage):
|
|||||||
homepage = "https://sourceforge.net/p/cbtf/wiki/Home"
|
homepage = "https://sourceforge.net/p/cbtf/wiki/Home"
|
||||||
git = "https://github.com/OpenSpeedShop/cbtf.git"
|
git = "https://github.com/OpenSpeedShop/cbtf.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
version("develop", branch="master")
|
version("develop", branch="master")
|
||||||
version("1.9.4.1", branch="1.9.4.1")
|
version("1.9.4.1", branch="1.9.4.1")
|
||||||
version("1.9.4", branch="1.9.4")
|
version("1.9.4", branch="1.9.4")
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
diff --git a/plugins/views/iot/iot_view.cxx b/plugins/views/iot/iot_view.cxx
|
||||||
|
index f4cdf48..ef1b81f 100644
|
||||||
|
--- a/plugins/views/iot/iot_view.cxx
|
||||||
|
+++ b/plugins/views/iot/iot_view.cxx
|
||||||
|
@@ -45,6 +45,20 @@
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
/* End part 2 of 2 for Hack to get around inconsistent syscall definitions */
|
||||||
|
+/* Start Added Hack to get around inconsistent syscall definitions */
|
||||||
|
+#ifndef SYS_open
|
||||||
|
+#define SYS_open SYS_openat
|
||||||
|
+#endif
|
||||||
|
+#ifndef SYS_creat
|
||||||
|
+#define SYS_creat SYS_openat
|
||||||
|
+#endif
|
||||||
|
+#ifndef SYS_dup2
|
||||||
|
+#define SYS_dup2 SYS_dup3
|
||||||
|
+#endif
|
||||||
|
+#ifndef SYS_pipe
|
||||||
|
+#define SYS_pipe SYS_pipe2
|
||||||
|
+#endif
|
||||||
|
+/* end Added Hack to get around inconsistent syscall definitions */
|
||||||
|
|
||||||
|
|
||||||
|
|
321
var/spack/repos/builtin/packages/openspeedshop-utils/package.py
Normal file
321
var/spack/repos/builtin/packages/openspeedshop-utils/package.py
Normal file
@ -0,0 +1,321 @@
|
|||||||
|
# Copyright 2013-2023 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)
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import spack.store
|
||||||
|
from spack.package import *
|
||||||
|
from spack.pkg.builtin.boost import Boost
|
||||||
|
|
||||||
|
|
||||||
|
class OpenspeedshopUtils(CMakePackage):
|
||||||
|
"""OpenSpeedShop is a community effort led by Trenza, Inc.
|
||||||
|
It builds on top of a broad list of community infrastructures,
|
||||||
|
most notably Dyninst and MRNet from UW, libmonitor from Rice,
|
||||||
|
and PAPI from UTK. OpenSpeedShop is an open source multi platform
|
||||||
|
Linux performance tool which is targeted to support performance
|
||||||
|
analysis of applications running on both single node and large
|
||||||
|
scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue
|
||||||
|
Gene and Cray platforms. OpenSpeedShop development is hosted by
|
||||||
|
Trenza Inc.. The infrastructure and base components of OpenSpeedShop
|
||||||
|
are released as open source code primarily under LGPL.
|
||||||
|
openspeedshop-utils is a package that does not have the
|
||||||
|
qt3 gui. It was created to avoid a conflict between
|
||||||
|
openspeedshop and cbtf-argonavis-gui based on the fact
|
||||||
|
that spack will not allow a qt3 and qt4/qt5 dependency in a
|
||||||
|
packages dependency tree.
|
||||||
|
"""
|
||||||
|
|
||||||
|
homepage = "http://www.openspeedshop.org"
|
||||||
|
git = "https://github.com/OpenSpeedShop/openspeedshop.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
|
version("develop", branch="master")
|
||||||
|
version("2.4.2.1", branch="2.4.2.1")
|
||||||
|
version("2.4.2", branch="2.4.2")
|
||||||
|
version("2.4.1", branch="2.4.1")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"runtime", default=False, description="build only the runtime libraries and collectors."
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"crayfe",
|
||||||
|
default=False,
|
||||||
|
description="build only the FE tool using the runtime_dir \
|
||||||
|
to point to target build.",
|
||||||
|
)
|
||||||
|
variant("cuda", default=False, description="build with cuda packages included.")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"build_type",
|
||||||
|
default="RelWithDebInfo",
|
||||||
|
description="The build type to build",
|
||||||
|
values=("Debug", "Release", "RelWithDebInfo"),
|
||||||
|
)
|
||||||
|
|
||||||
|
# MPI variants
|
||||||
|
variant(
|
||||||
|
"openmpi",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for openmpi \
|
||||||
|
MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"mpt",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for SGI \
|
||||||
|
MPT MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"mvapich2",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for mvapich2\
|
||||||
|
MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"mpich2",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for mpich2\
|
||||||
|
MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cmake@3.0.2:", type="build")
|
||||||
|
|
||||||
|
# Dependencies for openspeedshop that are common to all
|
||||||
|
# the variants of the OpenSpeedShop build
|
||||||
|
depends_on("libtool", type="build")
|
||||||
|
depends_on("bison", type="build")
|
||||||
|
depends_on("flex@2.6.1", type="build")
|
||||||
|
|
||||||
|
# For binutils
|
||||||
|
depends_on("binutils@2.32", type="build")
|
||||||
|
|
||||||
|
depends_on("elfutils", type="link")
|
||||||
|
depends_on("libdwarf")
|
||||||
|
|
||||||
|
depends_on("sqlite")
|
||||||
|
|
||||||
|
# For boost
|
||||||
|
depends_on("boost@1.66.0:1.69.0")
|
||||||
|
# TODO: replace this with an explicit list of components of Boost,
|
||||||
|
# for instance depends_on('boost +filesystem')
|
||||||
|
# See https://github.com/spack/spack/pull/22303 for reference
|
||||||
|
depends_on(Boost.with_default_variants)
|
||||||
|
|
||||||
|
depends_on("dyninst@10:", when="@2.4.0:9999")
|
||||||
|
|
||||||
|
depends_on("python", type=("build", "run"))
|
||||||
|
|
||||||
|
depends_on("libxml2")
|
||||||
|
|
||||||
|
# Dependencies for the openspeedshop cbtf packages.
|
||||||
|
depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop+crayfe", when="@develop+crayfe", type=("build", "link", "run"))
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+crayfe", when="@2.4.0:9999+crayfe", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop+mpich2", when="@develop+mpich2", type=("build", "link", "run"))
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+mpich2", when="@2.4.0:9999+mpich2", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop+mpt", when="@develop+mpt", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999+mpt", when="@2.4.0:9999+mpt", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@develop+mvapich2", when="@develop+mvapich2", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+mvapich2",
|
||||||
|
when="@2.4.0:9999+mvapich2",
|
||||||
|
type=("build", "link", "run"),
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@develop+openmpi", when="@develop+openmpi", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+openmpi", when="@2.4.0:9999+openmpi", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cbtf-argonavis@develop", when="@develop+cuda", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-argonavis@1.9.3:9999", when="@2.4.0:9999+cuda", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
# For MRNet
|
||||||
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@2.4.0:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
patch("arm.patch", when="target=aarch64:")
|
||||||
|
parallel = False
|
||||||
|
|
||||||
|
build_directory = "build_openspeedshop"
|
||||||
|
|
||||||
|
def set_cray_login_node_cmake_options(self, spec, cmake_options):
|
||||||
|
# Appends to cmake_options the options that will enable the appropriate
|
||||||
|
# Cray login node libraries
|
||||||
|
|
||||||
|
cray_login_node_options = []
|
||||||
|
rt_platform = "cray"
|
||||||
|
|
||||||
|
# How do we get the compute node (CNL) cbtf package install
|
||||||
|
# directory path?
|
||||||
|
# spec['cbtf'].prefix is the login node value for this build, as
|
||||||
|
# we only get here when building the login node components and
|
||||||
|
# that is all that is known to spack.
|
||||||
|
be_ck = spack.store.db.query_one("cbtf-krell arch=cray-CNL-haswell")
|
||||||
|
|
||||||
|
# Equivalent to install-tool cmake arg:
|
||||||
|
# '-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
|
||||||
|
# % <base dir>/cbtf_v2.4.0elease/compute)
|
||||||
|
cray_login_node_options.append("-DCBTF_KRELL_CN_RUNTIME_DIR=%s" % be_ck.prefix)
|
||||||
|
cray_login_node_options.append("-DRUNTIME_PLATFORM=%s" % rt_platform)
|
||||||
|
|
||||||
|
cmake_options.extend(cray_login_node_options)
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
# Appends base options to cmake_args
|
||||||
|
spec = self.spec
|
||||||
|
|
||||||
|
compile_flags = "-O2 -g -Wall"
|
||||||
|
|
||||||
|
cmake_args = []
|
||||||
|
|
||||||
|
# Indicate building cbtf vers (transfer rawdata files)
|
||||||
|
instrumentor_setting = "cbtf"
|
||||||
|
|
||||||
|
if spec.satisfies("+runtime"):
|
||||||
|
self.set_defaultbase_cmake_options(spec, cmake_args)
|
||||||
|
|
||||||
|
cmake_args.extend(
|
||||||
|
[
|
||||||
|
"-DCMAKE_CXX_FLAGS=%s" % compile_flags,
|
||||||
|
"-DCMAKE_C_FLAGS=%s" % compile_flags,
|
||||||
|
"-DINSTRUMENTOR=%s" % instrumentor_setting,
|
||||||
|
"-DCBTF_DIR=%s" % spec["cbtf"].prefix,
|
||||||
|
"-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix,
|
||||||
|
"-DMRNET_DIR=%s" % spec["mrnet"].prefix,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
# Appends base options to cmake_args
|
||||||
|
self.set_defaultbase_cmake_options(spec, cmake_args)
|
||||||
|
cmake_args.extend(
|
||||||
|
[
|
||||||
|
"-DCMAKE_CXX_FLAGS=%s" % compile_flags,
|
||||||
|
"-DCMAKE_C_FLAGS=%s" % compile_flags,
|
||||||
|
"-DINSTRUMENTOR=%s" % instrumentor_setting,
|
||||||
|
"-DSQLITE3_DIR=%s" % spec["sqlite"].prefix,
|
||||||
|
"-DCBTF_DIR=%s" % spec["cbtf"].prefix,
|
||||||
|
"-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix,
|
||||||
|
"-DMRNET_DIR=%s" % spec["mrnet"].prefix,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if spec.satisfies("+crayfe"):
|
||||||
|
# We need to build target/compute node
|
||||||
|
# components/libraries first then pass
|
||||||
|
# those libraries to the openspeedshop
|
||||||
|
# login node build
|
||||||
|
self.set_cray_login_node_cmake_options(spec, cmake_args)
|
||||||
|
|
||||||
|
cmake_args.extend(["-DBUILD_QT3_GUI=FALSE"])
|
||||||
|
|
||||||
|
return cmake_args
|
||||||
|
|
||||||
|
def set_defaultbase_cmake_options(self, spec, cmake_options):
|
||||||
|
# Appends to cmake_options the options that will enable
|
||||||
|
# the appropriate base level options to the openspeedshop
|
||||||
|
# cmake build.
|
||||||
|
python_exe = spec["python"].command.path
|
||||||
|
python_library = spec["python"].libs[0]
|
||||||
|
python_include = spec["python"].headers.directories[0]
|
||||||
|
|
||||||
|
base_options = []
|
||||||
|
|
||||||
|
base_options.append("-DBINUTILS_DIR=%s" % spec["binutils"].prefix)
|
||||||
|
base_options.append("-DLIBELF_DIR=%s" % spec["elfutils"].prefix)
|
||||||
|
base_options.append("-DLIBDWARF_DIR=%s" % spec["libdwarf"].prefix)
|
||||||
|
base_options.append("-DPYTHON_EXECUTABLE=%s" % python_exe)
|
||||||
|
base_options.append("-DPYTHON_INCLUDE_DIR=%s" % python_include)
|
||||||
|
base_options.append("-DPYTHON_LIBRARY=%s" % python_library)
|
||||||
|
base_options.append("-DBoost_NO_SYSTEM_PATHS=TRUE")
|
||||||
|
base_options.append("-DBoost_NO_BOOST_CMAKE=TRUE")
|
||||||
|
base_options.append("-DBOOST_ROOT=%s" % spec["boost"].prefix)
|
||||||
|
base_options.append("-DBoost_DIR=%s" % spec["boost"].prefix)
|
||||||
|
base_options.append("-DBOOST_LIBRARYDIR=%s" % spec["boost"].prefix.lib)
|
||||||
|
base_options.append("-DDYNINST_DIR=%s" % spec["dyninst"].prefix)
|
||||||
|
|
||||||
|
cmake_options.extend(base_options)
|
||||||
|
|
||||||
|
def set_mpi_cmake_options(self, spec, cmake_options):
|
||||||
|
# Appends to cmake_options the options that will enable
|
||||||
|
# the appropriate MPI implementations
|
||||||
|
|
||||||
|
mpi_options = []
|
||||||
|
|
||||||
|
# openmpi
|
||||||
|
if spec.satisfies("+openmpi"):
|
||||||
|
mpi_options.append("-DOPENMPI_DIR=%s" % spec["openmpi"].prefix)
|
||||||
|
# mpich
|
||||||
|
if spec.satisfies("+mpich"):
|
||||||
|
mpi_options.append("-DMPICH_DIR=%s" % spec["mpich"].prefix)
|
||||||
|
# mpich2
|
||||||
|
if spec.satisfies("+mpich2"):
|
||||||
|
mpi_options.append("-DMPICH2_DIR=%s" % spec["mpich2"].prefix)
|
||||||
|
# mvapich
|
||||||
|
if spec.satisfies("+mvapich"):
|
||||||
|
mpi_options.append("-DMVAPICH_DIR=%s" % spec["mvapich"].prefix)
|
||||||
|
# mvapich2
|
||||||
|
if spec.satisfies("+mvapich2"):
|
||||||
|
mpi_options.append("-DMVAPICH2_DIR=%s" % spec["mvapich2"].prefix)
|
||||||
|
# mpt
|
||||||
|
if spec.satisfies("+mpt"):
|
||||||
|
mpi_options.append("-DMPT_DIR=%s" % spec["mpt"].prefix)
|
||||||
|
|
||||||
|
cmake_options.extend(mpi_options)
|
||||||
|
|
||||||
|
def setup_run_environment(self, env):
|
||||||
|
"""Set up the compile and runtime environments for a package."""
|
||||||
|
|
||||||
|
# Find Dyninst library path, this is needed to
|
||||||
|
# set the DYNINSTAPI_RT_LIB library which is
|
||||||
|
# required for OpenSpeedShop to find loop level
|
||||||
|
# performance information
|
||||||
|
dyninst_libdir = find_libraries(
|
||||||
|
"libdyninstAPI_RT", root=self.spec["dyninst"].prefix, shared=True, recursive=True
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set Dyninst RT library path to support OSS loop resolution code
|
||||||
|
env.set("DYNINSTAPI_RT_LIB", dyninst_libdir[0])
|
||||||
|
|
||||||
|
# Find openspeedshop library path
|
||||||
|
oss_libdir = find_libraries(
|
||||||
|
"libopenss-framework",
|
||||||
|
root=self.spec["openspeedshop-utils"].prefix,
|
||||||
|
shared=True,
|
||||||
|
recursive=True,
|
||||||
|
)
|
||||||
|
env.prepend_path("LD_LIBRARY_PATH", os.path.dirname(oss_libdir.joined()))
|
||||||
|
|
||||||
|
env.set("OPENSS_RAWDATA_DIR", ".")
|
||||||
|
|
||||||
|
cbtf_mc = "/sbin/cbtf_mrnet_commnode"
|
||||||
|
cbtf_lmb = "/sbin/cbtf_libcbtf_mrnet_backend"
|
||||||
|
env.set("XPLAT_RSH", "ssh")
|
||||||
|
env.set("MRNET_COMM_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_mc))
|
||||||
|
env.set("CBTF_MRNET_BACKEND_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_lmb))
|
||||||
|
env.prepend_path("PATH", self.spec["mrnet"].prefix.bin)
|
||||||
|
env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.bin)
|
||||||
|
env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.sbin)
|
||||||
|
env.prepend_path("PATH", self.spec["python"].prefix.bin)
|
25
var/spack/repos/builtin/packages/openspeedshop/arm.patch
Normal file
25
var/spack/repos/builtin/packages/openspeedshop/arm.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
diff --git a/plugins/views/iot/iot_view.cxx b/plugins/views/iot/iot_view.cxx
|
||||||
|
index f4cdf48..ef1b81f 100644
|
||||||
|
--- a/plugins/views/iot/iot_view.cxx
|
||||||
|
+++ b/plugins/views/iot/iot_view.cxx
|
||||||
|
@@ -45,6 +45,20 @@
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
/* End part 2 of 2 for Hack to get around inconsistent syscall definitions */
|
||||||
|
+/* Start Added Hack to get around inconsistent syscall definitions */
|
||||||
|
+#ifndef SYS_open
|
||||||
|
+#define SYS_open SYS_openat
|
||||||
|
+#endif
|
||||||
|
+#ifndef SYS_creat
|
||||||
|
+#define SYS_creat SYS_openat
|
||||||
|
+#endif
|
||||||
|
+#ifndef SYS_dup2
|
||||||
|
+#define SYS_dup2 SYS_dup3
|
||||||
|
+#endif
|
||||||
|
+#ifndef SYS_pipe
|
||||||
|
+#define SYS_pipe SYS_pipe2
|
||||||
|
+#endif
|
||||||
|
+/* end Added Hack to get around inconsistent syscall definitions */
|
||||||
|
|
||||||
|
|
||||||
|
|
363
var/spack/repos/builtin/packages/openspeedshop/package.py
Normal file
363
var/spack/repos/builtin/packages/openspeedshop/package.py
Normal file
@ -0,0 +1,363 @@
|
|||||||
|
# Copyright 2013-2023 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)
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import spack.store
|
||||||
|
from spack.package import *
|
||||||
|
from spack.pkg.builtin.boost import Boost
|
||||||
|
|
||||||
|
|
||||||
|
class Openspeedshop(CMakePackage):
|
||||||
|
"""OpenSpeedShop is a community effort led by Trenza, Inc.
|
||||||
|
It builds on top of a broad list of community infrastructures,
|
||||||
|
most notably Dyninst and MRNet from UW, libmonitor from Rice,
|
||||||
|
and PAPI from UTK. OpenSpeedShop is an open source multi platform
|
||||||
|
Linux performance tool which is targeted to support performance
|
||||||
|
analysis of applications running on both single node and large
|
||||||
|
scale IA64, IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue
|
||||||
|
Gene and Cray platforms. OpenSpeedShop development is hosted by
|
||||||
|
Trenza Inc.. The infrastructure and base components of OpenSpeedShop
|
||||||
|
are released as open source code primarily under LGPL.
|
||||||
|
"""
|
||||||
|
|
||||||
|
homepage = "http://www.openspeedshop.org"
|
||||||
|
git = "https://github.com/OpenSpeedShop/openspeedshop.git"
|
||||||
|
|
||||||
|
maintainers = ["jgalarowicz"]
|
||||||
|
|
||||||
|
version("develop", branch="master")
|
||||||
|
version("2.4.2.1", branch="2.4.2.1")
|
||||||
|
version("2.4.2", branch="2.4.2")
|
||||||
|
version("2.4.1", branch="2.4.1")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"runtime", default=False, description="build only the runtime libraries and collectors."
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"crayfe",
|
||||||
|
default=False,
|
||||||
|
description="build only the FE tool using the runtime_dir \
|
||||||
|
to point to target build.",
|
||||||
|
)
|
||||||
|
variant("cuda", default=False, description="build with cuda packages included.")
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"gui",
|
||||||
|
default="none",
|
||||||
|
values=("none", "qt3", "qt4"),
|
||||||
|
description="Build or not build a GUI of choice",
|
||||||
|
)
|
||||||
|
|
||||||
|
variant(
|
||||||
|
"build_type",
|
||||||
|
default="RelWithDebInfo",
|
||||||
|
description="The build type to build",
|
||||||
|
values=("Debug", "Release", "RelWithDebInfo"),
|
||||||
|
)
|
||||||
|
|
||||||
|
# MPI variants
|
||||||
|
variant(
|
||||||
|
"openmpi",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for openmpi \
|
||||||
|
MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"mpt",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for SGI \
|
||||||
|
MPT MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"mvapich2",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for mvapich2\
|
||||||
|
MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
variant(
|
||||||
|
"mpich2",
|
||||||
|
default=False,
|
||||||
|
description="Build mpi collector for mpich2\
|
||||||
|
MPI when variant is enabled.",
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cmake@3.0.2:", type="build")
|
||||||
|
|
||||||
|
# Dependencies for openspeedshop that are common to all
|
||||||
|
# the variants of the OpenSpeedShop build
|
||||||
|
depends_on("libtool", type="build")
|
||||||
|
depends_on("bison", type="build")
|
||||||
|
depends_on("flex@2.6.1", type="build")
|
||||||
|
|
||||||
|
# For binutils
|
||||||
|
depends_on("binutils@2.32")
|
||||||
|
|
||||||
|
depends_on("elfutils", type="link")
|
||||||
|
depends_on("libdwarf")
|
||||||
|
|
||||||
|
depends_on("sqlite")
|
||||||
|
|
||||||
|
# For boost
|
||||||
|
depends_on("boost@1.70.0:")
|
||||||
|
# TODO: replace this with an explicit list of components of Boost,
|
||||||
|
# for instance depends_on('boost +filesystem')
|
||||||
|
# See https://github.com/spack/spack/pull/22303 for reference
|
||||||
|
depends_on(Boost.with_default_variants)
|
||||||
|
|
||||||
|
depends_on("dyninst@10:", when="@2.4.0:9999")
|
||||||
|
|
||||||
|
depends_on("python", type=("build", "run"))
|
||||||
|
|
||||||
|
depends_on("libxml2")
|
||||||
|
|
||||||
|
depends_on("qt@3:3.9", when="gui=qt3")
|
||||||
|
|
||||||
|
# Dependencies for the openspeedshop cbtf packages.
|
||||||
|
depends_on("cbtf@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999", when="@2.4.0:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop+crayfe", when="@develop+crayfe", type=("build", "link", "run"))
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+crayfe", when="@2.4.0:9999+crayfe", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop+mpich2", when="@develop+mpich2", type=("build", "link", "run"))
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+mpich2", when="@2.4.0:9999+mpich2", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cbtf-krell@develop+mpt", when="@develop+mpt", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-krell@1.9.3:9999+mpt", when="@2.4.0:9999+mpt", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@develop+mvapich2", when="@develop+mvapich2", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+mvapich2",
|
||||||
|
when="@2.4.0:9999+mvapich2",
|
||||||
|
type=("build", "link", "run"),
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@develop+openmpi", when="@develop+openmpi", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
depends_on(
|
||||||
|
"cbtf-krell@1.9.3:9999+openmpi", when="@2.4.0:9999+openmpi", type=("build", "link", "run")
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("cbtf-argonavis@develop", when="@develop+cuda", type=("build", "link", "run"))
|
||||||
|
depends_on("cbtf-argonavis@1.9.3:9999", when="@2.4.0:9999+cuda", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
# For MRNet
|
||||||
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@develop", type=("build", "link", "run"))
|
||||||
|
depends_on("mrnet@5.0.1-3:+lwthreads", when="@2.4.0:9999", type=("build", "link", "run"))
|
||||||
|
|
||||||
|
patch("arm.patch", when="target=aarch64:")
|
||||||
|
parallel = False
|
||||||
|
|
||||||
|
build_directory = "build_openspeedshop"
|
||||||
|
|
||||||
|
def set_cray_login_node_cmake_options(self, spec, cmake_options):
|
||||||
|
# Appends to cmake_options the options that will enable the appropriate
|
||||||
|
# Cray login node libraries
|
||||||
|
|
||||||
|
cray_login_node_options = []
|
||||||
|
rt_platform = "cray"
|
||||||
|
|
||||||
|
# How do we get the compute node (CNL) cbtf package install
|
||||||
|
# directory path?
|
||||||
|
# spec['cbtf'].prefix is the login node value for this build, as
|
||||||
|
# we only get here when building the login node components and
|
||||||
|
# that is all that is known to spack.
|
||||||
|
store = spack.store
|
||||||
|
be_ck = store.db.query_one("cbtf-krell arch=cray-CNL-haswell")
|
||||||
|
|
||||||
|
# Equivalent to install-tool cmake arg:
|
||||||
|
# '-DCBTF_KRELL_CN_RUNTIME_DIR=%s'
|
||||||
|
# % <base dir>/cbtf_v2.4.0.release/compute)
|
||||||
|
cray_login_node_options.append("-DCBTF_KRELL_CN_RUNTIME_DIR=%s" % be_ck.prefix)
|
||||||
|
cray_login_node_options.append("-DRUNTIME_PLATFORM=%s" % rt_platform)
|
||||||
|
|
||||||
|
cmake_options.extend(cray_login_node_options)
|
||||||
|
|
||||||
|
def cmake_args(self):
|
||||||
|
|
||||||
|
spec = self.spec
|
||||||
|
|
||||||
|
compile_flags = "-O2 -g -Wall"
|
||||||
|
|
||||||
|
cmake_args = []
|
||||||
|
|
||||||
|
# Indicate building cbtf vers (transfer rawdata files)
|
||||||
|
instrumentor_setting = "cbtf"
|
||||||
|
|
||||||
|
if spec.satisfies("+runtime"):
|
||||||
|
# Appends base options to cmake_args
|
||||||
|
self.set_defaultbase_cmake_options(spec, cmake_args)
|
||||||
|
cmake_args.extend(
|
||||||
|
[
|
||||||
|
"-DCMAKE_CXX_FLAGS=%s" % compile_flags,
|
||||||
|
"-DCMAKE_C_FLAGS=%s" % compile_flags,
|
||||||
|
"-DINSTRUMENTOR=%s" % instrumentor_setting,
|
||||||
|
"-DCBTF_DIR=%s" % spec["cbtf"].prefix,
|
||||||
|
"-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix,
|
||||||
|
"-DMRNET_DIR=%s" % spec["mrnet"].prefix,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if spec.satisfies("+cuda"):
|
||||||
|
cmake_args.extend(["-DCBTF_ARGONAVIS_DIR=%s" % spec["cbtf-argonavis"].prefix])
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
# Appends base options to cmake_args
|
||||||
|
self.set_defaultbase_cmake_options(spec, cmake_args)
|
||||||
|
guitype = self.spec.variants["gui"].value
|
||||||
|
cmake_args.extend(
|
||||||
|
[
|
||||||
|
"-DCMAKE_CXX_FLAGS=%s" % compile_flags,
|
||||||
|
"-DCMAKE_C_FLAGS=%s" % compile_flags,
|
||||||
|
"-DINSTRUMENTOR=%s" % instrumentor_setting,
|
||||||
|
"-DSQLITE3_DIR=%s" % spec["sqlite"].prefix,
|
||||||
|
"-DCBTF_DIR=%s" % spec["cbtf"].prefix,
|
||||||
|
"-DCBTF_KRELL_DIR=%s" % spec["cbtf-krell"].prefix,
|
||||||
|
"-DMRNET_DIR=%s" % spec["mrnet"].prefix,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
if guitype == "none":
|
||||||
|
cmake_args.extend(["-DBUILD_QT3_GUI=FALSE"])
|
||||||
|
elif guitype == "qt4":
|
||||||
|
cmake_args.extend(["-DBUILD_QT3_GUI=FALSE"])
|
||||||
|
elif guitype == "qt3":
|
||||||
|
cmake_args.extend(["-DQTLIB_DIR=%s" % spec["qt"].prefix])
|
||||||
|
|
||||||
|
if spec.satisfies("+cuda"):
|
||||||
|
cmake_args.extend(["-DCBTF_ARGONAVIS_DIR=%s" % spec["cbtf-argonavis"].prefix])
|
||||||
|
|
||||||
|
if spec.satisfies("+crayfe"):
|
||||||
|
# We need to build target/compute node
|
||||||
|
# components/libraries first then pass
|
||||||
|
# those libraries to the openspeedshop
|
||||||
|
# login node build
|
||||||
|
self.set_cray_login_node_cmake_options(spec, cmake_args)
|
||||||
|
|
||||||
|
return cmake_args
|
||||||
|
|
||||||
|
def set_defaultbase_cmake_options(self, spec, cmake_options):
|
||||||
|
# Appends to cmake_options the options that will enable
|
||||||
|
# the appropriate base level options to the openspeedshop
|
||||||
|
# cmake build.
|
||||||
|
python_exe = spec["python"].command.path
|
||||||
|
python_library = spec["python"].libs[0]
|
||||||
|
python_include = spec["python"].headers.directories[0]
|
||||||
|
true_value = "TRUE"
|
||||||
|
|
||||||
|
base_options = []
|
||||||
|
|
||||||
|
base_options.append("-DBINUTILS_DIR=%s" % spec["binutils"].prefix)
|
||||||
|
base_options.append("-DLIBELF_DIR=%s" % spec["elfutils"].prefix)
|
||||||
|
base_options.append("-DLIBDWARF_DIR=%s" % spec["libdwarf"].prefix)
|
||||||
|
base_options.append("-DPYTHON_EXECUTABLE=%s" % python_exe)
|
||||||
|
base_options.append("-DPYTHON_INCLUDE_DIR=%s" % python_include)
|
||||||
|
base_options.append("-DPYTHON_LIBRARY=%s" % python_library)
|
||||||
|
base_options.append("-DBoost_NO_SYSTEM_PATHS=%s" % true_value)
|
||||||
|
base_options.append("-DBoost_NO_BOOST_CMAKE=%s" % true_value)
|
||||||
|
base_options.append("-DBOOST_ROOT=%s" % spec["boost"].prefix)
|
||||||
|
base_options.append("-DBoost_DIR=%s" % spec["boost"].prefix)
|
||||||
|
base_options.append("-DBOOST_LIBRARYDIR=%s" % spec["boost"].prefix.lib)
|
||||||
|
base_options.append("-DDYNINST_DIR=%s" % spec["dyninst"].prefix)
|
||||||
|
|
||||||
|
cmake_options.extend(base_options)
|
||||||
|
|
||||||
|
def set_mpi_cmake_options(self, spec, cmake_options):
|
||||||
|
# Appends to cmake_options the options that will enable
|
||||||
|
# the appropriate MPI implementations
|
||||||
|
|
||||||
|
mpi_options = []
|
||||||
|
|
||||||
|
# openmpi
|
||||||
|
if spec.satisfies("+openmpi"):
|
||||||
|
mpi_options.append("-DOPENMPI_DIR=%s" % spec["openmpi"].prefix)
|
||||||
|
# mpich
|
||||||
|
if spec.satisfies("+mpich"):
|
||||||
|
mpi_options.append("-DMPICH_DIR=%s" % spec["mpich"].prefix)
|
||||||
|
# mpich2
|
||||||
|
if spec.satisfies("+mpich2"):
|
||||||
|
mpi_options.append("-DMPICH2_DIR=%s" % spec["mpich2"].prefix)
|
||||||
|
# mvapich
|
||||||
|
if spec.satisfies("+mvapich"):
|
||||||
|
mpi_options.append("-DMVAPICH_DIR=%s" % spec["mvapich"].prefix)
|
||||||
|
# mvapich2
|
||||||
|
if spec.satisfies("+mvapich2"):
|
||||||
|
mpi_options.append("-DMVAPICH2_DIR=%s" % spec["mvapich2"].prefix)
|
||||||
|
# mpt
|
||||||
|
if spec.satisfies("+mpt"):
|
||||||
|
mpi_options.append("-DMPT_DIR=%s" % spec["mpt"].prefix)
|
||||||
|
|
||||||
|
cmake_options.extend(mpi_options)
|
||||||
|
|
||||||
|
def setup_run_environment(self, env):
|
||||||
|
"""Set up the compile and runtime environments for a package."""
|
||||||
|
|
||||||
|
# Find Dyninst library path, this is needed to
|
||||||
|
# set the DYNINSTAPI_RT_LIB library which is
|
||||||
|
# required for OpenSpeedShop to find loop level
|
||||||
|
# performance information
|
||||||
|
dyninst_libdir = find_libraries(
|
||||||
|
"libdyninstAPI_RT", root=self.spec["dyninst"].prefix, shared=True, recursive=True
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set Dyninst RT library path to support OSS loop resolution code
|
||||||
|
env.set("DYNINSTAPI_RT_LIB", dyninst_libdir[0])
|
||||||
|
|
||||||
|
env.set("OPENSS_RAWDATA_DIR", ".")
|
||||||
|
|
||||||
|
# Set the openspeedshop plugin path
|
||||||
|
if os.path.isdir(self.prefix.lib64):
|
||||||
|
lib_dir = self.prefix.lib64
|
||||||
|
else:
|
||||||
|
lib_dir = self.prefix.lib
|
||||||
|
|
||||||
|
plugin_path = "/openspeedshop"
|
||||||
|
oss_plugin_path = lib_dir + plugin_path
|
||||||
|
env.set("OPENSS_PLUGIN_PATH", oss_plugin_path)
|
||||||
|
|
||||||
|
cbtf_mc = "/sbin/cbtf_mrnet_commnode"
|
||||||
|
cbtf_lmb = "/sbin/cbtf_libcbtf_mrnet_backend"
|
||||||
|
env.set("XPLAT_RSH", "ssh")
|
||||||
|
env.set("MRNET_COMM_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_mc))
|
||||||
|
|
||||||
|
# Set CBTF_MPI_IMPLEMENTATON to the appropriate mpi implementation
|
||||||
|
# This is needed by O|SS and CBTF tools to deploy the correct
|
||||||
|
# mpi runtimes for ossmpi, ossmpit, ossmpip, and cbtfsummary
|
||||||
|
# Users may have to set the CBTF_MPI_IMPLEMENTATION variable
|
||||||
|
# manually if multiple mpi's are specified in the build
|
||||||
|
if self.spec.satisfies("+mpich"):
|
||||||
|
env.set("CBTF_MPI_IMPLEMENTATION", "mpich")
|
||||||
|
|
||||||
|
if self.spec.satisfies("+mvapich"):
|
||||||
|
env.set("CBTF_MPI_IMPLEMENTATION", "mvapich")
|
||||||
|
|
||||||
|
if self.spec.satisfies("+mvapich2"):
|
||||||
|
env.set("CBTF_MPI_IMPLEMENTATION", "mvapich2")
|
||||||
|
|
||||||
|
if self.spec.satisfies("+mpt"):
|
||||||
|
env.set("CBTF_MPI_IMPLEMENTATION", "mpt")
|
||||||
|
|
||||||
|
if self.spec.satisfies("+openmpi"):
|
||||||
|
env.set("CBTF_MPI_IMPLEMENTATION", "openmpi")
|
||||||
|
|
||||||
|
env.set("CBTF_MRNET_BACKEND_PATH", join_path(self.spec["cbtf-krell"].prefix + cbtf_lmb))
|
||||||
|
env.prepend_path("PATH", self.spec["mrnet"].prefix.bin)
|
||||||
|
env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.bin)
|
||||||
|
env.prepend_path("PATH", self.spec["cbtf-krell"].prefix.sbin)
|
||||||
|
mpath = "/share/man"
|
||||||
|
env.prepend_path("MANPATH", self.spec["cbtf-krell"].prefix + mpath)
|
||||||
|
env.prepend_path("PATH", self.spec["python"].prefix.bin)
|
Loading…
Reference in New Issue
Block a user