]> git.pld-linux.org Git - packages/GPI2.git/commitdiff
- initial
authorJakub Bogusz <qboosh@pld-linux.org>
Wed, 3 Sep 2014 17:56:19 +0000 (19:56 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Wed, 3 Sep 2014 17:56:19 +0000 (19:56 +0200)
- nosse patch avoids using SSE instructions unconditionally
- format patch fixes build with -Werror=format-security

GPI2-format.patch [new file with mode: 0644]
GPI2-nosse.patch [new file with mode: 0644]
GPI2.spec [new file with mode: 0644]

diff --git a/GPI2-format.patch b/GPI2-format.patch
new file mode 100644 (file)
index 0000000..ce4ebae
--- /dev/null
@@ -0,0 +1,11 @@
+--- GPI2-1.1.0/src/GPI2_Logger.c.orig  2014-06-18 21:42:30.000000000 +0200
++++ GPI2-1.1.0/src/GPI2_Logger.c       2014-09-03 17:47:28.132279202 +0200
+@@ -191,7 +191,7 @@
+       vsnprintf (buf + sl, 1024 - sl, fmt, ap);
+       va_end (ap);
+-      fprintf (stdout, buf);
++      fputs (buf, stdout);
+       fflush (stdout);
+       goto endL;
diff --git a/GPI2-nosse.patch b/GPI2-nosse.patch
new file mode 100644 (file)
index 0000000..98da6f9
--- /dev/null
@@ -0,0 +1,24 @@
+--- GPI2-1.1.0/src/GPI2_Utility.h.orig 2014-09-03 17:40:08.285630994 +0200
++++ GPI2-1.1.0/src/GPI2_Utility.h      2014-09-03 17:36:54.835639111 +0200
+@@ -25,7 +25,6 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <time.h>
+-#include <xmmintrin.h>
+ #ifdef DEBUG
+ #define gaspi_print_error(msg, ...)                                   \
+@@ -51,7 +50,12 @@
+ #ifdef MIC
+ #define gaspi_delay()   _mm_delay_32(32)
+ #else
+-#define gaspi_delay()   _mm_pause()
++#if defined(__i386__) || defined(__x86_64__)
++#define gaspi_delay()   __builtin_ia32_pause()
++#else
++#include <unistd.h>
++#define gaspi_delay()   usleep(0)
++#endif
+ #endif
diff --git a/GPI2.spec b/GPI2.spec
new file mode 100644 (file)
index 0000000..55d1fbe
--- /dev/null
+++ b/GPI2.spec
@@ -0,0 +1,95 @@
+# TODO: CUDA, MPI, Load Leveler(?)
+# - find gaspi_logger sources and compile it
+#
+# Conditional build:
+%bcond_without f90     # Fortran bindings
+#
+Summary:       GPI-2 - API for asynchronous communication
+Summary(pl.UTF-8):     GPI-2 - API do komunikacji asynchronicznej
+Name:          GPI2
+Version:       1.1.0
+Release:       0.1
+License:       GPL v3
+Group:         Applications
+Source0:       https://www.openfabrics.org/downloads/gpi2/%{name}-%{version}.tar.gz
+# Source0-md5: f4d7dcc6ed1010ca65dbf91cde9abfac
+Patch0:                %{name}-nosse.patch
+Patch1:                %{name}-format.patch
+URL:           http://www.gpi-site.com/gpi2/
+BuildRequires: doxygen
+%{?with_f90:BuildRequires:     gcc-fortran >= 5:4.0}
+BuildRequires: libibverbs-devel >= 1.1.6
+Requires:      libibverbs >= 1.1.6
+# FIXME: gaspi_logger sources are missing
+ExclusiveArch: %{ix86} %{x8664}
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+GPI-2 is the second generation of GPI (http://www.gpi-site.com/). GPI-2
+implements the GASPI specification (http://www.gaspi.de/), an API
+specification which originates from the ideas and concepts of GPI.
+
+GPI-2 is an API for asynchronous communication. It provides a
+flexible, scalable and fault tolerant interface for parallel
+applications.
+
+%description -l pl.UTF-8
+GPI-2 to druga generacja GPI (http://www.gpi-site.com/). GPI-2
+jest implementacją specyfikacji GASPI (http://www.gaspi.de/) - API
+wywodzącego się z idei GPI.
+
+GPI-2 to API do komunikacji asynchronicznej. Zapewnia elastyczny,
+skalowalny i odporny na awarie interfejs do aplikacji równoległych.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+
+# precompiled binaries
+# FIXME: sources are missing
+#%{__rm} bin/gaspi_logger
+
+%build
+%{__make} clean
+%{__make} -C src depend
+%{__make} gpi \
+       CC="%{__cc}" \
+       CFLAGS="%{rpmcflags} -Wall -D_GNU_SOURCE"
+%if %{with f90}
+%{__make} fortran
+%endif
+
+%if %{with tests}
+%{__make} tests
+%endif
+
+%{__make} docs
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir}}
+
+install bin/gaspi_run.ssh $RPM_BUILD_ROOT%{_bindir}/gaspi_run
+install bin/ssh.spawner bin/gaspi_cleanup bin/gaspi_logger $RPM_BUILD_ROOT%{_bindir}
+cp -pr include $RPM_BUILD_ROOT%{_includedir}
+cp -p lib64/lib* $RPM_BUILD_ROOT%{_libdir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc README docs/html
+%attr(755,root,root) %{_bindir}/gaspi_cleanup
+%attr(755,root,root) %{_bindir}/gaspi_logger
+%attr(755,root,root) %{_bindir}/gaspi_run
+%attr(755,root,root) %{_bindir}/ssh.spawner
+%{_libdir}/libGPI2.a
+%{_libdir}/libGPI2-dbg.a
+%{_includedir}/GASPI.h
+%{_includedir}/GASPI_GPU.h
+%{_includedir}/GASPI_Threads.h
+%{_includedir}/PGASPI.h
+%{_includedir}/gaspi.mod
+%{_includedir}/gaspi_types.mod
This page took 0.044381 seconds and 4 git commands to generate.