summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoan Bruguera2019-02-28 23:36:37 +0100
committerJoan Bruguera2019-02-28 23:36:37 +0100
commit783c06a2f161c7305074ef295c9e196c5a782fee (patch)
treea55bf08fecd19485dacddec882a3f4aa5e616051
downloadaur-783c06a2f161c7305074ef295c9e196c5a782fee.tar.gz
Initial version.
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD51
-rw-r--r--build-fix-dyninst-api.patch15
3 files changed, 87 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b0108e717024
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = extrae
+ pkgdesc = Instrumentation framework to generate execution traces of the most used parallel runtimes (from BSC).
+ pkgver = 3.6.1
+ pkgrel = 1
+ url = https://www.bsc.es/discover-bsc/organisation/scientific-structure/performance-tools
+ arch = i686
+ arch = x86_64
+ license = LGPLv2.1
+ depends = openmpi
+ depends = libunwind
+ depends = papi
+ depends = dyninst
+ depends = libelf
+ depends = libdwarf
+ source = https://ftp.tools.bsc.es/extrae/extrae-3.6.1-src.tar.bz2
+ source = build-fix-dyninst-api.patch
+ sha512sums = e88435364c31e6de051965a2f23c49be8fdb2afe7542a962c23a35ced3520cfdec308823c4a28f8276ee30eab34708d7e4e7ee8f412740a37e1252d85ea8b356
+ sha512sums = 3b4ec3fc71fabb6d1f57a0ccb30cb4ccfa89ec26c062204fbd77fdd0c0f526893938ec37d6e8e6fe86892c2e05dd259f0fb84d45663475fb60084a8237e1b53d
+
+pkgname = extrae
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..5cd2aac31ad6
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Joan Bruguera Micó <joanbrugueram@gmail.com>
+pkgname='extrae'
+pkgdesc='Instrumentation framework to generate execution traces of the most used parallel runtimes (from BSC).'
+pkgver='3.6.1'
+pkgrel='1'
+arch=('i686' 'x86_64')
+url='https://www.bsc.es/discover-bsc/organisation/scientific-structure/performance-tools'
+license=('LGPLv2.1')
+depends=(openmpi libunwind papi dyninst libelf libdwarf)
+source=("https://ftp.tools.bsc.es/$pkgname/$pkgname-$pkgver-src.tar.bz2"
+ build-fix-dyninst-api.patch)
+sha512sums=(e88435364c31e6de051965a2f23c49be8fdb2afe7542a962c23a35ced3520cfdec308823c4a28f8276ee30eab34708d7e4e7ee8f412740a37e1252d85ea8b356
+ 3b4ec3fc71fabb6d1f57a0ccb30cb4ccfa89ec26c062204fbd77fdd0c0f526893938ec37d6e8e6fe86892c2e05dd259f0fb84d45663475fb60084a8237e1b53d)
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < "$srcdir/build-fix-dyninst-api.patch"
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --with-mpi=/usr \
+ --with-mpi-libs=/usr/lib/openmpi \
+ --with-mpi-headers=/usr/include/openmpi \
+ --with-unwind=/usr \
+ --with-unwind-headers=/usr/include \
+ --with-unwind-libs=/usr/lib \
+ --with-dyninst=/usr \
+ --with-dyninst-headers=/usr/include \
+ --with-dyninst-libs=/usr/lib \
+ --with-papi=/usr \
+ --with-papi-headers=/usr/include \
+ --with-papi-libs=/usr/lib \
+ --with-dwarf=/usr \
+ --with-dwarf-headers=/usr/include \
+ --with-dwarf-libs=/usr/lib \
+ --with-elf=/usr \
+ --with-elf-headers=/usr/include \
+ --with-elf-libs=/usr/lib
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+} \ No newline at end of file
diff --git a/build-fix-dyninst-api.patch b/build-fix-dyninst-api.patch
new file mode 100644
index 000000000000..83128557a290
--- /dev/null
+++ b/build-fix-dyninst-api.patch
@@ -0,0 +1,15 @@
+--- a/src/launcher/dyninst/commonSnippets.C 2019-02-28 23:01:35.667997539 +0100
++++ b/src/launcher/dyninst/commonSnippets.C 2019-02-28 23:00:25.653420000 +0100
+@@ -482,9 +482,9 @@
+ ParseAPI::Block* b = ParseAPI::convert(block);
+ void * buf = b->region()->getPtrToInstruction(b->start());
+ InstructionAPI::InstructionDecoder dec((unsigned char*)buf,b->size(),b->region()->getArch());
+- InstructionAPI::Instruction::Ptr insn;
+- while((insn = dec.decode())) {
+- res <<loop_name<<"# "<<line++<<": "<< insn->format() << endl;
++ InstructionAPI::Instruction insn;
++ while((insn = dec.decode()).isValid()) {
++ res <<loop_name<<"# "<<line++<<": "<< insn.format() << endl;
+ }
+ }
+ return res.str();