[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