[PATCH 1/6] gnu: Add papi.

DoneSubmitted by Dave Love.
Details
2 participants
  • Dave Love
  • Ludovic Courtès
Owner
unassigned
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.mkindex 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.scmnew file mode 100644index 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.scmindex 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.scmindex 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.scmindex 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.mkindex 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.patchnew file mode 100644index 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.scmindex 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.mkindex 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.scmindex 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") (descriptiondiff --git a/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patch b/gnu/packages/patches/libunwind-known_test_failure_to_XFAIL_TESTS.patchnew file mode 100644index 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_SINGLESTEPdiff --git a/gnu/packages/patches/libunwind-ppc_lib64.patch b/gnu/packages/patches/libunwind-ppc_lib64.patchnew file mode 100644index 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.scmindex 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.scmindex 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 licensefiles. 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.scmindex 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’.
Toggle diff (161 lines)diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scmindex 300c6fc94..598633c3e 100644--- a/gnu/packages/profiling.scm+++ b/gnu/packages/profiling.scm@@ -34,6 +34,7 @@ #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages ncurses)+ #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages qt)) @@ -198,7 +199,6 @@ and hybrid codes. It surrounds OpenMP directives and runtime library calls with calls to the POMP2 measurement interface.") (license license:bsd-3))) -;; FIXME: The doc is 14MB, but adding a doc output results in a cycle (define-public cube (package (name "cube")@@ -210,16 +210,17 @@ with calls to the POMP2 measurement interface.") "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"))))+ (patches (search-patches "cube-nocheck.patch")))) (inputs `(("dbus" ,dbus) ("zlib" ,zlib))) (native-inputs `(("perl" ,perl)- ("qtbase" ,qtbase) ; native because of qmake+ ("qtbase" ,qtbase) ; native because of qmake ("which" ,which)))- (outputs '("out" ;"doc"++ ;; FIXME: The doc is 14MB, but adding a doc output results in a cycle.+ (outputs '("out" ;"doc" "lib"))+ (build-system gnu-build-system) (arguments `(#:configure-flags@@ -230,27 +231,30 @@ with calls to the POMP2 measurement interface.") (modify-phases %standard-phases (add-after 'configure 'rpath ;; Account for moving GUI stuff- (lambda _- (let ((wl (string-append "-Wl,-rpath=" %output "/lib")))+ (lambda* (#:key outputs #:allow-other-keys)+ (let ((wl (string-append "-Wl,-rpath=" (assoc-ref outputs "out")+ "/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))))))+ (string-append "libbarplot_plugin_la_LDFLAGS = " wl)))+ #t))) (add-before 'install 'includes-cube ;; It tries to install here before include exists.- (lambda _- (let ((inc (string-append (assoc-ref %outputs "lib") "/include")))+ (lambda* (#:key outputs #:allow-other-keys)+ (let ((inc (string-append (assoc-ref outputs "lib") "/include"))) (mkdir-p (string-append inc "/cube"))- (mkdir-p (string-append inc "/cubew")))))+ (mkdir-p (string-append inc "/cubew"))+ #t))) (add-after 'install 'licence- (lambda _- (let ((doc (string-append (assoc-ref %outputs "lib") "/share/doc")))- (mkdir-p doc)+ (lambda* (#:key outputs #:allow-other-keys)+ (let ((doc (string-append (assoc-ref outputs "lib")+ "/share/doc/cube"))) (install-file "COPYING" doc) #t)))- ;; FIXME: cycle+ ;; XXX: Commented due to cycle (see comment above.) ;; (add-after 'install 'doc ;; (lambda _ ;; (let ((share (string-append (assoc-ref %outputs "doc")@@ -269,23 +273,28 @@ with calls to the POMP2 measurement interface.") (for-each (lambda (file) (rename-file file (string-append outlib "/" (basename file))))- (append (find-files lib "libgraphwidgetcommon-plugin.*")- (find-files lib "libcube4gui.so.*"))))))+ (append (find-files lib "libgraphwidgetcommon-plugin\\..*")+ (find-files lib "libcube4gui\\.so.*")))+ #t))) (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")))+ (lambda* (#:key outputs #:allow-other-keys)+ (let ((outinc (string-append (assoc-ref outputs "out")+ "/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+ '("cube" "cubew"))+ #t)))++ ;; XXX: 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"))@@ -298,8 +307,8 @@ with calls to the POMP2 measurement interface.") ;; (("^exec_prefix=\"\\$\\{prefix\\}\"") ;; (string-append "exec_prefix=" lib)))))) (add-after 'install 'cube-config- (lambda _- (let* ((lib (assoc-ref %outputs "lib"))+ (lambda* (#:key outputs #:allow-other-keys)+ (let* ((lib (assoc-ref outputs "lib")) (libbin (string-append lib "/bin"))) (mkdir-p libbin) (install-file (string-append %output "/bin/cube-config") libbin)@@ -307,16 +316,17 @@ with calls to the POMP2 measurement interface.") libbin) (substitute* (list (string-append libbin "/cube-config")) (("^source .*frontend.*$") "")- ((%output) lib))))))))+ (((assoc-ref outputs "out")) lib))+ #t)))))) (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.")+ (synopsis "Performance report explorer for parallel programs")+ (description+ "CUBE (CUBE Uniform Behavioral Encoding) is a tool to display a 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)))
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 onthe autotools?
Please make sure to add a comment explaining why we’re doing this (theMakefile.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.scmindex 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 thisPAPI series (which has been applied), I’m closing it now. Feel free toresubmit separately if you think it’s still relevant!
Thanks,Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 28673@debbugs.gnu.org