From: Dave Love <fx@gnu.org>
To: 29172@debbugs.gnu.org
Cc: Dave Love <fx@gnu.org>
Subject: [bug#29172] [PATCH] gnu: Add psm.
Date: Mon, 6 Nov 2017 17:16:26 +0000 [thread overview]
Message-ID: <20171106171626.29830-2-fx@gnu.org> (raw)
In-Reply-To: <20171106171626.29830-1-fx@gnu.org>
* gnu/packages/linux.scm (psm): New variable.
(libfabric): Use it.
* gnu/packages/mpi.scm (openmpi)[inputs]: Add psm.
* gnu/packages/patches/psm-arch.patch,
gnu/packages/patches/psm-ldflags.patch,
gnu/packages/patches/psm-repro.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
---
gnu/local.mk | 3 +++
gnu/packages/linux.scm | 45 +++++++++++++++++++++++++++++++++-
gnu/packages/mpi.scm | 1 +
gnu/packages/patches/psm-arch.patch | 11 +++++++++
gnu/packages/patches/psm-ldflags.patch | 11 +++++++++
gnu/packages/patches/psm-repro.patch | 12 +++++++++
6 files changed, 82 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/psm-arch.patch
create mode 100644 gnu/packages/patches/psm-ldflags.patch
create mode 100644 gnu/packages/patches/psm-repro.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 6b70300ff..d7b162d31 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -957,6 +957,9 @@ dist_patch_DATA = \
%D%/packages/patches/procmail-ambiguous-getline-debian.patch \
%D%/packages/patches/procmail-CVE-2014-3618.patch \
%D%/packages/patches/proot-test-fhs.patch \
+ %D%/packages/patches/psm-arch.patch \
+ %D%/packages/patches/psm-ldflags.patch \
+ %D%/packages/patches/psm-repro.patch \
%D%/packages/patches/pt-scotch-build-parallelism.patch \
%D%/packages/patches/pulseaudio-fix-mult-test.patch \
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 49665e24d..1a3ffa347 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -4387,7 +4387,7 @@ comparing system environments.")
(base32 "19l2m1frna1l765z4j7wl8hp4rb9wrh0hy5496685hd183hmy5pv"))))
(build-system gnu-build-system)
(inputs `(("rdma-core" ,rdma-core)
- ;; TODO: add psm, psm(2).
+ ("psm" ,psm)
("libnl" ,libnl)))
(home-page "https://ofiwg.github.io/libfabric/")
(synopsis "Open Fabric Interfaces")
@@ -4403,3 +4403,46 @@ exports the user-space API of OFI, and is typically the only software that
applications deal with directly. It works in conjunction with provider
libraries, which are often integrated directly into libfabric.")
(license (list license:bsd-2 license:gpl2)))) ;dual
+
+(define-public psm
+ (package
+ (name "psm")
+ (version "3.3.20170428")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "http://github.com/01org/psm")
+ (commit "604758e76dc31e68d1de736ccf5ddf16cb22355b")))
+ (file-name (string-append "psm-" version ".tar.gz"))
+ (sha256
+ (base32 "0nsb325dmhn5ia3d2cnksqr0gdvrrx2hmvlylfgvmaqdpq76zm85"))
+ (patches (search-patches
+ "psm-arch.patch" ; uname -p returns "unknown" on Debian 9
+ "psm-ldflags.patch" ; build shared lib with LDFLAGS
+ "psm-repro.patch")))) ; reproducibility
+ (build-system gnu-build-system)
+ (inputs `(("libuuid" ,util-linux)))
+ (arguments
+ '(#:make-flags `("PSM_USE_SYS_UUID=1" "CC=gcc" "WERROR="
+ ,(string-append "INSTALL_PREFIX=" %output)
+ ,(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'patch-/usr/include
+ (lambda _
+ (substitute* "Makefile"
+ (("\\$\\{DESTDIR}/usr/include")
+ (string-append %output "/include")))
+ (substitute* "Makefile"
+ (("/lib64") "/lib"))
+ #t)))))
+ (home-page "https://github.com/01org/psm")
+ (synopsis "Intel Performance Scaled Messaging (PSM) Libraries")
+ (description
+ "The PSM Messaging API, or PSM API, is Intel's low-level
+user-level communications interface for the True Scale
+family of products. PSM users are enabled with mechanisms
+necessary to implement higher level communications
+interfaces in parallel environments.")
+ (license (list license:bsd-2 license:gpl2)))) ;dual
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 741d30a8c..9f14d2c18 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -125,6 +125,7 @@ bind processes, and much more.")
(inputs
`(("hwloc" ,hwloc "lib")
("libfabric" ,libfabric)
+ ("psm" ,psm)
("rdma-core" ,rdma-core)
("valgrind" ,valgrind)))
(native-inputs
diff --git a/gnu/packages/patches/psm-arch.patch b/gnu/packages/patches/psm-arch.patch
new file mode 100644
index 000000000..a17d6ac3a
--- /dev/null
+++ b/gnu/packages/patches/psm-arch.patch
@@ -0,0 +1,11 @@
+--- psm-3.3/buildflags.mak~ 2014-08-20 21:00:18.000000000 +0100
++++ psm-3.3/buildflags.mak 2017-10-22 12:02:12.855291447 +0100
+@@ -38,7 +38,7 @@
+ endif
+
+ export os ?= $(shell uname -s | tr '[A-Z]' '[a-z]')
+-export arch := $(shell uname -p | sed -e 's,\(i[456]86\|athlon$$\),i386,')
++export arch := $(shell uname -m | sed -e 's,\(i[456]86\|athlon$$\),i386,')
+
+ CC ?= gcc
+
diff --git a/gnu/packages/patches/psm-ldflags.patch b/gnu/packages/patches/psm-ldflags.patch
new file mode 100644
index 000000000..be053c637
--- /dev/null
+++ b/gnu/packages/patches/psm-ldflags.patch
@@ -0,0 +1,11 @@
+--- psm-3.3/ipath/Makefile~ 1970-01-01 01:00:00.000000000 +0100
++++ psm-3.3/ipath/Makefile 2017-10-22 15:10:10.269177711 +0100
+@@ -73,7 +73,7 @@
+ ${TARGLIB}.so.${MAJOR}.${MINOR}: ${${TARGLIB}-objs}
+ date +'static __attribute__ ((unused)) char __psc_infinipath_revision[] ="$$""Date: %F %R ${rpm_extra_description}InfiniPath $$";' > _revision.c
+ $(CC) -c $(BASECFLAGS) $(INCLUDES) _revision.c -o _revision.o
+- $(CC) -o $@ -Wl,-soname=${TARGLIB}.so.${MAJOR} -shared \
++ $(CC) -o $@ -Wl,-soname=${TARGLIB}.so.${MAJOR} $(LDFLAGS) -shared \
+ -Wl,--unique='*fastpath*' \
+ ${${TARGLIB}-objs} _revision.o $(LDFLAGS) $(if $(MIC:0=),$(SCIF_LINK_FLAGS))
+
diff --git a/gnu/packages/patches/psm-repro.patch b/gnu/packages/patches/psm-repro.patch
new file mode 100644
index 000000000..12dab1855
--- /dev/null
+++ b/gnu/packages/patches/psm-repro.patch
@@ -0,0 +1,12 @@
+--- psm-3.3/Makefile~ 1970-01-01 01:00:00.000000000 +0100
++++ psm-3.3/Makefile 2017-10-22 15:32:11.736949002 +0100
+@@ -326,7 +326,7 @@
+ # file around. Generate it such that the ident command can find it
+ # and strings -a | grep InfiniPath does a reasonable job as well.
+ ${TARGLIB}.so.${MAJOR}.${MINOR}: ${${TARGLIB}-objs}
+- date +'char psmi_infinipath_revision[] ="$$""Date: %F %R ${rpm_extra_description}InfiniPath $$";' > ${lib_build_dir}/_revision.c
++ echo 'char psmi_infinipath_revision[] ="$$""Date: 1970-01-01 00:00 ${rpm_extra_description}InfiniPath $$";' > ${lib_build_dir}/_revision.c
+ $(CC) -c $(BASECFLAGS) $(INCLUDES) _revision.c -o _revision.o
+ $(CC) $(LDFLAGS) -o $@ -Wl,-soname=${TARGLIB}.so.${MAJOR} -shared -Wl,--unique='*fastpath*' \
+ ${${TARGLIB}-objs} _revision.o -L$(build_dir)/ipath $(LDLIBS)
+
--
2.11.0
next prev parent reply other threads:[~2017-11-06 17:22 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-06 17:16 [bug#29172] [PATCH] gnu: Add psm Dave Love
2017-11-06 17:16 ` Dave Love [this message]
2017-11-07 17:02 ` bug#29172: " Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171106171626.29830-2-fx@gnu.org \
--to=fx@gnu.org \
--cc=29172@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).