[Pkg-openmpi-commits] r346 - in /openmpi/trunk/debian: changelog control patches/basic-arm64-support.diff patches/series rules

sylvestre at users.alioth.debian.org sylvestre at users.alioth.debian.org
Wed Dec 18 11:54:34 UTC 2013


Author: sylvestre
Date: Wed Dec 18 11:54:34 2013
New Revision: 346

URL: http://svn.debian.org/wsvn/pkg-openmpi/?sc=1&rev=346
Log:
* Bring over Ubuntu changes from openmpi1.6:
  - Call dh_shlibdeps with -lfoo to not break fakeroot.
  - Add basic AArch64 support (Leif Lindholm).
  - Use and install AArch64 header files, not ARM header files.
* Remove unnecessary fakeroot from dh_shlibdeps call.

Added:
    openmpi/trunk/debian/patches/basic-arm64-support.diff
Modified:
    openmpi/trunk/debian/changelog
    openmpi/trunk/debian/control
    openmpi/trunk/debian/patches/series
    openmpi/trunk/debian/rules

Modified: openmpi/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/changelog?rev=346&op=diff
==============================================================================
--- openmpi/trunk/debian/changelog	(original)
+++ openmpi/trunk/debian/changelog	Wed Dec 18 11:54:34 2013
@@ -1,3 +1,16 @@
+openmpi (1.6.5-7) unstable; urgency=low
+
+  [ Logan Rosen ]
+  * Bring over Ubuntu changes from openmpi1.6:
+    - Call dh_shlibdeps with -lfoo to not break fakeroot.
+    - Add basic AArch64 support (Leif Lindholm).
+    - Use and install AArch64 header files, not ARM header files.
+
+  [ Adam Conrad ]
+  * Remove unnecessary fakeroot from dh_shlibdeps call.
+
+ -- Sylvestre Ledru <sylvestre at debian.org>  Wed, 18 Dec 2013 12:10:47 -0500
+
 openmpi (1.6.5-6) unstable; urgency=low
 
   * Add the support of mips64 & mips64el. (Closes: #727141)

Modified: openmpi/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/control?rev=346&op=diff
==============================================================================
--- openmpi/trunk/debian/control	(original)
+++ openmpi/trunk/debian/control	Wed Dec 18 11:54:34 2013
@@ -16,7 +16,7 @@
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/
 
 Package: openmpi-bin
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (= ${source:Version})
 Conflicts: openmpi-bin
 Suggests: gfortran, openmpi-checkpoint [amd64 armel armhf i386 powerpc]
@@ -45,7 +45,7 @@
 
 Package: libopenmpi-dev
 Section: libdevel
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}, libopenmpi1.6 (= ${binary:Version}), openmpi-common (= ${source:Version}), libibverbs-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhwloc-dev
 Conflicts: openmpi-dev, libopenmpi-dev, openmpi-bin (<= 1.2.4-0)
 Description: high performance message passing library -- header files
@@ -60,7 +60,7 @@
 
 Package: libopenmpi1.6
 Section: libs
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Conflicts: openmpi-libs0, libopenmpi1, libopenmpi1.3, libopenmpi2
 Replaces: openmpi-checkpoint (<< 1.6.5-1)
@@ -106,7 +106,7 @@
 
 Package: libopenmpi1.6-dbg
 Section: debug
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${misc:Depends}, openmpi-bin (= ${binary:Version}), libopenmpi1.6 (= ${binary:Version})
 Conflicts: openmpi-dbg, libopenmpi-dbg
 Description: high performance message passing library -- debug library

Added: openmpi/trunk/debian/patches/basic-arm64-support.diff
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/patches/basic-arm64-support.diff?rev=346&op=file
==============================================================================
--- openmpi/trunk/debian/patches/basic-arm64-support.diff	(added)
+++ openmpi/trunk/debian/patches/basic-arm64-support.diff	Wed Dec 18 11:54:34 2013
@@ -0,0 +1,313 @@
+From 2070e8d9dd894da7d5f188c752212d2b2ac6c3c4 Mon Sep 17 00:00:00 2001
+From: Leif Lindholm <leif.lindholm at linaro.org>
+Date: Wed, 16 Oct 2013 14:16:00 +0100
+Subject: [PATCH] Basic arm64 support.
+
+---
+ opal/config/opal_config_asm.m4          |    6 ++
+ opal/include/opal/sys/Makefile.am       |    1 +
+ opal/include/opal/sys/arm64/Makefile.am |   24 +++++
+ opal/include/opal/sys/arm64/atomic.h    |  169 +++++++++++++++++++++++++++++++
+ opal/include/opal/sys/arm64/timer.h     |   33 ++++++
+ opal/include/opal/sys/atomic.h          |    2 +
+ 6 files changed, 235 insertions(+)
+ create mode 100644 opal/include/opal/sys/arm64/Makefile.am
+ create mode 100644 opal/include/opal/sys/arm64/atomic.h
+ create mode 100644 opal/include/opal/sys/arm64/timer.h
+
+Index: b/opal/config/opal_config_asm.m4
+===================================================================
+--- a/opal/config/opal_config_asm.m4
++++ b/opal/config/opal_config_asm.m4
+@@ -900,6 +900,12 @@
+             OMPI_GCC_INLINE_ASSIGN='"bis [$]31,[$]31,%0" : "=&r"(ret)'
+             ;;
+ 
++        aarch64*)
++            ompi_cv_asm_arch="ARM64"
++            OPAL_ASM_SUPPORT_64BIT=1
++            OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
++            ;;
++
+         armv7*|arm-*-linux-gnueabihf)
+             ompi_cv_asm_arch="ARM"
+             OPAL_ASM_SUPPORT_64BIT=1
+Index: b/opal/include/opal/sys/Makefile.am
+===================================================================
+--- a/opal/include/opal/sys/Makefile.am
++++ b/opal/include/opal/sys/Makefile.am
+@@ -28,6 +28,7 @@
+ include opal/sys/alpha/Makefile.am
+ include opal/sys/amd64/Makefile.am
+ include opal/sys/arm/Makefile.am
++include opal/sys/arm64/Makefile.am
+ include opal/sys/ia32/Makefile.am
+ include opal/sys/ia64/Makefile.am
+ include opal/sys/mips/Makefile.am
+Index: b/opal/include/opal/sys/arm64/Makefile.am
+===================================================================
+--- /dev/null
++++ b/opal/include/opal/sys/arm64/Makefile.am
+@@ -0,0 +1,24 @@
++#
++# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
++#                         University Research and Technology
++#                         Corporation.  All rights reserved.
++# Copyright (c) 2004-2008 The University of Tennessee and The University
++#                         of Tennessee Research Foundation.  All rights
++#                         reserved.
++# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
++#                         University of Stuttgart.  All rights reserved.
++# Copyright (c) 2004-2005 The Regents of the University of California.
++#                         All rights reserved.
++# $COPYRIGHT$
++# 
++# Additional copyrights may follow
++# 
++# $HEADER$
++#
++
++# This makefile.am does not stand on its own - it is included from opal/include/Makefile.am
++
++headers += \
++       opal/sys/arm64/atomic.h \
++       opal/sys/arm64/timer.h
++
+Index: b/opal/include/opal/sys/arm64/atomic.h
+===================================================================
+--- /dev/null
++++ b/opal/include/opal/sys/arm64/atomic.h
+@@ -0,0 +1,169 @@
++/*
++ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
++ *                         University Research and Technology
++ *                         Corporation.  All rights reserved.
++ * Copyright (c) 2004-2005 The University of Tennessee and The University
++ *                         of Tennessee Research Foundation.  All rights
++ *                         reserved.
++ * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
++ *                         University of Stuttgart.  All rights reserved.
++ * Copyright (c) 2004-2005 The Regents of the University of California.
++ *                         All rights reserved.
++ * Copyright (c) 2010      IBM Corporation.  All rights reserved.
++ * Copyright (c) 2010      ARM ltd.  All rights reserved.
++ * Copyright (c) 2013      Linaro ltd.  All rights reserved.
++ * $COPYRIGHT$
++ *
++ * Additional copyrights may follow
++ *
++ * $HEADER$
++ */
++
++#ifndef OMPI_SYS_ARCH_ATOMIC_H
++#define OMPI_SYS_ARCH_ATOMIC_H 1
++
++#if OPAL_WANT_SMP_LOCKS
++
++#define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
++
++#define MB()  __asm__ __volatile__ ("dmb ish" : : : "memory")
++#define RMB() __asm__ __volatile__ ("dmb ish" : : : "memory")
++#define WMB() __asm__ __volatile__ ("dmb ish" : : : "memory")
++
++#else
++
++#define MB()
++#define RMB()
++#define WMB()
++
++#endif /* OPAL_WANT_SMP_LOCKS */
++
++
++
++/**********************************************************************
++ *
++ * Memory Barriers
++ *
++ *********************************************************************/
++
++#if (OPAL_HAVE_ATOMIC_MEM_BARRIER == 1)
++
++static inline
++void opal_atomic_mb(void)
++{
++    MB();
++}
++
++
++static inline
++void opal_atomic_rmb(void)
++{
++    RMB();
++}
++
++
++static inline
++void opal_atomic_wmb(void)
++{
++    WMB();
++}
++
++#endif
++
++
++/**********************************************************************
++ *
++ * Atomic math operations
++ *
++ *********************************************************************/
++
++#define OPAL_HAVE_ATOMIC_CMPSET_32 1
++static inline int opal_atomic_cmpset_32(volatile int32_t *addr,
++                                        int32_t oldval, int32_t newval)
++{
++  int32_t ret;
++  int32_t tmp;
++
++   __asm__ __volatile__ (
++                         "1:  ldxr   %w0, [%2]        \n"
++                         "    cmp    %w0, %w3          \n"
++                         "    bne    2f              \n"
++                         "    stxr   %w1, %w4, [%2]    \n"
++                         "    cmp    %w1, #0          \n"
++                         "    bne    1b              \n"
++                         "2:                          \n"
++
++                         : "=&r" (ret), "=&r" (tmp)
++                         : "r" (addr), "r" (oldval), "r" (newval)
++                         : "cc", "memory");
++
++   return (ret == oldval);
++}
++
++static inline int opal_atomic_cmpset_acq_32(volatile int32_t *addr,
++                                            int32_t oldval, int32_t newval)
++{
++    int rc;
++
++    rc = opal_atomic_cmpset_32(addr, oldval, newval);
++    opal_atomic_rmb();
++
++    return rc;
++}
++
++
++static inline int opal_atomic_cmpset_rel_32(volatile int32_t *addr,
++                                            int32_t oldval, int32_t newval)
++{
++    opal_atomic_wmb();
++    return opal_atomic_cmpset_32(addr, oldval, newval);
++}
++
++#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++static inline int opal_atomic_cmpset_64(volatile int64_t *addr,
++                                        int64_t oldval, int64_t newval)
++{
++  int64_t ret;
++  int32_t tmp;
++
++   __asm__ __volatile__ (
++                         "1:  ldxr   %0, [%2]        \n"
++                         "    cmp    %0, %3          \n"
++                         "    bne    2f              \n"
++                         "    stxr   %w1, %4, [%2]   \n"
++                         "    cmp    %w1, #0         \n"
++                         "    bne    1b              \n"
++                         "2:                         \n"
++
++                         : "=&r" (ret), "=&r" (tmp)
++                         : "r" (addr), "r" (oldval), "r" (newval)
++                         : "cc", "memory");
++
++   return (ret == oldval);
++}
++
++/* these two functions aren't inlined in the non-gcc case because then
++   there would be two function calls (since neither cmpset_64 nor
++   atomic_?mb can be inlined).  Instead, we "inline" them by hand in
++   the assembly, meaning there is one function call overhead instead
++   of two */
++static inline int opal_atomic_cmpset_acq_64(volatile int64_t *addr,
++                                            int64_t oldval, int64_t newval)
++{
++    int rc;
++
++    rc = opal_atomic_cmpset_64(addr, oldval, newval);
++    opal_atomic_rmb();
++
++    return rc;
++}
++
++
++static inline int opal_atomic_cmpset_rel_64(volatile int64_t *addr,
++                                            int64_t oldval, int64_t newval)
++{
++    opal_atomic_wmb();
++    return opal_atomic_cmpset_64(addr, oldval, newval);
++}
++
++#endif /* ! OMPI_SYS_ARCH_ATOMIC_H */
+Index: b/opal/include/opal/sys/arm64/timer.h
+===================================================================
+--- /dev/null
++++ b/opal/include/opal/sys/arm64/timer.h
+@@ -0,0 +1,33 @@
++/*
++ * Copyright (c) 2008      The University of Tennessee and The University
++ *                         of Tennessee Research Foundation.  All rights
++ *                         reserved.
++ * $COPYRIGHT$
++ * 
++ * Additional copyrights may follow
++ * 
++ * $HEADER$
++ */
++
++#ifndef OMPI_SYS_ARCH_TIMER_H
++#define OMPI_SYS_ARCH_TIMER_H 1
++
++#include <sys/times.h>
++
++typedef uint64_t opal_timer_t;
++
++static inline opal_timer_t
++opal_sys_timer_get_cycles(void)
++{
++    opal_timer_t ret;
++    struct tms accurate_clock;
++
++    times(&accurate_clock);
++    ret = accurate_clock.tms_utime + accurate_clock.tms_stime;
++
++    return ret;
++}
++
++#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 1
++
++#endif /* ! OMPI_SYS_ARCH_TIMER_H */
+Index: b/opal/include/opal/sys/atomic.h
+===================================================================
+--- a/opal/include/opal/sys/atomic.h
++++ b/opal/include/opal/sys/atomic.h
+@@ -148,6 +148,8 @@
+ #include "opal/sys/amd64/atomic.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_ARM
+ #include "opal/sys/arm/atomic.h"
++#elif OPAL_ASSEMBLY_ARCH == OMPI_ARM64
++#include "opal/sys/arm64/atomic.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_IA32
+ #include "opal/sys/ia32/atomic.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_IA64
+Index: b/opal/include/opal/sys/timer.h
+===================================================================
+--- a/opal/include/opal/sys/timer.h
++++ b/opal/include/opal/sys/timer.h
+@@ -81,6 +81,8 @@
+ #include "opal/sys/amd64/timer.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_ARM
+ #include "opal/sys/arm/timer.h"
++#elif OPAL_ASSEMBLY_ARCH == OMPI_ARM64
++#include "opal/sys/arm64/timer.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_IA32
+ #include "opal/sys/ia32/timer.h"
+ #elif OPAL_ASSEMBLY_ARCH == OMPI_IA64

Modified: openmpi/trunk/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/patches/series?rev=346&op=diff
==============================================================================
--- openmpi/trunk/debian/patches/series	(original)
+++ openmpi/trunk/debian/patches/series	Wed Dec 18 11:54:34 2013
@@ -14,3 +14,4 @@
 mips-detection.diff
 mips-support-upstream-1.7.3.diff
 mips-support-fix.diff
+basic-arm64-support.diff

Modified: openmpi/trunk/debian/rules
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/rules?rev=346&op=diff
==============================================================================
--- openmpi/trunk/debian/rules	(original)
+++ openmpi/trunk/debian/rules	Wed Dec 18 11:54:34 2013
@@ -92,7 +92,7 @@
 	dh_installdocs --all AUTHORS NEWS README
 
 override_dh_shlibdeps:
-	LD_LIBRARY_PATH="/usr/lib/$(DEB_BUILD_MULTIARCH)/libfakeroot/:$(CURDIR)/debian/tmp/usr/lib/openmpi/lib" dh_shlibdeps  -- --ignore-missing-info
+	dh_shlibdeps -l$(CURDIR)/debian/tmp/usr/lib/openmpi/lib -- --ignore-missing-info
 
 override_dh_strip:
 	dh_strip --dbg-package=libopenmpi1.6-dbg




More information about the Pkg-openmpi-commits mailing list