Accepting request 502397 from science:HPC

- Rename dapl-utils tests to avoid conflicts with other packages (dateutils)
  * dapltest => dapl-test
  * dtest    => dapl-utest
  * dtestcm  => dapl-testcm
  * dtestsrq => dapl-testsrq
  * dtestx   => dapl-testx
- Remove librdmacm and libibverbs version dependencies

- Restore description of libdapl. Fix some grammar errors.

- Disable dapl on armv7hl

- Make dependencies on libs now coming from rdma-core versioned.
- Remove unused patch dapl-rename_dtest.patch

- Update to 2.1.8 git version (bsc#970668).
  List of changes is too long so please see the included ChangeLog.
- Patches removed because the fixes are included upstream:
  dapl-fix_type_punning.patch
  dapl-autotools.patch
  dapl-add-s390x-platform-support.patch
  dapl-add-aarch64-platform-support.patch
  dapl-add-s390x-platform-support.patch
- Add dapl-s390.patch so that the defines are also valid for s390

- Add conflicts between dapl and dapl-debug packages for devel
  and utils

OBS-URL: https://build.opensuse.org/request/show/502397
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dapl?expand=0&rev=5
This commit is contained in:
Dominique Leuenberger 2017-06-09 13:57:33 +00:00 committed by Git OBS Bridge
parent b6d1b3ac69
commit 13f0286428
14 changed files with 253 additions and 683 deletions

View File

@ -11,13 +11,13 @@ Acked-by: John Jolly <jjolly@suse.de>
Index: dapl/openib_cma/device.c Index: dapl/openib_cma/device.c
=================================================================== ===================================================================
--- dapl/openib_cma/device.c.orig 2011-08-19 19:09:23.000000000 +0200 --- dapl/openib_cma/device.c.orig 2016-03-10 15:08:38.037462973 +0100
+++ dapl/openib_cma/device.c 2012-05-09 15:10:12.629247619 +0200 +++ dapl/openib_cma/device.c 2016-03-10 15:10:39.068801915 +0100
@@ -289,7 +289,6 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_N @@ -313,7 +313,6 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_N
} }
ret = rdma_bind_addr(cm_id, (struct sockaddr *)&hca_ptr->hca_address); ret = rdma_bind_addr(cm_id, (struct sockaddr *)&hca_ptr->hca_address);
if ((ret) || (cm_id->verbs == NULL)) { if ((ret) || (cm_id->verbs == NULL)) {
- rdma_destroy_id(cm_id); - rdma_destroy_id(cm_id);
dapl_log(DAPL_DBG_TYPE_ERR, dapl_log(DAPL_DBG_TYPE_ERR,
" open_hca: rdma_bind ERR %s." " open_hca: rdma_bind ERR %s."
" Is %s configured?\n", strerror(errno), hca_name); " Is %s configured as IPoIB?\n", strerror(errno), hca_name);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:79faba77b88acf94cb8fa8d1ecd4b0dd68bcd8eccba170536e8417ac44f6722b
size 806308

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:040f25124182af299c65e0c3117c0d6bafd8cdc5eade11abd8a114d60c6be592
size 702700

View File

@ -1,56 +0,0 @@
From 142fa8fa58d5e0b92dccc52d7a3bd913456084b4 Mon Sep 17 00:00:00 2001
From: Mark Salter <msalter@redhat.com>
Date: Wed, 13 May 2015 16:40:58 -0700
Subject: [PATCH] dapl: aarch64 support for linux
Add atomic ops to fix builds for aarch64 Linux.
Signed-off-by: Mark Salter <msalter@redhat.com>
Acked-by: Arlin Davis <arlin.r.davis@intel.com>
---
dapl/udapl/linux/dapl_osd.h | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
Index: dapl-2.0.42/dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl-2.0.42.orig/dapl/udapl/linux/dapl_osd.h
+++ dapl-2.0.42/dapl/udapl/linux/dapl_osd.h
@@ -51,7 +51,8 @@
#if !defined(__i386__) && !defined(__ia64__) \
&& !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__) \
-&& !defined(__s390x__) && !defined(__s390__)
+&& !defined(__s390x__) && !defined(__s390__) \
+&& !defined(__aarch64__)
#error UNDEFINED ARCH
#endif
@@ -213,6 +214,8 @@ dapl_os_atomic_inc (
: "=&r" (tmp), "+m" (v)
: "b" (v)
: "cc");
+#elif defined(__aarch64__)
+ __atomic_fetch_add(v, 1, __ATOMIC_ACQ_REL);
#else /* !__ia64__ */
__asm__ __volatile__ (
"lock;" "incl %0"
@@ -257,6 +260,8 @@ dapl_os_atomic_dec (
: "=&r" (tmp), "+m" (v)
: "b" (v)
: "cc");
+#elif defined(__aarch64__)
+ __atomic_fetch_add(v, -1, __ATOMIC_ACQ_REL);
#else /* !__ia64__ */
__asm__ __volatile__ (
"lock;" "decl %0"
@@ -321,6 +326,10 @@ dapl_os_atomic_assign (
: "=&r" (current_value), "=m" (*v)
: "r" (v), "r" (match_value), "r" (new_value), "m" (*v)
: "cc", "memory");
+#elif defined(__aarch64__)
+ current_value = match_value;
+ __atomic_compare_exchange_n(v, &current_value, new_value, 1,
+ __ATOMIC_ACQ_REL, __ATOMIC_RELAXED);
#else
__asm__ __volatile__ (
"lock; cmpxchgl %1, %2"

View File

@ -1,126 +0,0 @@
dapl/udapl/linux/dapl_osd.h | 37 +++++++++++++++++++++++++++++-
test/dapltest/mdep/linux/dapl_mdep_user.c | 2 -
test/dapltest/mdep/linux/dapl_mdep_user.h | 9 ++++++-
3 files changed, 45 insertions(+), 3 deletions(-)
Index: dapl-2.0.42/dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl-2.0.42.orig/dapl/udapl/linux/dapl_osd.h 2014-04-07 19:27:35.000000000 +0200
+++ dapl-2.0.42/dapl/udapl/linux/dapl_osd.h 2015-08-11 11:21:10.335431479 +0200
@@ -49,7 +49,9 @@
#error UNDEFINED OS TYPE
#endif /* __linux__ */
-#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__)
+#if !defined(__i386__) && !defined(__ia64__) \
+&& !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__) \
+&& !defined(__s390x__) && !defined(__s390__)
#error UNDEFINED ARCH
#endif
@@ -156,6 +158,22 @@ int dapl_os_get_env_val (
/* atomic functions */
+#if defined(__s390x__) || defined(__s390__)
+#define DAPL_CS_ADD(ptr, op_val) ({ \
+ int old_val, new_val; \
+ __asm__ __volatile__( \
+ " l %0,%2\n" \
+ "0: lr %1,%0\n" \
+ " ar %1,%3\n" \
+ " cs %0,%1,%2\n" \
+ " jl 0b" \
+ : "=&d" (old_val), "=&d" (new_val), \
+ "=Q" (*ptr) \
+ : "d" (op_val), "Q" (*ptr) \
+ : "cc", "memory"); \
+ new_val; \
+})
+#endif
/* dapl_os_atomic_inc
*
@@ -179,6 +197,11 @@ dapl_os_atomic_inc (
#else
IA64_FETCHADD(old_value,v,1,4);
#endif
+#elif defined(__s390x__) || defined(__s390__)
+ DAT_COUNT tmp;
+ DAT_COUNT delta = 1;
+
+ tmp = DAPL_CS_ADD(v, delta);
#elif defined(__PPC__) || defined(__PPC64__)
int tmp;
@@ -218,6 +241,11 @@ dapl_os_atomic_dec (
#else
IA64_FETCHADD(old_value,v,-1,4);
#endif
+#elif defined(__s390x__) || defined(__s390__)
+ DAT_COUNT tmp;
+ DAT_COUNT delta = -1;
+
+ tmp = DAPL_CS_ADD(v, delta);
#elif defined (__PPC__) || defined(__PPC64__)
int tmp;
@@ -273,6 +301,13 @@ dapl_os_atomic_assign (
#else
current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);
#endif /* __ia64__ */
+#elif defined(__s390x__) || defined(__s390__)
+ __asm__ __volatile__(
+ " cs %0,%2,%1\n"
+ : "+d" (match_value), "=Q" (*v)
+ : "d" (new_value), "Q" (*v)
+ : "cc", "memory");
+ current_value = match_value;
#elif defined(__PPC__) || defined(__PPC64__)
__asm__ __volatile__ (
" lwsync\n\
Index: dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.c
===================================================================
--- dapl-2.0.42.orig/test/dapltest/mdep/linux/dapl_mdep_user.c 2014-04-07 19:27:35.000000000 +0200
+++ dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.c 2015-08-11 11:18:51.751655179 +0200
@@ -168,7 +168,7 @@ unsigned long DT_Mdep_GetTime(void)
return tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
-#ifdef RDTSC_TIMERS
+#if defined(RDTSC_TIMERS) && !defined(__s390x__)
double DT_Mdep_GetCpuMhz(void)
{
#define DT_TSC_BUFFER_SIZE 128
Index: dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.h
===================================================================
--- dapl-2.0.42.orig/test/dapltest/mdep/linux/dapl_mdep_user.h 2014-04-07 19:27:35.000000000 +0200
+++ dapl-2.0.42/test/dapltest/mdep/linux/dapl_mdep_user.h 2015-08-11 11:18:51.751655179 +0200
@@ -143,11 +143,18 @@ DT_Mdep_GetTimeStamp ( void )
asm volatile("rdtsc" : "=a" (__a), "=d" (__d));
return ((unsigned long)__a) | (((unsigned long)__d)<<32);
#else
+#if defined(__s390x__)
+ DT_Mdep_TimeStamp x;
+
+ asm volatile("stck %0" : "=Q" (x) : : "cc");
+ return x >> 2;
+#else
#error "Linux CPU architecture - unimplemented"
#endif
#endif
#endif
#endif
+#endif
}
#else /* !RDTSC_TIMERS */
/*
@@ -172,7 +179,7 @@ DT_Mdep_GetTimeStamp ( void )
* world. E.g. %llx for gcc, %I64x for Windows
*/
-#if defined(__x86_64__) || defined(__ia64__)
+#if defined(__x86_64__) || defined(__ia64__) || defined(__s390x__)
#define F64d "%ld"
#define F64u "%lu"
#define F64x "%lx"

View File

@ -1,56 +0,0 @@
From: Philipp Thomas <pth@suse.de>
Date: 2014-01-21 18:40:02+01:00
Subject: Enable running autoreconf
References:
Upstream:
Adapt configure.in and Makefile.am so that autoreconf
complains less.
configure.in | 5 +++--
test/dapltest/Makefile.am | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
Index: configure.in
===================================================================
--- configure.in.orig 2014-05-05 18:11:33.000000000 +0200
+++ configure.in 2014-06-25 18:11:15.740970867 +0200
@@ -5,7 +5,7 @@ AC_INIT(dapl, 2.0.42, linux-rdma@vger.ke
AC_CONFIG_SRCDIR([dat/udat/udat.c])
AC_CONFIG_AUX_DIR(config)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(dapl, 2.0.42)
+AM_INIT_AUTOMAKE([-Wall foreign])
AM_PROG_LIBTOOL
@@ -17,6 +17,7 @@ AC_ARG_ENABLE(libcheck, [ --disable-lib
dnl Checks for programs
AC_PROG_CC
+AM_PROG_CC_C_O
dnl Checks for libraries
if test "$disable_libcheck" != "yes"
@@ -63,7 +64,7 @@ AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, t
dnl Support debug mode build - if enable-debug provided the DEBUG variable is set
AC_ARG_ENABLE(debug,
-[ --enable-debug Turn on debug mode, default=off],
+ AS_HELP_STRING([--enable-debug], [Turn on debug mode, default=off]),
[case "${enableval}" in
yes) debug=true ;;
no) debug=false ;;
Index: test/dapltest/Makefile.am
===================================================================
--- test/dapltest/Makefile.am.orig 2014-04-07 19:27:35.000000000 +0200
+++ test/dapltest/Makefile.am 2014-06-25 18:10:20.444662166 +0200
@@ -8,7 +8,7 @@ AM_CFLAGS = -g -Wall -D_GNU_SOURCE
dapltest_CFLAGS = $(AM_FLAGS) $(XFLAGS)
-INCLUDES = -I include \
+AM_CPPFLAGS = -I include \
-I mdep/linux \
-I $(srcdir)/../../dat/include

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Tue May 30 08:50:05 UTC 2017 - nmoreychaisemartin@suse.com
- Add conflicts between dapl and dapl-debug packages for devel
and utils
- Rename dapl-utils tests to avoid conflicts with other packages (dateutils)
* dapltest => dapl-test
* dtest => dapl-utest
* dtestcm => dapl-testcm
* dtestsrq => dapl-testsrq
* dtestx => dapl-testx
- Remove librdmacm and libibverbs version dependencies
-------------------------------------------------------------------
Thu May 25 07:19:35 UTC 2017 - jengelh@inai.de
- Restore description of libdapl. Fix some grammar errors.
-------------------------------------------------------------------
Wed May 17 08:20:55 UTC 2017 - nmoreychaisemartin@suse.com
- Disable dapl on armv7hl
-------------------------------------------------------------------
Wed Mar 29 07:53:21 CEST 2017 - pth@suse.de
- Make dependencies on libs now coming from rdma-core versioned.
- Remove unused patch dapl-rename_dtest.patch
-------------------------------------------------------------------
Thu Mar 10 15:19:58 CET 2016 - pth@suse.de
- Update to 2.1.8 git version (bsc#970668).
List of changes is too long so please see the included ChangeLog.
- Patches removed because the fixes are included upstream:
dapl-fix_type_punning.patch
dapl-autotools.patch
dapl-add-s390x-platform-support.patch
dapl-add-aarch64-platform-support.patch
dapl-add-s390x-platform-support.patch
- Add dapl-s390.patch so that the defines are also valid for s390
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Sep 10 08:04:16 UTC 2015 - dmueller@suse.com Thu Sep 10 08:04:16 UTC 2015 - dmueller@suse.com

View File

@ -1,7 +1,7 @@
# #
# spec file for package dapl-debug # spec file for package dapl-debug
# #
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -16,24 +16,21 @@
# #
%define git_version -git6316f83
Name: dapl-debug Name: dapl-debug
Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs
License: BSD-3-Clause or GPL-2.0+ or CPL-1.0 License: BSD-3-Clause or GPL-2.0+ or CPL-1.0
Group: Productivity/Networking/System Group: Productivity/Networking/System
Version: 2.0.42 Version: 2.1.8
Release: 0 Release: 0
Source0: https://www.openfabrics.org/downloads/dapl/dapl-%{version}.tar.gz Source0: dapl-%{version}%{git_version}.tar.xz
Source1: baselibs.conf Source1: dapl-rpmlintrc
Source2: dapl-rpmlintrc Source2: baselibs.conf
Patch1: dapl-2.0.30-dat-ia-open-hang.patch Patch1: dapl-2.0.30-dat-ia-open-hang.patch
Patch4: dapl-fix_type_punning.patch
Patch5: dapl-define_NULL.patch Patch5: dapl-define_NULL.patch
Patch6: dapl-man_page_fixes.patch Patch6: dapl-man_page_fixes.patch
Patch7: dapl-fsf_address.patch Patch7: dapl-fsf_address.patch
Patch8: dapl-add-s390x-platform-support.patch Patch12: dapl-s390.patch
Patch9: dapl-autotools.patch
Patch10: dapl-rename_dtest.patch
Patch11: dapl-add-aarch64-platform-support.patch
Url: http://www.openfabrics.org Url: http://www.openfabrics.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf BuildRequires: autoconf
@ -41,8 +38,11 @@ BuildRequires: automake
BuildRequires: libibverbs-devel BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel BuildRequires: librdmacm-devel
BuildRequires: libtool BuildRequires: libtool
ExcludeArch: armv7hl
%if "%name" == "dapl-debug" %if "%name" == "dapl"
Conflicts: dapl-debug
%else
Conflicts: dapl Conflicts: dapl
%endif %endif
@ -67,7 +67,7 @@ Requires(post): coreutils
%endif %endif
%description %description
Along with the OpenFabrics kernel drivers, libdat and libdapl provides Along with the OpenFabrics kernel drivers, libdat and libdapl provide
a userspace RDMA API that supports DAT 2.0 specification and IB a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with transport extensions for atomic operations and rdma write with
immediate data. immediate data.
@ -82,10 +82,10 @@ Provides: dapl2 = %version
Requires: %name Requires: %name
%description -n %lname %description -n %lname
Along with the OpenIB kernel drivers, libdat2 and libdapl provide a libdat and libdapl provide a userspace RDMA API that supports DAT 2.0
userspace RDMA API that supports DAT 2.0 specification. specification and IB transport extensions for atomic operations and
rdma write with immediate data.
%description -n %lname
This package contains the runtime libraries. This package contains the runtime libraries.
%if "%{name}" == "dapl-debug" %if "%{name}" == "dapl-debug"
The libraries have tracing enabled. The libraries have tracing enabled.
@ -96,56 +96,41 @@ Summary: Development files for the libdat and libdapl libraries
Group: Development/Libraries/Other Group: Development/Libraries/Other
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires: glibc-devel Requires: glibc-devel
%if "%{name}" == "dapl" %if "%name" == "dapl"
Conflicts: dapl-debug-devel Conflicts: dapl-debug-devel
%else %else
Provides: dapl-devel Conflicts: dapl-devel
%endif %endif
%description devel %description devel
Library links and header files for the libdat and libdapl libraries. Library links and header files for the libdat and libdapl libraries.
%if "%{name}" == "dapl-debug"
%if "%{name}" != "dapl-debug" The libraries have tracing enabled.
%package doc
Summary: Manual pages for libdapl
Group: Documentation/Man
Requires: %{name} = %{version}
Provides: dapl:%{_mandir}/man5/dat.conf.5.gz
Provides: dapl_man
%description doc
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data. This package provides the Documentation for the
library.
%endif %endif
%package utils %package utils
Summary: Test suites for the uDAPL library Summary: Test suite for the uDAPL library
Group: Productivity/Networking/System Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%if "%{name}" == "dapl" Recommends: dapl-doc = %{version}
%if "%name" == "dapl"
Conflicts: dapl-debug-utils Conflicts: dapl-debug-utils
%else
Conflicts: dapl-utils
%endif %endif
%description utils %description utils
Useful test suites to validate the uDAPL library APIs. Test suite to validate the uDAPL library APIs.
%prep %prep
%setup -q -n dapl-%{version} %setup -q -n dapl-%{version}
%patch1 %patch1
%patch4
%patch5 %patch5
%patch6 %patch6
%patch7 %patch7
%patch8 -p1 %patch12
%patch9
%patch10
%patch11 -p1
%build %build
mv man/dtest.1 man/dpltest.1
%if %suse_version == 1110 %if %suse_version == 1110
export ac_cv_suse11=yes export ac_cv_suse11=yes
%endif %endif
@ -156,7 +141,7 @@ autoreconf -fi
%configure --disable-static --with-pic --enable-debug %configure --disable-static --with-pic --enable-debug
%endif %endif
make %{?_smp_mflags} make %{?_smp_mflags} V=1
%check %check
export MALLOC_CHECK_=2 export MALLOC_CHECK_=2
@ -173,6 +158,22 @@ rm -rf %{buildroot}%{_mandir}/man{1,5}/*
mkdir -p %{buildroot}%_sysconfdir mkdir -p %{buildroot}%_sysconfdir
touch %{buildroot}%_sysconfdir/dat.conf touch %{buildroot}%_sysconfdir/dat.conf
#Rename tests to avoid conflicts.
# dtest clashes with dateutils package
mv %{buildroot}%{_bindir}/dapltest %{buildroot}%{_bindir}/dapl-test
mv %{buildroot}%{_bindir}/dtest %{buildroot}%{_bindir}/dapl-utest
mv %{buildroot}%{_bindir}/dtestcm %{buildroot}%{_bindir}/dapl-testcm
mv %{buildroot}%{_bindir}/dtestsrq %{buildroot}%{_bindir}/dapl-testsrx
mv %{buildroot}%{_bindir}/dtestx %{buildroot}%{_bindir}/dapl-testx
%if "%{name}" != "dapl-debug"
# Fix man pages accordingly
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dtest.1 > %{buildroot}%{_mandir}/man1/dapl-utest.1
rm %{buildroot}%{_mandir}/man1/dtest.1
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dapltest.1 > %{buildroot}%{_mandir}/man1/dapl-test.1
rm %{buildroot}%{_mandir}/man1/dapltest.1
%endif
%post -n %lname -p /sbin/ldconfig %post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig
@ -255,6 +256,10 @@ fi
%doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt %doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt
%_libdir/libdapl*.so.* %_libdir/libdapl*.so.*
%config %ghost %_sysconfdir/dat.conf %config %ghost %_sysconfdir/dat.conf
%if "%{name}" != "dapl-debug"
%_mandir/man5/dat.conf.5*
%endif
%doc
%files -n %lname %files -n %lname
%defattr(-,root,root) %defattr(-,root,root)
@ -265,15 +270,12 @@ fi
%_includedir/dat2/ %_includedir/dat2/
%_libdir/*.so %_libdir/*.so
%if "%{name}" != "dapl-debug"
%files doc
%defattr(-, root, root)
%_mandir/man1/*
%_mandir/man5/*
%endif
%files utils %files utils
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/* %{_bindir}/*
%if "%{name}" != "dapl-debug"
%_mandir/man1/dapl-test.1*
%_mandir/man1/dapl-utest.1*
%endif
%changelog %changelog

View File

@ -1,299 +0,0 @@
---
dapl/openib_scm/cm.c | 38 ++++++++++++++++++++++++--------------
dapl/openib_ucm/cm.c | 29 +++++++++++++++++++++--------
dapl/openib_ucm/device.c | 8 ++++----
test/dapltest/test/dapl_limit.c | 11 +++++++----
4 files changed, 56 insertions(+), 30 deletions(-)
Index: dapl/openib_scm/cm.c
===================================================================
--- dapl/openib_scm/cm.c.orig 2014-04-07 19:27:35.000000000 +0200
+++ dapl/openib_scm/cm.c 2014-06-27 14:10:00.894759920 +0200
@@ -518,6 +518,7 @@ static void dapli_socket_connected(dp_ib
int len, exp;
struct iovec iov[2];
struct dapl_ep *ep_ptr = cm_ptr->ep;
+ uint64_t tmp, tmp2;
if (err) {
dapl_log(DAPL_DBG_TYPE_CM_WARN,
@@ -582,12 +583,12 @@ static void dapli_socket_connected(dp_ib
ntohs(cm_ptr->msg.saddr.ib.lid),
ntohl(cm_ptr->msg.saddr.ib.qpn),
ntohs(cm_ptr->msg.p_size));
+ memcpy(&tmp, &cm_ptr->msg.saddr.ib.gid[0], sizeof(uint64_t));
+ memcpy(&tmp2, &cm_ptr->msg.saddr.ib.gid[8], sizeof(uint64_t));
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" CONN_PENDING: SRC GID subnet %016llx id %016llx\n",
- (unsigned long long)
- htonll(*(uint64_t*)&cm_ptr->msg.saddr.ib.gid[0]),
- (unsigned long long)
- htonll(*(uint64_t*)&cm_ptr->msg.saddr.ib.gid[8]));
+ (unsigned long long) htonll(tmp),
+ (unsigned long long) htonll(tmp2));
DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_REQ_TX);
return;
@@ -614,6 +615,9 @@ dapli_socket_connect(DAPL_EP * ep_ptr,
socklen_t sl;
DAPL_IA *ia_ptr = ep_ptr->header.owner_ia;
DAT_RETURN dat_ret = DAT_INSUFFICIENT_RESOURCES;
+#ifdef DAPL_DBG
+ union{ uint8_t *u8p; uint16_t *u16p; }pun;
+#endif
dapl_dbg_log(DAPL_DBG_TYPE_EP, " connect: r_qual %d p_size=%d\n",
r_qual, p_size);
@@ -649,8 +653,10 @@ dapli_socket_connect(DAPL_EP * ep_ptr,
#ifdef DAPL_DBG
/* DBG: Active PID [0], PASSIVE PID [2]*/
- *(uint16_t*)&cm_ptr->msg.resv[0] = htons((uint16_t)dapl_os_getpid());
- *(uint16_t*)&cm_ptr->msg.resv[2] = ((struct sockaddr_in *)&cm_ptr->addr)->sin_port;
+ pun.u8p = &cm_ptr->msg.resv[0];
+ *pun.u16p = htons((uint16_t)dapl_os_getpid());
+ pun.u8p += 2;
+ *pun.u16p = ((struct sockaddr_in *)&cm_ptr->addr)->sin_port;
#endif
((struct sockaddr_in *)&cm_ptr->addr)->sin_port = htons(r_qual + 1000);
ret = dapl_connect_socket(cm_ptr->socket, (struct sockaddr *)&cm_ptr->addr,
@@ -736,6 +742,8 @@ static void dapli_socket_connect_rtu(dp_
len = recv(cm_ptr->socket, (char *)&cm_ptr->msg, exp, 0);
if (len != exp || ntohs(cm_ptr->msg.ver) < DCM_VER_MIN) {
int err = dapl_socket_errno();
+ union{ uint8_t *ui8p; uint16_t *ui16p; }pun = { &cm_ptr->msg.resv[0] };
+ union{ uint8_t *ui8p; uint16_t *ui16p; }pun2 = { &cm_ptr->msg.resv[2] };
dapl_log(DAPL_DBG_TYPE_CM_WARN,
" CONN_REP_PENDING: sk %d ERR 0x%x, rcnt=%d, v=%d ->"
" %s PORT L-%x R-%x PID L-%x R-%x %d\n",
@@ -743,8 +751,8 @@ static void dapli_socket_connect_rtu(dp_
inet_ntoa(((struct sockaddr_in *)&cm_ptr->addr)->sin_addr),
ntohs(((struct sockaddr_in *)&cm_ptr->msg.daddr.so)->sin_port),
ntohs(((struct sockaddr_in *)&cm_ptr->addr)->sin_port),
- ntohs(*(uint16_t*)&cm_ptr->msg.resv[0]),
- ntohs(*(uint16_t*)&cm_ptr->msg.resv[2]),cm_ptr->retry);
+ ntohs(*pun.ui16p), ntohs(*pun2.ui16p),
+ cm_ptr->retry);
/* Retry; corner case where server tcp stack resets under load */
if (err == ECONNRESET && --cm_ptr->retry) {
@@ -1215,7 +1223,11 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr
int len, exp = sizeof(ib_cm_msg_t) - DCM_MAX_PDATA_SIZE;
DAT_RETURN ret = DAT_INTERNAL_ERROR;
socklen_t sl;
-
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &local.saddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &local.saddr.ib.gid[8] };
+#ifdef DAPL_DBG
+ union{ uint8_t *u8p; uint16_t *u16p; }pun3 = { &cm_ptr->msg.resv[2] };
+#endif
if (p_size > DCM_MAX_PDATA_SIZE) {
dapl_log(DAPL_DBG_TYPE_ERR,
" accept_usr: psize(%d) too large\n", p_size);
@@ -1304,7 +1316,7 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr
#ifdef DAPL_DBG
/* DBG: Active PID [0], PASSIVE PID [2] */
- *(uint16_t*)&cm_ptr->msg.resv[2] = htons((uint16_t)dapl_os_getpid());
+ *pun3.u16p = htons((uint16_t)dapl_os_getpid());
dapl_os_memcpy(local.resv, cm_ptr->msg.resv, 4);
#endif
cm_ptr->hca = ia_ptr->hca_ptr;
@@ -1346,10 +1358,8 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr
ntohl(local.saddr.ib.qpn), ntohs(local.p_size));
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" ACCEPT_USR: local GID subnet %016llx id %016llx\n",
- (unsigned long long)
- htonll(*(uint64_t*)&local.saddr.ib.gid[0]),
- (unsigned long long)
- htonll(*(uint64_t*)&local.saddr.ib.gid[8]));
+ (unsigned long long) htonll(*pun.u64p),
+ (unsigned long long) htonll(*pun2.u64p));
dapl_dbg_log(DAPL_DBG_TYPE_EP, " PASSIVE: accepted!\n");
Index: dapl/openib_ucm/cm.c
===================================================================
--- dapl/openib_ucm/cm.c.orig 2014-04-07 19:27:35.000000000 +0200
+++ dapl/openib_ucm/cm.c 2014-06-27 13:44:42.207746121 +0200
@@ -154,6 +154,7 @@ static void ucm_free_port(ib_hca_transpo
static void ucm_check_timers(dp_ib_cm_handle_t cm, int *timer)
{
DAPL_OS_TIMEVAL time;
+ union{ uint8_t *ui8p; DAT_UINT32 *duip; }pun = { &cm->msg.resv[0] };
dapl_os_lock(&cm->lock);
dapl_os_get_time(&time);
@@ -716,12 +717,15 @@ void dapls_cm_release(dp_ib_cm_handle_t
dp_ib_cm_handle_t dapls_ib_cm_create(DAPL_EP *ep)
{
dp_ib_cm_handle_t cm;
+ union{ uint8_t *ui8p; DAT_UINT32 *duip; }pun;
/* Allocate CM, init lock, and initialize */
if ((cm = dapl_os_alloc(sizeof(*cm))) == NULL)
return NULL;
(void)dapl_os_memzero(cm, sizeof(*cm));
+ pun.ui8p = &cm->msg.resv[0];
+
if (dapl_os_lock_init(&cm->lock))
goto bail;
@@ -903,6 +907,8 @@ DAT_RETURN dapli_cm_disconnect(dp_ib_cm_
{
int finalize = 1;
int wakeup = 0;
+ union{ uint8_t *ui8p; DAT_UINT32 *duip; }pun = { &cm->msg.resv[0] };
+
dapl_os_lock(&cm->lock);
switch (cm->state) {
@@ -1062,6 +1068,11 @@ bail:
*/
static void ucm_connect_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
{
+#ifdef DAT_EXTENSIONS
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &cm->msg.daddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &cm->msg.daddr.ib.gid[8] };
+#endif
+
DAPL_EP *ep = cm->ep;
ib_cm_events_t event = IB_CME_CONNECTED;
@@ -1246,8 +1257,7 @@ ud_bail:
&xevent.remote_ah.ia_addr)->ib.lid),
ntohl(((union dcm_addr*)
&xevent.remote_ah.ia_addr)->ib.qpn),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[0]),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[8]));
+ ntohll(*pun.u64p), ntohll(*pun2.u64p));
if (event == IB_CME_CONNECTED)
event = DAT_IB_UD_CONNECTION_EVENT_ESTABLISHED;
@@ -1375,6 +1385,10 @@ bail:
*/
static void ucm_accept_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
{
+#ifdef DAT_EXTENSIONS
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &cm->msg.daddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &cm->msg.daddr.ib.gid[8] };
+#endif
dapl_os_lock(&cm->lock);
if ((ntohs(msg->op) != DCM_RTU) || (cm->state != DCM_RTU_PENDING)) {
dapl_log(DAPL_DBG_TYPE_WARN,
@@ -1435,8 +1449,7 @@ static void ucm_accept_rtu(dp_ib_cm_hand
&xevent.remote_ah.ia_addr)->ib.lid),
ntohl(((union dcm_addr*)
&xevent.remote_ah.ia_addr)->ib.qpn),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[0]),
- ntohll(*(uint64_t*)&cm->msg.daddr.ib.gid[8]));
+ ntohll(*pun.u64p), ntohll(*pun2.u64p));
dapls_evd_post_connection_event_ext(
(DAPL_EVD *)cm->ep->param.connect_evd_handle,
@@ -1552,6 +1565,8 @@ dapli_accept_usr(DAPL_EP *ep, DAPL_CR *c
{
DAPL_IA *ia = ep->header.owner_ia;
dp_ib_cm_handle_t cm = cr->ib_cm_handle;
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &cm->msg.daddr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &cm->msg.daddr.ib.gid[8] };
if (p_size > DCM_MAX_PDATA_SIZE)
return DAT_LENGTH_ERROR;
@@ -1585,10 +1600,8 @@ dapli_accept_usr(DAPL_EP *ep, DAPL_CR *c
dapl_dbg_log(DAPL_DBG_TYPE_CM,
" ACCEPT_USR: remote GID subnet %016llx id %016llx\n",
- (unsigned long long)
- htonll(*(uint64_t*)&cm->msg.daddr.ib.gid[0]),
- (unsigned long long)
- htonll(*(uint64_t*)&cm->msg.daddr.ib.gid[8]));
+ (unsigned long long) htonll(*pun.u64p),
+ (unsigned long long) htonll(*pun2.u64p));
#ifdef DAT_EXTENSIONS
if (cm->msg.daddr.ib.qp_type == IBV_QPT_UD &&
Index: dapl/openib_ucm/device.c
===================================================================
--- dapl/openib_ucm/device.c.orig 2014-04-07 19:27:35.000000000 +0200
+++ dapl/openib_ucm/device.c 2014-06-27 13:44:42.207746121 +0200
@@ -197,6 +197,8 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_N
struct ibv_port_attr port_attr;
int i;
DAT_RETURN dat_status;
+ union{ uint8_t *u8p; uint64_t *u64p; }pun = { &hca_ptr->ib_trans.addr.ib.gid[0] };
+ union{ uint8_t *u8p; uint64_t *u64p; }pun2 = { &hca_ptr->ib_trans.addr.ib.gid[8] };
/* Get list of all IB devices, find match, open */
dev_list = ibv_get_device_list(NULL);
@@ -337,10 +339,8 @@ found:
" ID 0x" F64x "\n",
ntohl(hca_ptr->ib_trans.addr.ib.qpn),
ntohs(hca_ptr->ib_trans.addr.ib.lid),
- (unsigned long long)
- ntohll(*(uint64_t*)&hca_ptr->ib_trans.addr.ib.gid[0]),
- (unsigned long long)
- ntohll(*(uint64_t*)&hca_ptr->ib_trans.addr.ib.gid[8]));
+ (unsigned long long) ntohll(*pun.u64p),
+ (unsigned long long) ntohll(*pun2.u64p));
/* save LID, GID, QPN, PORT address information, for ia_queries */
/* Set AF_INET6 to insure callee address storage of 28 bytes */
Index: test/dapltest/test/dapl_limit.c
===================================================================
--- test/dapltest/test/dapl_limit.c.orig 2014-05-05 18:11:33.000000000 +0200
+++ test/dapltest/test/dapl_limit.c 2014-06-27 13:44:42.208746108 +0200
@@ -162,6 +162,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
unsigned int count = START_COUNT;
OneOpen *hdlptr = (OneOpen *)
DT_Mdep_Malloc(count * sizeof(*hdlptr));
+ union { OneOpen **oop; DAT_HANDLE **dhpp; }pun = { &hdlptr };
/* IA Exhaustion test loop */
if (hdlptr) {
@@ -175,7 +176,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
DT_Mdep_Schedule();
if (w == count
&& !more_handles(phead,
- (DAT_HANDLE **) & hdlptr,
+ pun.dhpp,
&count, sizeof(*hdlptr))) {
DT_Tdep_PT_Printf(phead,
"%s: IAs opened: %d\n",
@@ -947,6 +948,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
unsigned int count = START_COUNT;
Bpool **hdlptr = (Bpool **)
DT_Mdep_Malloc(count * sizeof(*hdlptr));
+ union { Bpool ***bpppp; DAT_HANDLE **dhpp; }pun = { &hdlptr };
/* LMR Exhaustion test loop */
if (hdlptr) {
@@ -961,7 +963,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
DT_Mdep_Schedule();
if (w == count
&& !more_handles(phead,
- (DAT_HANDLE **) & hdlptr,
+ pun.dhpp,
&count, sizeof(*hdlptr))) {
DT_Tdep_PT_Printf(phead,
"%s: no memory for LMR handles\n",
@@ -1035,6 +1037,8 @@ limit_test(DT_Tdep_Print_Head * phead, L
unsigned int count = START_COUNT;
DAT_LMR_TRIPLET *hdlptr = (DAT_LMR_TRIPLET *)
DT_Mdep_Malloc(count * cmd->width * sizeof(*hdlptr));
+ union { DAT_LMR_TRIPLET **dltp; DAT_HANDLE **dhpp; }pun =
+ { &hdlptr };
/* Recv-Post Exhaustion test loop */
if (hdlptr) {
@@ -1049,8 +1053,7 @@ limit_test(DT_Tdep_Print_Head * phead, L
for (w = 0; w < cmd->maximum && !done; w++) {
DT_Mdep_Schedule();
if (w == count
- && !more_handles(phead,
- (DAT_HANDLE **) & hdlptr,
+ && !more_handles(phead, pun.dhpp,
&count,
cmd->width *
sizeof(*hdlptr))) {

View File

@ -1,40 +0,0 @@
---
Makefile.am | 2 +-
test/dtest/Makefile.am | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
Index: Makefile.am
===================================================================
--- Makefile.am.orig 2014-04-07 19:27:35.000000000 +0200
+++ Makefile.am 2014-08-08 17:30:04.813777327 +0200
@@ -503,7 +503,7 @@ libdatinclude_HEADERS = dat/include/dat2
dat/include/dat2/udat_vendor_specific.h \
dat/include/dat2/dat_ib_extensions.h
-man_MANS = man/dtest.1 man/dapltest.1 man/dat.conf.5
+man_MANS = man/dpltest.1 man/dapltest.1 man/dat.conf.5
EXTRA_DIST = dat/common/dat_dictionary.h \
dat/common/dat_dr.h \
Index: test/dtest/Makefile.am
===================================================================
--- test/dtest/Makefile.am.orig 2014-04-07 19:27:35.000000000 +0200
+++ test/dtest/Makefile.am 2014-08-08 18:15:49.682461746 +0200
@@ -1,6 +1,7 @@
-bin_PROGRAMS = dtest dtestcm
-dtest_SOURCES = dtest.c
-dtest_CFLAGS = -g -Wall -D_GNU_SOURCE
+bin_PROGRAMS = dpltest dtestcm
+dpltest_SOURCES = dtest.c
+dpltest_CFLAGS = -g -Wall -D_GNU_SOURCE
+dpltest_LDADD = $(top_builddir)/dat/udat/libdat2.la
dtestcm_SOURCES = dtestcm.c
dtestcm_CFLAGS = -g -Wall -D_GNU_SOURCE
@@ -13,6 +14,5 @@ dtestx_LDADD = $(top_builddir)/dat/udat/
endif
INCLUDES = -I $(srcdir)/../../dat/include
-dtest_LDADD = $(top_builddir)/dat/udat/libdat2.la
dtestcm_LDADD = $(top_builddir)/dat/udat/libdat2.la

View File

@ -2,7 +2,11 @@
from Config import * from Config import *
addFilter(".* shared-lib-calls-exit") addFilter(".* shared-lib-calls-exit")
#dapl is unique: differently named packages contain the same #dapl is unique: differently named packages contain the same
#shared library but one compiled with tracing enabled. #shared library but one compiled with tracing enabled.
addFilter(".* shlib-policy-name-error") addFilter(".* shlib-policy-name-error")
# As this is a plugin for libibverbs, there is no reason
# to name it according to policy
addFilter(".* shlib-policy-missing-suffix")

53
dapl-s390.patch Normal file
View File

@ -0,0 +1,53 @@
---
dapl/udapl/linux/dapl_osd.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: dapl/udapl/linux/dapl_osd.h
===================================================================
--- dapl/udapl/linux/dapl_osd.h.orig 2016-03-10 14:56:57.000000000 +0100
+++ dapl/udapl/linux/dapl_osd.h 2016-03-10 18:28:46.909424533 +0100
@@ -51,7 +51,7 @@
#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && \
!defined(__PPC__) && !defined(__PPC64__) && !defined(__s390x__) && \
- !defined(__aarch64__)
+ !defined(__aarch64__) && !defined(__s390__)
#error UNDEFINED ARCH
#endif
@@ -160,7 +160,7 @@ int dapl_os_get_env_val (
/* atomic functions */
-#ifdef __s390x__
+#if defined(__s390x__) || defined(__s390__)
#define DAPL_CS_ADD(ptr, op_val) ({ \
int old_val, new_val; \
__asm__ __volatile__( \
@@ -199,7 +199,7 @@ dapl_os_atomic_inc (
#else
IA64_FETCHADD(old_value,v,1,4);
#endif
-#elif defined(__s390x__)
+#elif defined(__s390x__) || defined(__s390__)
DAT_COUNT tmp;
DAT_COUNT delta = 1;
@@ -245,7 +245,7 @@ dapl_os_atomic_dec (
#else
IA64_FETCHADD(old_value,v,-1,4);
#endif
-#elif defined(__s390x__)
+#elif defined(__s390x__) || defined(__s390__)
DAT_COUNT tmp;
DAT_COUNT delta = -1;
@@ -307,7 +307,7 @@ dapl_os_atomic_assign (
#else
current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);
#endif /* __ia64__ */
-#elif defined(__s390x__)
+#elif defined(__s390x__) || defined(__s390__)
__asm__ __volatile__(
" cs %0,%2,%1\n"
: "+d" (match_value), "=Q" (*v)

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Tue May 30 08:50:05 UTC 2017 - nmoreychaisemartin@suse.com
- Add conflicts between dapl and dapl-debug packages for devel
and utils
- Rename dapl-utils tests to avoid conflicts with other packages (dateutils)
* dapltest => dapl-test
* dtest => dapl-utest
* dtestcm => dapl-testcm
* dtestsrq => dapl-testsrq
* dtestx => dapl-testx
- Remove librdmacm and libibverbs version dependencies
-------------------------------------------------------------------
Thu May 25 07:19:35 UTC 2017 - jengelh@inai.de
- Restore description of libdapl. Fix some grammar errors.
-------------------------------------------------------------------
Wed May 17 08:20:55 UTC 2017 - nmoreychaisemartin@suse.com
- Disable dapl on armv7hl
-------------------------------------------------------------------
Wed Mar 29 07:53:21 CEST 2017 - pth@suse.de
- Make dependencies on libs now coming from rdma-core versioned.
- Remove unused patch dapl-rename_dtest.patch
-------------------------------------------------------------------
Thu Mar 10 15:19:58 CET 2016 - pth@suse.de
- Update to 2.1.8 git version (bsc#970668).
List of changes is too long so please see the included ChangeLog.
- Patches removed because the fixes are included upstream:
dapl-fix_type_punning.patch
dapl-autotools.patch
dapl-add-s390x-platform-support.patch
dapl-add-aarch64-platform-support.patch
dapl-add-s390x-platform-support.patch
- Add dapl-s390.patch so that the defines are also valid for s390
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Sep 10 08:04:16 UTC 2015 - dmueller@suse.com Thu Sep 10 08:04:16 UTC 2015 - dmueller@suse.com

100
dapl.spec
View File

@ -1,7 +1,7 @@
# #
# spec file for package dapl # spec file for package dapl
# #
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -16,24 +16,21 @@
# #
%define git_version -git6316f83
Name: dapl Name: dapl
Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs
License: BSD-3-Clause or GPL-2.0+ or CPL-1.0 License: BSD-3-Clause or GPL-2.0+ or CPL-1.0
Group: Productivity/Networking/System Group: Productivity/Networking/System
Version: 2.0.42 Version: 2.1.8
Release: 0 Release: 0
Source0: https://www.openfabrics.org/downloads/dapl/dapl-%{version}.tar.gz Source0: dapl-%{version}%{git_version}.tar.xz
Source1: baselibs.conf Source1: dapl-rpmlintrc
Source2: dapl-rpmlintrc Source2: baselibs.conf
Patch1: dapl-2.0.30-dat-ia-open-hang.patch Patch1: dapl-2.0.30-dat-ia-open-hang.patch
Patch4: dapl-fix_type_punning.patch
Patch5: dapl-define_NULL.patch Patch5: dapl-define_NULL.patch
Patch6: dapl-man_page_fixes.patch Patch6: dapl-man_page_fixes.patch
Patch7: dapl-fsf_address.patch Patch7: dapl-fsf_address.patch
Patch8: dapl-add-s390x-platform-support.patch Patch12: dapl-s390.patch
Patch9: dapl-autotools.patch
Patch10: dapl-rename_dtest.patch
Patch11: dapl-add-aarch64-platform-support.patch
Url: http://www.openfabrics.org Url: http://www.openfabrics.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf BuildRequires: autoconf
@ -41,8 +38,11 @@ BuildRequires: automake
BuildRequires: libibverbs-devel BuildRequires: libibverbs-devel
BuildRequires: librdmacm-devel BuildRequires: librdmacm-devel
BuildRequires: libtool BuildRequires: libtool
ExcludeArch: armv7hl
%if "%name" == "dapl-debug" %if "%name" == "dapl"
Conflicts: dapl-debug
%else
Conflicts: dapl Conflicts: dapl
%endif %endif
@ -67,7 +67,7 @@ Requires(post): coreutils
%endif %endif
%description %description
Along with the OpenFabrics kernel drivers, libdat and libdapl provides Along with the OpenFabrics kernel drivers, libdat and libdapl provide
a userspace RDMA API that supports DAT 2.0 specification and IB a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with transport extensions for atomic operations and rdma write with
immediate data. immediate data.
@ -82,10 +82,10 @@ Provides: dapl2 = %version
Requires: %name Requires: %name
%description -n %lname %description -n %lname
Along with the OpenIB kernel drivers, libdat2 and libdapl provide a libdat and libdapl provide a userspace RDMA API that supports DAT 2.0
userspace RDMA API that supports DAT 2.0 specification. specification and IB transport extensions for atomic operations and
rdma write with immediate data.
%description -n %lname
This package contains the runtime libraries. This package contains the runtime libraries.
%if "%{name}" == "dapl-debug" %if "%{name}" == "dapl-debug"
The libraries have tracing enabled. The libraries have tracing enabled.
@ -96,56 +96,41 @@ Summary: Development files for the libdat and libdapl libraries
Group: Development/Libraries/Other Group: Development/Libraries/Other
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires: glibc-devel Requires: glibc-devel
%if "%{name}" == "dapl" %if "%name" == "dapl"
Conflicts: dapl-debug-devel Conflicts: dapl-debug-devel
%else %else
Provides: dapl-devel Conflicts: dapl-devel
%endif %endif
%description devel %description devel
Library links and header files for the libdat and libdapl libraries. Library links and header files for the libdat and libdapl libraries.
%if "%{name}" == "dapl-debug"
%if "%{name}" != "dapl-debug" The libraries have tracing enabled.
%package doc
Summary: Manual pages for libdapl
Group: Documentation/Man
Requires: %{name} = %{version}
Provides: dapl:%{_mandir}/man5/dat.conf.5.gz
Provides: dapl_man
%description doc
Along with the OpenFabrics kernel drivers, libdat and libdapl provides
a userspace RDMA API that supports DAT 2.0 specification and IB
transport extensions for atomic operations and rdma write with
immediate data. This package provides the Documentation for the
library.
%endif %endif
%package utils %package utils
Summary: Test suites for the uDAPL library Summary: Test suite for the uDAPL library
Group: Productivity/Networking/System Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%if "%{name}" == "dapl" Recommends: dapl-doc = %{version}
%if "%name" == "dapl"
Conflicts: dapl-debug-utils Conflicts: dapl-debug-utils
%else
Conflicts: dapl-utils
%endif %endif
%description utils %description utils
Useful test suites to validate the uDAPL library APIs. Test suite to validate the uDAPL library APIs.
%prep %prep
%setup -q -n dapl-%{version} %setup -q -n dapl-%{version}
%patch1 %patch1
%patch4
%patch5 %patch5
%patch6 %patch6
%patch7 %patch7
%patch8 -p1 %patch12
%patch9
%patch10
%patch11 -p1
%build %build
mv man/dtest.1 man/dpltest.1
%if %suse_version == 1110 %if %suse_version == 1110
export ac_cv_suse11=yes export ac_cv_suse11=yes
%endif %endif
@ -156,7 +141,7 @@ autoreconf -fi
%configure --disable-static --with-pic --enable-debug %configure --disable-static --with-pic --enable-debug
%endif %endif
make %{?_smp_mflags} make %{?_smp_mflags} V=1
%check %check
export MALLOC_CHECK_=2 export MALLOC_CHECK_=2
@ -173,6 +158,22 @@ rm -rf %{buildroot}%{_mandir}/man{1,5}/*
mkdir -p %{buildroot}%_sysconfdir mkdir -p %{buildroot}%_sysconfdir
touch %{buildroot}%_sysconfdir/dat.conf touch %{buildroot}%_sysconfdir/dat.conf
#Rename tests to avoid conflicts.
# dtest clashes with dateutils package
mv %{buildroot}%{_bindir}/dapltest %{buildroot}%{_bindir}/dapl-test
mv %{buildroot}%{_bindir}/dtest %{buildroot}%{_bindir}/dapl-utest
mv %{buildroot}%{_bindir}/dtestcm %{buildroot}%{_bindir}/dapl-testcm
mv %{buildroot}%{_bindir}/dtestsrq %{buildroot}%{_bindir}/dapl-testsrx
mv %{buildroot}%{_bindir}/dtestx %{buildroot}%{_bindir}/dapl-testx
%if "%{name}" != "dapl-debug"
# Fix man pages accordingly
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dtest.1 > %{buildroot}%{_mandir}/man1/dapl-utest.1
rm %{buildroot}%{_mandir}/man1/dtest.1
sed -e s/dapltest/dapl-test/g -e s/dtest/dapl-utest/g %{buildroot}%{_mandir}/man1/dapltest.1 > %{buildroot}%{_mandir}/man1/dapl-test.1
rm %{buildroot}%{_mandir}/man1/dapltest.1
%endif
%post -n %lname -p /sbin/ldconfig %post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig
@ -255,6 +256,10 @@ fi
%doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt %doc AUTHORS README COPYING ChangeLog LICENSE.txt LICENSE2.txt LICENSE3.txt
%_libdir/libdapl*.so.* %_libdir/libdapl*.so.*
%config %ghost %_sysconfdir/dat.conf %config %ghost %_sysconfdir/dat.conf
%if "%{name}" != "dapl-debug"
%_mandir/man5/dat.conf.5*
%endif
%doc
%files -n %lname %files -n %lname
%defattr(-,root,root) %defattr(-,root,root)
@ -265,15 +270,12 @@ fi
%_includedir/dat2/ %_includedir/dat2/
%_libdir/*.so %_libdir/*.so
%if "%{name}" != "dapl-debug"
%files doc
%defattr(-, root, root)
%_mandir/man1/*
%_mandir/man5/*
%endif
%files utils %files utils
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/* %{_bindir}/*
%if "%{name}" != "dapl-debug"
%_mandir/man1/dapl-test.1*
%_mandir/man1/dapl-utest.1*
%endif
%changelog %changelog