commit:     02310e94552ae41bdebc6886d969232f23c7c0d2
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Fri Aug 20 01:23:33 2021 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Fri Aug 20 01:23:33 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=02310e94

sys-cluster/extrae: rework of instrumentation use, add peruse

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 ...rae-3.8.3-r9.ebuild => extrae-3.8.3-r10.ebuild} | 35 ++++++++++++++--------
 sys-cluster/extrae/metadata.xml                    |  9 +++---
 2 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/sys-cluster/extrae/extrae-3.8.3-r9.ebuild 
b/sys-cluster/extrae/extrae-3.8.3-r10.ebuild
similarity index 89%
rename from sys-cluster/extrae/extrae-3.8.3-r9.ebuild
rename to sys-cluster/extrae/extrae-3.8.3-r10.ebuild
index c52ea919c..e37da75a2 100644
--- a/sys-cluster/extrae/extrae-3.8.3-r9.ebuild
+++ b/sys-cluster/extrae/extrae-3.8.3-r10.ebuild
@@ -14,28 +14,33 @@ 
SRC_URI="https://github.com/bsc-performance-tools/extrae/archive/${PV}.tar.gz ->
 LICENSE="LGPL-2.1"
 SLOT="0"
 KEYWORDS="~amd64"
-IUSE="clustering doc dyninst heterogeneous inotify +instrument-dynamic-memory 
+instrument-io
-+instrument-syscall memkind merge-in-trace nanos online opencl openmp openshmem
-+parallel-merge pebs-sampling +posix-clock pthread sampling +single-mpi-lib 
sionlib smpss
-spectral +xml"
+
+IUSE_INSTRUMENT="
+       +instrument-dynamic-memory
+       +instrument-io
+       +instrument-syscall
+"
+IUSE_EXPAND="INSTRUMENT"
+IUSE="${IUSE_INSTRUMENT} clustering dlsym doc dyninst heterogeneous inotify 
memkind
+merge-in-trace nanos online opencl openmp openshmem +parallel-merge 
pebs-sampling
+peruse +posix-clock pthread sampling +single-mpi-lib sionlib smpss spectral 
+xml"
 
 #aspectj and aspectj-weaver need to both be enabled at the same time
 #current dev-java/aspectj package only provides aspectj.jar
 #aspectj needs foo/lib/aspectj.jar and foo/bin/ajc
 #aspectj-weaver needs bar/aspectjweaver.jar
-#TODO: pmapi cuda cupti gm mx aspectj
+#TODO: cuda cupti gm mx
 #TODO: support llvm libunwind, llvm rt, elftoolchain
 
 CDEPEND="
        ${PYTHON_DEPS}
        dev-libs/libxml2
        dev-libs/papi
-       !<sys-cluster/openmpi-4.0.5-r1
-       !>=sys-cluster/openmpi-4.0.5-r1[libompitrace]
+       !sys-cluster/openmpi[libompitrace(+)]
+       sys-libs/libunwind
        sys-libs/zlib
        virtual/mpi
 
-       || ( sys-libs/libunwind sys-libs/llvm-libunwind )
        || ( sys-devel/binutils:* sys-libs/binutils-libs )
 
        clustering? ( sys-cluster/clusteringsuite[treedbscan] )
@@ -50,6 +55,7 @@ CDEPEND="
        online? ( sys-cluster/synapse )
        opencl? ( dev-util/opencl-headers )
        openshmem? ( sys-cluster/SOS )
+       peruse? ( sys-cluster/openmpi[peruse(-)] )
        sionlib? ( sys-cluster/sionlib:= )
        spectral? (
                sci-libs/fftw
@@ -74,8 +80,12 @@ BDEPEND="
                dev-texlive/texlive-latexextra
        )
 "
+
 REQUIRED_USE="
        ${PYTHON_REQUIRED_USE}
+
+       || ( ${IUSE_INSTRUMENT//+/} )
+
        java? ( pthread )
 "
 #      cupti? ( cuda )
@@ -94,8 +104,6 @@ src_configure() {
                --datarootdir="${T}"
 
                --disable-mic
-               --disable-online
-               --disable-peruse
                --disable-pmapi
                --disable-static
 
@@ -104,7 +112,6 @@ src_configure() {
                --with-librt="${EPREFIX}/usr"
                --with-mpi="${EPREFIX}/usr"
                --with-papi="${EPREFIX}/usr"
-               --with-pic
                --with-unwind="${EPREFIX}/usr"
 
                --without-cupti
@@ -121,16 +128,18 @@ src_configure() {
                $(use_enable nanos)
                $(use_enable online)
                $(use_enable openmp)
-               $(use_enable sampling)
                $(use_enable parallel-merge)
                $(use_enable pebs-sampling)
+               $(use_enable peruse)
                $(use_enable posix-clock)
                $(use_enable pthread)
+               $(use_enable sampling)
                $(use_enable single-mpi-lib)
                $(use_enable smpss)
                $(use_enable xml)
        )
-#--with-pmpi-hook (Choose method to call PMPI (dlsym or pmpi))
+
+       use dlsym && myconf+=( "--with-pmpi-hook=dlsym" )
 
 #      if use aspectj; then
 #              myconf+=( 
"--with-java-aspectj=${EPREFIX}/usr/share/aspectj/lib" )

diff --git a/sys-cluster/extrae/metadata.xml b/sys-cluster/extrae/metadata.xml
index ba115eca5..9e8da6d6f 100644
--- a/sys-cluster/extrae/metadata.xml
+++ b/sys-cluster/extrae/metadata.xml
@@ -21,7 +21,8 @@ process). Extrae generates trace files that can be later 
visualized with sys-clu
                <!--<flag name="cuda">Enable support for tracing CUDA calls on 
nVidia hardware and needs to point to the CUDA SDK installation path. This 
instrumentation is only valid in binaries that use the shared version of the 
CUDA library.</flag>-->
                <!--<flag name="cupti">CUPTI is used to instrument CUDA 
calls</flag>-->
                <flag name="doc">Generates the documentation of this 
instrumentation package</flag>
-               <flag name="dyninst">Build with dyninst</flag>
+               <flag name="dlsym">Use dlsym instead of PMPI</flag>
+               <flag name="dyninst">Build with 
<pkg>sys-cluster/dyninst</pkg></flag>
                <flag name="heterogeneous">Enable support for heterogeneous 
tracing</flag>
                <flag name="inotify">Enable inotify support</flag>
                <flag name="instrument-dynamic-memory">Enables instrumentation 
for dynamic memory (malloc, free, realloc) calls</flag>
@@ -37,11 +38,11 @@ process). Extrae generates trace files that can be later 
visualized with sys-clu
                <flag name="openshmem">OpenSHMEM to be used for the 
instrumentation package</flag>
                <flag name="parallel-merge">Build the parallel mergers 
(mpimpi2prv/mpimpi2dim) based on MPI</flag>
                <flag name="pebs-sampling">enable PEBS sampling</flag>
-               <!--<flag name="pmapi">Enable PMAPI library to gather CPU 
performance counters</flag>-->
+               <flag name="peruse">Enable gathering information with 
PerUse</flag>
                <flag name="posix-clock">Use POSIX clock (clock_gettime call) 
instead of low level timing routines. Use this option if the system where you 
install the instrumentation package modifies the frequency of its processors at 
runtime.</flag>
                <flag name="pthread">Enable support for tracing pthread 
library</flag>
-               <flag name="sampling">Enable PAPI sampling support</flag>
-               <flag name="spectral">This package enables support for on-line 
spectral analysis.</flag>
+               <flag name="sampling">Enable <pkg>dev-libs/papi</pkg> sampling 
support</flag>
+               <flag name="spectral">This package enables support for on-line 
<pkg>sys-cluster/spectral</pkg> analysis.</flag>
                <flag name="single-mpi-lib">Produces a single instrumentation 
library for MPI that contains both Fortran and C wrappers. Applications that 
call the MPI library from both C and Fortran languages need this flag to be 
enabled.</flag>
                <flag name="sionlib">Enable support for 
<pkg>sys-cluster/sionlib</pkg></flag>
                <flag name="smpss">Enable support for tracing 
SMP-superscalar</flag>

Reply via email to