[PATCH 1/6] gnu: Add papi.

  • Done
  • quality assurance status badge
Details
2 participants
  • Dave Love
  • Ludovic Courtès
Owner
unassigned
Submitted by
Dave Love
Severity
normal
D
D
Dave Love wrote on 2 Oct 2017 22:48
(address . guix-patches@gnu.org)(name . Dave Love)(address . fx@gnu.org)
20171002204848.23646-1-fx@gnu.org
* gnu/packages/profiling.scm: New file.
* gnu/local.mk: Add it.
---
gnu/local.mk | 1 +
gnu/packages/profiling.scm | 122 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 123 insertions(+)
create mode 100644 gnu/packages/profiling.scm

Toggle diff (142 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index edd6d8237..016c46c6c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -326,6 +326,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/plotutils.scm \
%D%/packages/polkit.scm \
%D%/packages/popt.scm \
+ %D%/packages/profiling.scm \
%D%/packages/pth.scm \
%D%/packages/pulseaudio.scm \
%D%/packages/pumpio.scm \
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
new file mode 100644
index 000000000..cd678cfea
--- /dev/null
+++ b/gnu/packages/profiling.scm
@@ -0,0 +1,122 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Dave Love <fx@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages profiling)
+ #:use-module (guix packages)
+ #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base) ;for "which"
+ #:use-module (gnu packages fabric-management)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages libunwind)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages ncurses))
+
+;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
+;; output(?); build libmsr and add that component.
+(define-public papi
+ (package
+ (name "papi")
+ (version "5.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://icl.utk.edu/projects/papi/downloads/papi-"
+ version ".tar.gz"))
+ (sha256 (base32 "1m62s8fkjjgq04ayf18jcxc33rqfd7nrkdw1gr54q5pn4cijrp29"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("ncurses" ,ncurses)
+ ("lm-sensors" ,lm-sensors "lib")
+ ("rdma-core" ,rdma-core)
+ ("infiniband-diags" ,infiniband-diags "lib")
+ ("net-tools" ,net-tools)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("gfortran" ,gfortran)))
+ (arguments
+ '(#:tests? #f ; no check target
+ #:configure-flags
+ ;; These are roughly per Fedora, but elide mx (assumed to be dead, even
+ ;; Open-MX) and add and powercap -- I don't know the pros/cons of
+ ;; infiniband and infiniband_mad, but you can't use them together, and
+ ;; the umad version needs at least one patch.
+ ;; Implicit enabled components: perf_event perf_event_uncore
+ `("--with-perf-events" "--with-shared-lib=yes" "--with-shlib"
+ "--with-static-lib=no"
+ "--with-components=appio coretemp example lustre micpower net rapl \
+stealtime lmsensors infiniband powercap"
+ ;; So utils get rpath set correctly:
+ ,(string-append "LDFLAGS=-Xlinker -rpath -Xlinker "
+ (assoc-ref %outputs "out") "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autoconf
+ (lambda _
+ (chdir "src")
+ (zero? (system* "autoconf"))))
+ ;; Amalgamating with the following clause gives double substitution.
+ (add-before 'patch-source-shebangs 'patch-components
+ (lambda _
+ (with-directory-excursion "src/components"
+ (substitute* '("lmsensors/configure" "infiniband_umad/configure")
+ (("/bin/sh") (which "sh"))))))
+ (add-after 'configure 'components
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "components"
+ (and
+ (with-directory-excursion "infiniband_umad"
+ (zero? (system* "./configure")))
+ (with-directory-excursion "lmsensors"
+ (let ((base (assoc-ref inputs "lm-sensors")))
+ (zero?
+ (system*
+ "./configure"
+ (string-append "--with-sensors_incdir=" base
+ "/include/sensors")
+ (string-append "--with-sensors_libdir=" base "/lib")))))))))
+ (add-after 'install 'extra-doc
+ (lambda _
+ (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+ (mkdir-p doc)
+ (chdir "..") ; we went into src above
+ (for-each (lambda (file)
+ (install-file file doc))
+ '("README" "RELEASENOTES.txt" "LICENSE.txt"))))))))
+ (home-page "http://icl.cs.utk.edu/papi/")
+ (synopsis "Performance Application Programming Interface")
+ (description "PAPI provides the tool designer and application engineer with a consistent
+interface and methodology for use of the performance counter hardware found in
+most major microprocessors. PAPI enables software engineers to see, in near
+real time, the relation between software performance and processor events.
+
+In addition, PAPI provides access to a collection of components that expose
+performance measurement opportunites across the hardware and software stack.")
+ ;; See Debian papi copyright file.
+ (license (list license:bsd-3
+ license:lgpl2.1+ ;src/components/infiniband/pscanf.h
+ ;; not used in output
+ license:gpl2+ ;src/components/appio/tests/iozone/gengnuplot.sh
+ ;src/libpfm-3.y/*/multiplex*
+ ;; "BSD-like": src/libpfm-3.y/*, src/libpfm4/*
+ ;; lgpl2.1+: src/perfctr-2.*/*
+ ))))
--
2.11.0
D
D
Dave Love wrote on 2 Oct 2017 22:48
[PATCH 2/6] gnu: Add otf2.
(address . guix-patches@gnu.org)(name . Dave Love)(address . fx@gnu.org)
20171002204848.23646-2-fx@gnu.org
* gnu/packages/profiling.scm (otf2): New variable.
---
gnu/packages/profiling.scm | 38 +++++++++++++++++++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)

Toggle diff (55 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index cd678cfea..5eed6ba0d 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -29,7 +29,8 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
- #:use-module (gnu packages ncurses))
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages python))
;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
;; output(?); build libmsr and add that component.
@@ -120,3 +121,38 @@ performance measurement opportunites across the hardware and software stack.")
;; "BSD-like": src/libpfm-3.y/*, src/libpfm4/*
;; lgpl2.1+: src/perfctr-2.*/*
))))
+
+;; NB. there's a potential name clash with libotf.
+(define-public otf2
+ (package
+ (name "otf2")
+ (version "2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.vi-hps.org/upload/packages/otf2/otf2-"
+ version ".tar.gz"))
+ (sha256 (base32 "1lyaqhdfaqm1kd23yk71g71vkscw83s7m57j017y768h8sh8xlwa"))))
+ (native-inputs `(("python" ,python)))
+ (outputs '("doc" ; 18MB
+ "lib"
+ "out"))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--enable-shared" "--disable-static")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'licence
+ (lambda _
+ (for-each
+ (lambda (op)
+ (let ((doc (string-append (assoc-ref %outputs op) "/share/doc")))
+ (mkdir-p doc)
+ (install-file "COPYING" doc)))
+ '("lib" "doc"))
+ #t)))))
+ (home-page "http://www.vi-hps.org/projects/score-p/")
+ (synopsis "Open Trace Format 2 library")
+ (description "The Open Trace Format 2 (OTF2) is a highly scalable, memory efficient event
+trace data format plus support library.")
+ (license license:bsd-3)))
--
2.11.0
D
D
Dave Love wrote on 2 Oct 2017 22:48
[PATCH 4/6] gnu: Add opari2.
(address . guix-patches@gnu.org)(name . Dave Love)(address . fx@gnu.org)
20171002204848.23646-4-fx@gnu.org
* gnu/packages/profiling.scm (opari2): New variable.
---
gnu/packages/profiling.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 3f08f7e3d..cef363dee 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -28,6 +28,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fabric-management)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages glib)
#:use-module (gnu packages gcc)
#:use-module (gnu packages libunwind)
@@ -282,3 +283,36 @@ metrics are uniformly accommodated in the same display and thus provide the
ability to easily compare the effects of different kinds of performance
behavior.")
(license license:bsd-3)))
+
+(define-public opari2
+ (package
+ (name "opari2")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (let* ((parts (string-split version #\.) )
+ (major (car parts))
+ (minor (cadr parts)))
+ (string-append "http://www.vi-hps.org/upload/packages/opari2/opari2-"
+ version ".tar.gz")))
+ (sha256 (base32 "1ph8l5c646bm9l5vcn8rrbjvkyi7y8yvn2ny95r6kmlzs766g3q8"))))
+ (build-system gnu-build-system)
+ (inputs `(("gfortran" ,gfortran)))
+ (native-inputs `(("gawk" ,gawk) ;for tests
+ ("which" ,which)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'licence
+ (lambda _
+ (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+ (mkdir-p doc)
+ (install-file "COPYING" doc)
+ #t))))))
+ (home-page "http://www.vi-hps.org/projects/score-p")
+ (synopsis "An OpenMP runtime performance measurement instrumenter")
+ (description "OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid
+codes. It surrounds OpenMP directives and runtime library calls with calls
+to the POMP2 measurement interface.")
+ (license license:bsd-3)))
--
2.11.0
D
D
Dave Love wrote on 2 Oct 2017 22:48
[PATCH 6/6] gnu: Add scorep-openmpi.
(address . guix-patches@gnu.org)(name . Dave Love)(address . fx@gnu.org)
20171002204848.23646-6-fx@gnu.org
* gnu/packages/profiling.scm (make-scorep): New function.
(scorep-openmpi): New variable.
---
gnu/packages/profiling.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)

Toggle diff (94 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index cef363dee..e81747c0d 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -25,15 +25,20 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base) ;for "which"
+ #:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fabric-management)
+ #:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages glib)
#:use-module (gnu packages gcc)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages python)
#:use-module (gnu packages qt))
;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
@@ -316,3 +321,66 @@ behavior.")
codes. It surrounds OpenMP directives and runtime library calls with calls
to the POMP2 measurement interface.")
(license license:bsd-3)))
+
+(define (make-scorep mpi)
+ (package
+ (name (string-append "scorep-" (package-name mpi)))
+ (version "3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (let* ((parts (string-split version #\.) )
+ (major (car parts))
+ (minor (cadr parts)))
+ (string-append
+ "http://www.vi-hps.org/upload/packages/scorep/scorep-"
+ version ".tar.gz")))
+ (sha256 (base32 "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mpi" ,mpi)
+ ("papi" ,papi)
+ ("opari2" ,opari2)
+ ("libunwind" ,libunwind)
+ ("otf2" ,otf2)
+ ("cube" ,cube) ;for cube-config, as above
+ ("cubelib" ,cube "lib") ;for lib, include
+ ("openmpi" ,openmpi)
+ ("doxygen" ,doxygen)
+ ("zlib" ,zlib)
+ ("which" ,which)))
+ (native-inputs `(("gfortran" ,gfortran)
+ ("flex" ,flex)
+ ("bison" ,bison)
+ ("python" ,python)))
+ (arguments
+ `(#:configure-flags
+ (list "--enable-shared" "--disable-static"
+ (string-append "--with-opari2=" (assoc-ref %build-inputs "opari2"))
+ (string-append "--with-cube=" (assoc-ref %build-inputs "cube")))
+ #:parallel-tests? #f
+ #:make-flags '("V=1")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'clean-source
+ (lambda _
+ (map delete-file-recursively '("vendor/opari2" "vendor/cube"))))
+ (add-after 'install 'licence
+ (lambda _
+ (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+ (mkdir-p doc)
+ (install-file "COPYING" doc)
+ #t))))))
+ (home-page "http://www.vi-hps.org/projects/score-p/")
+ (synopsis
+ (format #f "\
+Scalable Performance Measurement Infrastructure for Parallel Codes, ~a version"
+ (package-name mpi)))
+ (description (format #f "The Score-P (Scalable Performance Measurement Infrastructure for Parallel
+Codes) measurement infrastructure is a highly scalable and easy-to-use tool
+suite for profiling, event trace recording, and online analysis of HPC
+applications.
+This is the ~a version." (package-name mpi)))
+ (license license:cpl1.0)))
+
+(define-public scorep-openmpi (make-scorep openmpi))
--
2.11.0
D
D
Dave Love wrote on 2 Oct 2017 22:48
[PATCH 3/6] gnu: Add cube.
(address . guix-patches@gnu.org)(name . Dave Love)(address . fx@gnu.org)
20171002204848.23646-3-fx@gnu.org
* gnu/packages/profiling.scm(cube): New variable.
* gnu/packages/patches/cube-nocheck.patch: New file.
* gnu/local.mk: Add it.
---
gnu/local.mk | 1 +
gnu/packages/patches/cube-nocheck.patch | 14 ++++
gnu/packages/profiling.scm | 128 +++++++++++++++++++++++++++++++-
3 files changed, 142 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/cube-nocheck.patch

Toggle diff (182 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 016c46c6c..ed5346474 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -576,6 +576,7 @@ dist_patch_DATA = \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/crossmap-allow-system-pysam.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
+ %D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/curl-bounds-check.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-2017-12836.patch \
diff --git a/gnu/packages/patches/cube-nocheck.patch b/gnu/packages/patches/cube-nocheck.patch
new file mode 100644
index 000000000..cbfaf0884
--- /dev/null
+++ b/gnu/packages/patches/cube-nocheck.patch
@@ -0,0 +1,14 @@
+diff -u /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp\~ /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp
+--- cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp~ 2016-04-03 00:05:37.942066948 +0100
++++ cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp 2016-05-06 17:16:31.648143908 +0100
+@@ -52,7 +52,8 @@
+ url = QUrl( UPDATE_CHECK_URL );
+ download = NULL;
+ update_Available = false;
+- bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) );
++ // bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) );
++ bool no_http = true;
+ if ( !no_http )
+ {
+ updateDescription = tr( "Check for update is not performed yet." );
+
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 5eed6ba0d..3f08f7e3d 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -25,12 +25,15 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base) ;for "which"
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages fabric-management)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gcc)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
- #:use-module (gnu packages python))
+ #:use-module (gnu packages qt))
;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
;; output(?); build libmsr and add that component.
@@ -156,3 +159,126 @@ performance measurement opportunites across the hardware and software stack.")
(description "The Open Trace Format 2 (OTF2) is a highly scalable, memory efficient event
trace data format plus support library.")
(license license:bsd-3)))
+
+;; FIXME: The doc is 14MB, but adding a doc output results in a cycle
+(define-public cube
+ (package
+ (name "cube")
+ (version "4.3.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-"
+ version ".tar.gz"))
+ (sha256 (base32 "04irflia4rfw02093w9nx7rr98r640y4q8hisjywvd4b7r3nzhhx"))
+ (patches (search-patches
+ ;; Disable network check for new versions (from Fedora)
+ "cube-nocheck.patch"))))
+ (inputs `(("dbus" ,dbus)
+ ("zlib" ,zlib)))
+ (native-inputs `(("perl" ,perl)
+ ("qtbase" ,qtbase) ; native because of qmake
+ ("which" ,which)))
+ (outputs '("out" ;"doc"
+ "lib"))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ `("--enable-shared" "--disable-static" "--disable-silent-rules"
+ ,(string-append "LDFLAGS=-L" (assoc-ref %outputs "lib") "/lib"))
+ #:parallel-tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'rpath
+ ;; Account for moving GUI stuff
+ (lambda _
+ (let ((wl (string-append "-Wl,-rpath=" %output "/lib")))
+ (substitute* "build-backend/Makefile"
+ (("^cube_LDFLAGS =") (string-append "cube_LDFLAGS = " wl))
+ (("^libheatmap_plugin_la_LDFLAGS =")
+ (string-append "libheatmap_plugin_la_LDFLAGS = " wl))
+ (("^libbarplot_plugin_la_LDFLAGS =")
+ (string-append "libbarplot_plugin_la_LDFLAGS = " wl))))))
+ (add-before 'install 'includes-cube
+ ;; It tries to install here before include exists.
+ (lambda _
+ (let ((inc (string-append (assoc-ref %outputs "lib") "/include")))
+ (mkdir-p (string-append inc "/cube"))
+ (mkdir-p (string-append inc "/cubew")))))
+ (add-after 'install 'licence
+ (lambda _
+ (let ((doc (string-append (assoc-ref %outputs "lib") "/share/doc")))
+ (mkdir-p doc)
+ (install-file "COPYING" doc)
+ #t)))
+ ;; FIXME: cycle
+ ;; (add-after 'install 'doc
+ ;; (lambda _
+ ;; (let ((share (string-append (assoc-ref %outputs "doc")
+ ;; "/share")))
+ ;; (mkdir-p share)
+ ;; (rename-file (string-append %output "/share/doc")
+ ;; (string-append share "/doc")))))
+ (add-after 'install 'gui-stuff
+ ;; Get the Qt horror dependencies out of the lib closure
+ (lambda _
+ (let ((outlib (string-append (assoc-ref %outputs "out") "/lib"))
+ (lib (string-append (assoc-ref %outputs "lib") "/lib")))
+ (mkdir-p outlib)
+ (rename-file (string-append lib "/cube-plugins")
+ (string-append outlib "/cube-plugins"))
+ (for-each (lambda (file)
+ (rename-file
+ file (string-append outlib "/" (basename file))))
+ (append (find-files lib "libgraphwidgetcommon-plugin.*")
+ (find-files lib "libcube4gui.so.*"))))))
+ (add-after 'install 'move-include
+ ;; Most of the headers end up under %output for some reason,
+ ;; despite --includedir in configure.
+ (lambda _
+ (let ((outinc (string-append %output "/include"))
+ (libinc (string-append (assoc-ref %outputs "lib") "/include")))
+ (for-each (lambda (file)
+ (let ((from (string-append outinc "/" file)))
+ (copy-recursively from libinc)
+ (delete-file-recursively from)))
+ '("cube" "cubew")))))
+ ;; FIXME: This doesn't work because cube-config, which is needed for
+ ;; building stuff, sources cube-config-frontend. We don't want that
+ ;; in the lib output because it pulls in >1GB via QT.
+
+ ;; (add-after 'install 'cube-config
+ ;; (lambda _
+ ;; (let* ((lib (assoc-ref %outputs "lib"))
+ ;; (libbin (string-append lib "/bin")))
+ ;; (mkdir-p libbin)
+ ;; (system (string-append "mv " (assoc-ref %outputs "out")
+ ;; "/bin/cube-config* " libbin))
+ ;; (substitute* (list (string-append libbin "/cube-config"))
+ ;; (("^prefix=.*") (string-append "prefix=" lib))
+ ;; (("^exec_prefix=\"\\$\\{prefix\\}\"")
+ ;; (string-append "exec_prefix=" lib))))))
+ (add-after 'install 'cube-config
+ (lambda _
+ (let* ((lib (assoc-ref %outputs "lib"))
+ (libbin (string-append lib "/bin")))
+ (mkdir-p libbin)
+ (install-file (string-append %output "/bin/cube-config") libbin)
+ (install-file (string-append %output "/bin/cube-config-backend")
+ libbin)
+ (substitute* (list (string-append libbin "/cube-config"))
+ (("^source .*frontend.*$") "")
+ ((%output) lib))))))))
+ (home-page "http://www.scalasca.org/software/cube-4.x/download.html")
+ (synopsis "CUBE Uniform Behavioral Encoding generic presentation component")
+ (description "CUBE (CUBE Uniform Behavioral Encoding) is a generic presentation component
+suitable for displaying a wide variety of performance metrics for parallel
+programs including MPI and OpenMP applications. CUBE allows interactive
+exploration of a multidimensional performance space in a scalable fashion.
+Scalability is achieved in two ways: hierarchical decomposition of individual
+dimensions and aggregation across different dimensions. All performance
+metrics are uniformly accommodated in the same display and thus provide the
+ability to easily compare the effects of different kinds of performance
+behavior.")
+ (license license:bsd-3)))
--
2.11.0
D
D
Dave Love wrote on 2 Oct 2017 22:48
[PATCH 5/6] gnu: libunwind: Merge update and test changes.
(address . guix-patches@gnu.org)(name . Dave Love)(address . fx@gnu.org)
20171002204848.23646-5-fx@gnu.org
* gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch:
New file.
* gnu/packages/patches/libunwind-ppc_lib64.patch: New file.
* gnu/packages/libunwind.scm (libunwind)[source]: Use them.
(libunwind)(native-inputs): Add autotools.
(libunwind)(arguments): Enable tests; run autoreconf.
* gnu/local.mk: Update dependencies.
---
gnu/local.mk | 3 +++
gnu/packages/libunwind.scm | 22 ++++++++++++++++------
...bunwind-known_test_failure_to_XFAIL_TESTS.patch | 11 +++++++++++
gnu/packages/patches/libunwind-ppc_lib64.patch | 17 +++++++++++++++++
4 files changed, 47 insertions(+), 6 deletions(-)
create mode 100644 gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
create mode 100644 gnu/packages/patches/libunwind-ppc_lib64.patch

Toggle diff (112 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index ed5346474..c80298a9c 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -812,6 +812,8 @@ dist_patch_DATA = \
%D%/packages/patches/libtirpc-CVE-2017-8779.patch \
%D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \
%D%/packages/patches/libtool-skip-tests2.patch \
+ %D%/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch \
+ %D%/packages/patches/libunwind-ppc_lib64.patch \
%D%/packages/patches/libunistring-gnulib-multi-core.patch \
%D%/packages/patches/libusb-0.1-disable-tests.patch \
%D%/packages/patches/libvpx-CVE-2016-2818.patch \
@@ -912,6 +914,7 @@ dist_patch_DATA = \
%D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \
+ %D%/packages/patches/orangefs-ldshared.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.patch \
diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm
index e747d3778..370c433d7 100644
--- a/gnu/packages/libunwind.scm
+++ b/gnu/packages/libunwind.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,7 +23,8 @@
#:use-module (gnu packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
- #:use-module (guix licenses))
+ #:use-module (guix licenses)
+ #:use-module (gnu packages autotools))
(define-public libunwind
(package
@@ -34,13 +36,21 @@
version ".tar.gz"))
(sha256
(base32
- "1jsslwkilwrsj959dc8b479qildawz67r8m4lzxm7glcwa8cngiz"))))
+ "1jsslwkilwrsj959dc8b479qildawz67r8m4lzxm7glcwa8cngiz"))
+ (patches (search-patches
+ ;; (adapted) from Debian
+ "libunwind-known_test_failure_to_XFAIL_TESTS.patch"
+ "libunwind-ppc_lib64.patch"))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
(build-system gnu-build-system)
(arguments
- ;; FIXME: As of glibc 2.25, we get 1 out of 34 test failures (2 are
- ;; expected to fail).
- ;; Report them upstream.
- '(#:tests? #f))
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'autoreconf
+ (lambda _
+ (zero? (system* "autoreconf" "-vif")))))))
(home-page "http://www.nongnu.org/libunwind")
(synopsis "Determining the call chain of a program")
(description
diff --git a/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
new file mode 100644
index 000000000..44ba44892
--- /dev/null
+++ b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
@@ -0,0 +1,11 @@
+--- libunwind-1.2.1/tests/Makefile.am~ 1970-01-01 01:00:00.000000000 +0100
++++ libunwind-1.2.1/tests/Makefile.am 2017-09-06 13:32:52.331888031 +0100
+@@ -97,7 +97,7 @@
+ XFAIL_TESTS =
+
+ if !ARCH_IA64
+-XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1
++XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1 test-ptrace
+ endif
+
+ # Use if arch defines but does not support PTRACE_SINGLESTEP
diff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patch
new file mode 100644
index 000000000..9ab0108ae
--- /dev/null
+++ b/gnu/packages/patches/libunwind-ppc_lib64.patch
@@ -0,0 +1,17 @@
+Index: pkg-libunwind/configure.ac
+===================================================================
+--- pkg-libunwind.orig/configure.ac 2014-05-07 15:13:28.247711669 +0900
++++ pkg-libunwind/configure.ac 2014-05-07 15:14:25.924958386 +0900
+@@ -164,12 +164,6 @@
+ AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
+ AC_MSG_RESULT([$use_dwarf])
+
+-if test x$target_arch = xppc64; then
+- libdir='${exec_prefix}/lib64'
+- AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
+- AC_SUBST([libdir])
+-fi
+-
+ AC_MSG_CHECKING([whether to restrict build to remote support])
+ if test x$target_arch != x$host_arch; then
+ CPPFLAGS="${CPPFLAGS} -DUNW_REMOTE_ONLY"
--
2.11.0
L
L
Ludovic Courtès wrote on 3 Oct 2017 15:43
Re: [bug#28673] [PATCH 1/6] gnu: Add papi.
(name . Dave Love)(address . fx@gnu.org)(address . 28673@debbugs.gnu.org)
87d1645ou5.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (3 lines)
> * gnu/packages/profiling.scm: New file.
> * gnu/local.mk: Add it.

Neat. Applied with the following changes.

Thanks,
Ludo’.
Toggle diff (38 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index cd678cfea..6d62aa260 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -79,7 +79,8 @@ stealtime lmsensors infiniband powercap"
(lambda _
(with-directory-excursion "src/components"
(substitute* '("lmsensors/configure" "infiniband_umad/configure")
- (("/bin/sh") (which "sh"))))))
+ (("/bin/sh") (which "sh"))))
+ #t))
(add-after 'configure 'components
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "components"
@@ -95,16 +96,19 @@ stealtime lmsensors infiniband powercap"
"/include/sensors")
(string-append "--with-sensors_libdir=" base "/lib")))))))))
(add-after 'install 'extra-doc
- (lambda _
- (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc")))
(mkdir-p doc)
(chdir "..") ; we went into src above
(for-each (lambda (file)
(install-file file doc))
- '("README" "RELEASENOTES.txt" "LICENSE.txt"))))))))
+ '("README" "RELEASENOTES.txt" "LICENSE.txt"))
+ #t))))))
(home-page "http://icl.cs.utk.edu/papi/")
(synopsis "Performance Application Programming Interface")
- (description "PAPI provides the tool designer and application engineer with a consistent
+ (description
+ "PAPI provides the tool designer and application engineer with a consistent
interface and methodology for use of the performance counter hardware found in
most major microprocessors. PAPI enables software engineers to see, in near
real time, the relation between software performance and processor events.
L
L
Ludovic Courtès wrote on 3 Oct 2017 16:09
Re: [bug#28673] [PATCH 2/6] gnu: Add otf2.
(name . Dave Love)(address . fx@gnu.org)(address . 28673@debbugs.gnu.org)
878tgs5nnc.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (2 lines)
> * gnu/packages/profiling.scm (otf2): New variable.

Applied with the minor changes below, thanks!

Ludo’.
Toggle diff (38 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 1d0a5d6c4..7c0ab6e95 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -138,7 +138,7 @@ performance measurement opportunites across the hardware and software stack.")
version ".tar.gz"))
(sha256 (base32 "1lyaqhdfaqm1kd23yk71g71vkscw83s7m57j017y768h8sh8xlwa"))))
(native-inputs `(("python" ,python)))
- (outputs '("doc" ; 18MB
+ (outputs '("doc" ; 18MB
"lib"
"out"))
(build-system gnu-build-system)
@@ -147,16 +147,15 @@ performance measurement opportunites across the hardware and software stack.")
#:phases
(modify-phases %standard-phases
(add-after 'install 'licence
- (lambda _
- (for-each
- (lambda (op)
- (let ((doc (string-append (assoc-ref %outputs op) "/share/doc")))
- (mkdir-p doc)
- (install-file "COPYING" doc)))
- '("lib" "doc"))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (output)
+ (let ((doc (string-append (assoc-ref outputs output)
+ "/share/doc/otf2")))
+ (install-file "COPYING" doc)))
+ '("lib" "doc"))
#t)))))
(home-page "http://www.vi-hps.org/projects/score-p/")
(synopsis "Open Trace Format 2 library")
- (description "The Open Trace Format 2 (OTF2) is a highly scalable, memory efficient event
-trace data format plus support library.")
+ (description "The Open Trace Format 2 (OTF2) is a scalable, memory
+efficient event trace data format plus support library.")
(license license:bsd-3)))
L
L
Ludovic Courtès wrote on 3 Oct 2017 16:13
Re: [bug#28673] [PATCH 4/6] gnu: Add opari2.
(name . Dave Love)(address . fx@gnu.org)(address . 28673@debbugs.gnu.org)
874lrg5ngb.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (2 lines)
> * gnu/packages/profiling.scm (opari2): New variable.

Applied with the change below.

BTW, I’m not satisfied with all the custom phases to install license
files. I think we should fix it once and for all in the build system in
‘core-updates’. I’ll see if I can propose a patch if nobody beats me.

Thanks,
Ludo’.
Toggle diff (26 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 7340b0172..9a2f2a664 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -182,14 +182,14 @@ efficient event trace data format plus support library.")
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'licence
- (lambda _
- (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
- (mkdir-p doc)
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc/opari2")))
(install-file "COPYING" doc)
#t))))))
(home-page "http://www.vi-hps.org/projects/score-p")
- (synopsis "An OpenMP runtime performance measurement instrumenter")
- (description "OPARI2 is a source-to-source instrumentation tool for OpenMP and hybrid
-codes. It surrounds OpenMP directives and runtime library calls with calls
-to the POMP2 measurement interface.")
+ (synopsis "OpenMP runtime performance measurement instrumenter")
+ (description "OPARI2 is a source-to-source instrumentation tool for OpenMP
+and hybrid codes. It surrounds OpenMP directives and runtime library calls
+with calls to the POMP2 measurement interface.")
(license license:bsd-3)))
L
L
Ludovic Courtès wrote on 3 Oct 2017 16:44
Re: [bug#28673] [PATCH 3/6] gnu: Add cube.
(name . Dave Love)(address . fx@gnu.org)(address . 28673@debbugs.gnu.org)
87zi9847gn.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (4 lines)
> * gnu/packages/profiling.scm(cube): New variable.
> * gnu/packages/patches/cube-nocheck.patch: New file.
> * gnu/local.mk: Add it.

Applied with the changes below, thanks!

Ludo’.
Attachment: file
L
L
Ludovic Courtès wrote on 3 Oct 2017 16:46
Re: [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes.
(name . Dave Love)(address . fx@gnu.org)(address . 28673@debbugs.gnu.org)
87vajw47cz.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (8 lines)
> * gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch:
> New file.
> * gnu/packages/patches/libunwind-ppc_lib64.patch: New file.
> * gnu/packages/libunwind.scm (libunwind)[source]: Use them.
> (libunwind)(native-inputs): Add autotools.
> (libunwind)(arguments): Enable tests; run autoreconf.
> * gnu/local.mk: Update dependencies.

[...]

Toggle quote (33 lines)
> +++ b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
> @@ -0,0 +1,11 @@
> +--- libunwind-1.2.1/tests/Makefile.am~ 1970-01-01 01:00:00.000000000 +0100
> ++++ libunwind-1.2.1/tests/Makefile.am 2017-09-06 13:32:52.331888031 +0100
> +@@ -97,7 +97,7 @@
> + XFAIL_TESTS =
> +
> + if !ARCH_IA64
> +-XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1
> ++XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1 test-ptrace
> + endif
> +
> + # Use if arch defines but does not support PTRACE_SINGLESTEP
> diff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patch
> new file mode 100644
> index 000000000..9ab0108ae
> --- /dev/null
> +++ b/gnu/packages/patches/libunwind-ppc_lib64.patch
> @@ -0,0 +1,17 @@
> +Index: pkg-libunwind/configure.ac
> +===================================================================
> +--- pkg-libunwind.orig/configure.ac 2014-05-07 15:13:28.247711669 +0900
> ++++ pkg-libunwind/configure.ac 2014-05-07 15:14:25.924958386 +0900
> +@@ -164,12 +164,6 @@
> + AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
> + AC_MSG_RESULT([$use_dwarf])
> +
> +-if test x$target_arch = xppc64; then
> +- libdir='${exec_prefix}/lib64'
> +- AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
> +- AC_SUBST([libdir])
> +-fi

Could you avoid this patch and instead use ‘substitute*’ on ‘configure’
and ‘tests/Makefile.in’ such that we don’t need the extra dependency on
the autotools?

Please make sure to add a comment explaining why we’re doing this (the
Makefile.am bit is not obvious to me.)

TIA!

Ludo’.
L
L
Ludovic Courtès wrote on 3 Oct 2017 17:07
Re: [bug#28673] [PATCH 6/6] gnu: Add scorep-openmpi.
(name . Dave Love)(address . fx@gnu.org)(address . 28673@debbugs.gnu.org)
87poa446e0.fsf@gnu.org
Dave Love <fx@gnu.org> skribis:

Toggle quote (3 lines)
> * gnu/packages/profiling.scm (make-scorep): New function.
> (scorep-openmpi): New variable.

Applied with these changes, thanks!

Ludo’.
Toggle diff (100 lines)
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index ab5381d75..4fdf260c6 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -339,16 +339,19 @@ different kinds of performance behavior.")
(package
(name (string-append "scorep-" (package-name mpi)))
(version "3.1")
- (source
- (origin
- (method url-fetch)
- (uri (let* ((parts (string-split version #\.) )
- (major (car parts))
- (minor (cadr parts)))
- (string-append
- "http://www.vi-hps.org/upload/packages/scorep/scorep-"
- version ".tar.gz")))
- (sha256 (base32 "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))))
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.vi-hps.org/upload/packages/scorep/scorep-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled software.
+ '(for-each delete-file-recursively
+ '("vendor/opari2" "vendor/cube")))))
(build-system gnu-build-system)
(inputs
`(("mpi" ,mpi)
@@ -356,44 +359,41 @@ different kinds of performance behavior.")
("opari2" ,opari2)
("libunwind" ,libunwind)
("otf2" ,otf2)
- ("cube" ,cube) ;for cube-config, as above
- ("cubelib" ,cube "lib") ;for lib, include
+ ("cubelib" ,cube "lib") ;for lib, include
("openmpi" ,openmpi)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("gfortran" ,gfortran)
+ ("flex" ,flex)
+ ("cube" ,cube) ;for cube-config
+ ("bison" ,bison)
+ ("python" ,python)
("doxygen" ,doxygen)
- ("zlib" ,zlib)
("which" ,which)))
- (native-inputs `(("gfortran" ,gfortran)
- ("flex" ,flex)
- ("bison" ,bison)
- ("python" ,python)))
(arguments
`(#:configure-flags
(list "--enable-shared" "--disable-static"
- (string-append "--with-opari2=" (assoc-ref %build-inputs "opari2"))
- (string-append "--with-cube=" (assoc-ref %build-inputs "cube")))
+ (string-append "--with-opari2="
+ (assoc-ref %build-inputs "opari2"))
+ (string-append "--with-cube="
+ (assoc-ref %build-inputs "cube")))
#:parallel-tests? #f
#:make-flags '("V=1")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'clean-source
- (lambda _
- (map delete-file-recursively '("vendor/opari2" "vendor/cube"))))
(add-after 'install 'licence
- (lambda _
- (let ((doc (string-append (assoc-ref %outputs "out") "/share/doc")))
- (mkdir-p doc)
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc/scorep")))
(install-file "COPYING" doc)
#t))))))
(home-page "http://www.vi-hps.org/projects/score-p/")
- (synopsis
- (format #f "\
-Scalable Performance Measurement Infrastructure for Parallel Codes, ~a version"
- (package-name mpi)))
- (description (format #f "The Score-P (Scalable Performance Measurement Infrastructure for Parallel
-Codes) measurement infrastructure is a highly scalable and easy-to-use tool
-suite for profiling, event trace recording, and online analysis of HPC
-applications.
-This is the ~a version." (package-name mpi)))
+ (synopsis "Performance measurement infrastructure for parallel code")
+ (description
+ "The Score-P (Scalable Performance Measurement Infrastructure for
+Parallel Codes) measurement infrastructure is a scalable and easy-to-use tool
+suite for profiling, event trace recording, and online analysis of
+high-performance computing (HPC) applications.")
(license license:cpl1.0)))
(define-public scorep-openmpi (make-scorep openmpi))
L
L
Ludovic Courtès wrote on 16 Oct 2017 15:20
control message for bug #28673
(address . control@debbugs.gnu.org)
87y3obcjqn.fsf@gnu.org
tags 28673 moreinfo
L
L
Ludovic Courtès wrote on 16 Nov 2017 10:47
Re: [bug#28673] [PATCH 5/6] gnu: libunwind: Merge update and test changes.
(name . Dave Love)(address . fx@gnu.org)(address . 28673-done@debbugs.gnu.org)
87lgj6imh4.fsf@gnu.org
Hi Dave,

ludo@gnu.org (Ludovic Courtès) skribis:

Toggle quote (52 lines)
> Dave Love <fx@gnu.org> skribis:
>
>> * gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch:
>> New file.
>> * gnu/packages/patches/libunwind-ppc_lib64.patch: New file.
>> * gnu/packages/libunwind.scm (libunwind)[source]: Use them.
>> (libunwind)(native-inputs): Add autotools.
>> (libunwind)(arguments): Enable tests; run autoreconf.
>> * gnu/local.mk: Update dependencies.
>
> [...]
>
>> +++ b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch
>> @@ -0,0 +1,11 @@
>> +--- libunwind-1.2.1/tests/Makefile.am~ 1970-01-01 01:00:00.000000000 +0100
>> ++++ libunwind-1.2.1/tests/Makefile.am 2017-09-06 13:32:52.331888031 +0100
>> +@@ -97,7 +97,7 @@
>> + XFAIL_TESTS =
>> +
>> + if !ARCH_IA64
>> +-XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1
>> ++XFAIL_TESTS += Gtest-dyn1 Ltest-dyn1 test-ptrace
>> + endif
>> +
>> + # Use if arch defines but does not support PTRACE_SINGLESTEP
>> diff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patch
>> new file mode 100644
>> index 000000000..9ab0108ae
>> --- /dev/null
>> +++ b/gnu/packages/patches/libunwind-ppc_lib64.patch
>> @@ -0,0 +1,17 @@
>> +Index: pkg-libunwind/configure.ac
>> +===================================================================
>> +--- pkg-libunwind.orig/configure.ac 2014-05-07 15:13:28.247711669 +0900
>> ++++ pkg-libunwind/configure.ac 2014-05-07 15:14:25.924958386 +0900
>> +@@ -164,12 +164,6 @@
>> + AM_CONDITIONAL(USE_DWARF, [test x$use_dwarf = xyes])
>> + AC_MSG_RESULT([$use_dwarf])
>> +
>> +-if test x$target_arch = xppc64; then
>> +- libdir='${exec_prefix}/lib64'
>> +- AC_MSG_NOTICE([PowerPC64 detected, lib will be installed ${libdir}]);
>> +- AC_SUBST([libdir])
>> +-fi
>
> Could you avoid this patch and instead use ‘substitute*’ on ‘configure’
> and ‘tests/Makefile.in’ such that we don’t need the extra dependency on
> the autotools?
>
> Please make sure to add a comment explaining why we’re doing this (the
> Makefile.am bit is not obvious to me.)

Since these libunwind changes do not seem to relate to the rest of this
PAPI series (which has been applied), I’m closing it now. Feel free to
resubmit separately if you think it’s still relevant!

Thanks,
Ludo’.
Closed
?