tags 617779 + pending tags 621978 + pending thanks I've uplodaded an NMU fixing these bugs to DELAYED/5-days. debdiff attached.
Cheers, Riku
diff -u openmpi-1.4.3/debian/control openmpi-1.4.3/debian/control --- openmpi-1.4.3/debian/control +++ openmpi-1.4.3/debian/control @@ -10,7 +10,7 @@ Vcs-Browser: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/ Package: openmpi-bin -Architecture: alpha amd64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 +Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (= ${source:Version}) Recommends: openmpi-checkpoint [ amd64 armel i386 powerpc ] Suggests: gfortran @@ -39,7 +39,7 @@ Package: libopenmpi-dev Section: libdevel -Architecture: alpha amd64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 +Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 Depends: ${shlibs:Depends}, ${misc:Depends}, libopenmpi1.3 (= ${binary:Version}), openmpi-common (= ${source:Version}), libibverbs-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386] Conflicts: openmpi-dev Replaces: openmpi-dev, openmpi-bin (<= 1.2.4-0) @@ -56,7 +56,7 @@ Package: libopenmpi1.3 Section: libs -Architecture: alpha amd64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 +Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 Depends: ${shlibs:Depends}, ${misc:Depends} Conflicts: openmpi-libs0, libopenmpi1 Replaces: openmpi-libs0, libopenmpi1 @@ -101,7 +101,7 @@ Package: libopenmpi-dbg Section: debug -Architecture: alpha amd64 i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 +Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 Depends: ${misc:Depends}, openmpi-bin (= ${binary:Version}), libopenmpi1.3 (= ${binary:Version}) Conflicts: openmpi-dbg Replaces: openmpi-dbg diff -u openmpi-1.4.3/debian/changelog openmpi-1.4.3/debian/changelog --- openmpi-1.4.3/debian/changelog +++ openmpi-1.4.3/debian/changelog @@ -1,3 +1,13 @@ +openmpi (1.4.3-2.1) unstable; urgency=low + + * Non-maintainer upload + * Add openmpi link fix, closes: #621978 + - Thanks to Daniel Schepler <dschep...@gmail.com> + * Add arm support from ubuntu, closes: #617779 + - Thanks to Jani Monoses <j...@ubuntu.com> + + -- Riku Voipio <riku.voi...@iki.fi> Wed, 20 Apr 2011 19:53:03 +0300 + openmpi (1.4.3-2) unstable; urgency=low * Fixed symlinks for shared libraries. Thanks to Matthias Klose diff -u openmpi-1.4.3/debian/patches/series openmpi-1.4.3/debian/patches/series --- openmpi-1.4.3/debian/patches/series +++ openmpi-1.4.3/debian/patches/series @@ -2,0 +3 @@ +arm_support --- openmpi-1.4.3.orig/ompi/tools/ompi-server/Makefile.am +++ openmpi-1.4.3/ompi/tools/ompi-server/Makefile.am @@ -41,7 +41,7 @@ endif # OMPI_INSTALL_BINARIES ompi_server_SOURCES = ompi-server.c -ompi_server_LDADD = $(top_builddir)/ompi/libmpi.la +ompi_server_LDADD = $(top_builddir)/ompi/libmpi.la $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la distclean-local: rm -f $(man_pages) --- openmpi-1.4.3.orig/ompi/tools/ompi_info/Makefile.am +++ openmpi-1.4.3/ompi/tools/ompi_info/Makefile.am @@ -66,7 +66,7 @@ output.cc \ param.cc \ version.cc -ompi_info_LDADD = $(top_builddir)/ompi/libmpi.la +ompi_info_LDADD = $(top_builddir)/ompi/libmpi.la $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la clean-local: test -z "$(OMPI_CXX_TEMPLATE_REPOSITORY)" || $(RM) -rf $(OMPI_CXX_TEMPLATE_REPOSITORY) --- openmpi-1.4.3.orig/debian/patches/arm_support +++ openmpi-1.4.3/debian/patches/arm_support @@ -0,0 +1,316 @@ +## Description: Support building for arm +## Origin/Author: jani.mono...@canonical.com +## Bug: bug URL +Index: openmpi-1.4.3/config/ompi_config_asm.m4 +=================================================================== +--- openmpi-1.4.3.orig/config/ompi_config_asm.m4 2011-01-06 14:07:27.000000000 +0200 ++++ openmpi-1.4.3/config/ompi_config_asm.m4 2011-01-06 14:49:30.000000000 +0200 +@@ -875,6 +875,12 @@ + OMPI_GCC_INLINE_ASSIGN='"movl [$]0, %0" : "=&r"(ret)' + ;; + ++ arm*) ++ ompi_cv_asm_arch="ARM" ++ OMPI_ASM_SUPPORT_64BIT=1 ++ OMPI_GCC_INLINE_ASSIGN='"mov r0, 0" : "=&r"(ret)' ++ ;; ++ + ia64-*) + ompi_cv_asm_arch="IA64" + OMPI_ASM_SUPPORT_64BIT=1 +Index: openmpi-1.4.3/opal/include/opal/sys/Makefile.am +=================================================================== +--- openmpi-1.4.3.orig/opal/include/opal/sys/Makefile.am 2011-01-06 14:07:27.000000000 +0200 ++++ openmpi-1.4.3/opal/include/opal/sys/Makefile.am 2011-01-06 14:49:30.000000000 +0200 +@@ -27,6 +27,7 @@ + + include opal/sys/alpha/Makefile.am + include opal/sys/amd64/Makefile.am ++include opal/sys/arm/Makefile.am + include opal/sys/ia32/Makefile.am + include opal/sys/ia64/Makefile.am + include opal/sys/mips/Makefile.am +Index: openmpi-1.4.3/opal/include/opal/sys/architecture.h +=================================================================== +--- openmpi-1.4.3.orig/opal/include/opal/sys/architecture.h 2011-01-06 14:07:27.000000000 +0200 ++++ openmpi-1.4.3/opal/include/opal/sys/architecture.h 2011-01-06 14:49:30.000000000 +0200 +@@ -36,6 +36,7 @@ + #define OMPI_SPARCV9_32 0061 + #define OMPI_SPARCV9_64 0062 + #define OMPI_MIPS 0070 ++#define OMPI_ARM 0100 + + /* Formats */ + #define OMPI_DEFAULT 1000 /* standard for given architecture */ +Index: openmpi-1.4.3/opal/include/opal/sys/arm/Makefile.am +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openmpi-1.4.3/opal/include/opal/sys/arm/Makefile.am 2011-01-06 14:49:30.000000000 +0200 +@@ -0,0 +1,23 @@ ++# ++# 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$ ++# ++# 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/arm/atomic.h \ ++ opal/sys/arm/timer.h +Index: openmpi-1.4.3/opal/include/opal/sys/arm/atomic.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openmpi-1.4.3/opal/include/opal/sys/arm/atomic.h 2011-01-06 14:49:30.000000000 +0200 +@@ -0,0 +1,163 @@ ++/* ++ * 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$ ++ * ++ * Additional copyrights may follow ++ * ++ * $HEADER$ ++ */ ++ ++#ifndef OMPI_SYS_ARCH_ATOMIC_H ++#define OMPI_SYS_ARCH_ATOMIC_H 1 ++ ++/* ++ * On armv7, everything is load-locked, store-conditional... ++ */ ++ ++#if OMPI_WANT_SMP_LOCKS ++#define MB() __sync_synchronize(); ++#define RMB() MB() ++#define WMB() MB(); ++ ++#else ++ ++#define MB() ++#define RMB() ++#define WMB() ++ ++#endif ++ ++ ++/********************************************************************** ++ * ++ * Define constants for ARM ++ * ++ *********************************************************************/ ++#define OPAL_HAVE_ATOMIC_MEM_BARRIER 1 ++ ++#define OPAL_HAVE_ATOMIC_CMPSET_32 1 ++#define OPAL_HAVE_ATOMIC_MATH_32 1 ++#define OPAL_HAVE_ATOMIC_ADD_32 1 ++#define OPAL_HAVE_ATOMIC_SUB_32 1 ++ ++#define OPAL_HAVE_ATOMIC_CMPSET_64 0 ++#define OPAL_HAVE_ATOMIC_MATH_64 0 ++#define OPAL_HAVE_ATOMIC_ADD_64 0 ++#define OPAL_HAVE_ATOMIC_SUB_64 0 ++ ++/********************************************************************** ++ * ++ * Memory Barriers ++ * ++ *********************************************************************/ ++ ++static inline void opal_atomic_mb(void) ++{ ++ MB(); ++} ++ ++ ++static inline void opal_atomic_rmb(void) ++{ ++ RMB(); ++} ++ ++ ++static inline void opal_atomic_wmb(void) ++{ ++ WMB(); ++} ++ ++ ++/********************************************************************** ++ * ++ * Atomic math operations ++ * ++ *********************************************************************/ ++ ++static inline int opal_atomic_cmpset_32( volatile int32_t *addr, ++ int32_t oldval, int32_t newval) ++{ ++ return __sync_bool_compare_and_swap(addr, oldval, newval); ++} ++ ++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); ++} ++ ++ ++static inline int opal_atomic_cmpset_64( volatile int64_t *addr, ++ int64_t oldval, int64_t newval) ++{ ++ return __sync_bool_compare_and_swap(addr, oldval, newval); ++} ++ ++ ++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); ++} ++ ++static inline int32_t opal_atomic_add_32(volatile int32_t* v, int inc) ++{ ++ return __sync_add_and_fetch(v, inc); ++} ++ ++static inline int64_t opal_atomic_sub_64(volatile int64_t* v, int64_t dec) ++{ ++ return __sync_sub_and_fetch(v, dec); ++} ++ ++static inline int64_t opal_atomic_add_64(volatile int64_t* v, int64_t inc) ++{ ++ return __sync_add_and_fetch(v, inc); ++} ++ ++ ++static inline int32_t opal_atomic_sub_32(volatile int32_t* v, int dec) ++{ ++ return __sync_sub_and_fetch(v, dec); ++} ++#endif /* ! OMPI_SYS_ARCH_ATOMIC_H */ +Index: openmpi-1.4.3/opal/include/opal/sys/atomic.h +=================================================================== +--- openmpi-1.4.3.orig/opal/include/opal/sys/atomic.h 2011-01-06 14:07:27.000000000 +0200 ++++ openmpi-1.4.3/opal/include/opal/sys/atomic.h 2011-01-06 14:49:30.000000000 +0200 +@@ -148,6 +148,8 @@ + #include "opal/sys/alpha/atomic.h" + #elif OMPI_ASSEMBLY_ARCH == OMPI_AMD64 + #include "opal/sys/amd64/atomic.h" ++#elif OMPI_ASSEMBLY_ARCH == OMPI_ARM ++#include "opal/sys/arm/atomic.h" + #elif OMPI_ASSEMBLY_ARCH == OMPI_IA32 + #include "opal/sys/ia32/atomic.h" + #elif OMPI_ASSEMBLY_ARCH == OMPI_IA64 +Index: openmpi-1.4.3/opal/include/opal/sys/arm/timer.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ openmpi-1.4.3/opal/include/opal/sys/arm/timer.h 2011-01-06 14:49:50.000000000 +0200 +@@ -0,0 +1,32 @@ ++/* ++ * 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$ ++ * ++ * Additional copyrights may follow ++ * ++ * $HEADER$ ++ */ ++ ++#ifndef OMPI_SYS_ARCH_TIMER_H ++#define OMPI_SYS_ARCH_TIMER_H 1 ++ ++#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 1 ++ ++typedef uint64_t opal_timer_t; ++ ++static inline opal_timer_t ++opal_sys_timer_get_cycles(void) ++{ ++ return 0; ++} ++ ++#endif /* ! OMPI_SYS_ARCH_TIMER_H */ +Index: openmpi-1.4.3/opal/include/opal/sys/timer.h +=================================================================== +--- openmpi-1.4.3.orig/opal/include/opal/sys/timer.h 2011-01-06 14:07:27.000000000 +0200 ++++ openmpi-1.4.3/opal/include/opal/sys/timer.h 2011-01-06 14:49:30.000000000 +0200 +@@ -81,6 +81,8 @@ + /* don't include system-level gorp when generating doxygen files */ + #elif OMPI_ASSEMBLY_ARCH == OMPI_AMD64 + #include "opal/sys/amd64/timer.h" ++#elif OMPI_ASSEMBLY_ARCH == OMPI_ARM ++#include "opal/sys/arm/timer.h" + #elif OMPI_ASSEMBLY_ARCH == OMPI_IA32 + #include "opal/sys/ia32/timer.h" + #elif OMPI_ASSEMBLY_ARCH == OMPI_IA64 +Index: openmpi-1.4.3/opal/mca/timer/linux/configure.m4 +=================================================================== +--- openmpi-1.4.3.orig/opal/mca/timer/linux/configure.m4 2011-01-06 14:07:26.000000000 +0200 ++++ openmpi-1.4.3/opal/mca/timer/linux/configure.m4 2011-01-06 14:49:30.000000000 +0200 +@@ -42,7 +42,7 @@ + [timer_linux_happy="no"])]) + + case "${host}" in +- i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|sparc*-*linux*) ++ i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|sparc*-*linux*|arm*-*linux*) + AS_IF([test "$timer_linux_happy" = "yes"], + [AS_IF([test -r "/proc/cpuinfo"], + [timer_linux_happy="yes"], --- openmpi-1.4.3.orig/orte/tools/orte-iof/Makefile.am +++ openmpi-1.4.3/orte/tools/orte-iof/Makefile.am @@ -40,7 +40,7 @@ endif # OMPI_INSTALL_BINARIES orte_iof_SOURCES = orte-iof.c -orte_iof_LDADD = $(top_builddir)/orte/libopen-rte.la +orte_iof_LDADD = $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la endif # !ORTE_DISABLE_FULL_SUPPORT --- openmpi-1.4.3.orig/orte/tools/orte-ps/Makefile.am +++ openmpi-1.4.3/orte/tools/orte-ps/Makefile.am @@ -40,7 +40,7 @@ endif # OMPI_INSTALL_BINARIES orte_ps_SOURCES = orte-ps.c -orte_ps_LDADD = $(top_builddir)/orte/libopen-rte.la +orte_ps_LDADD = $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la endif # !ORTE_DISABLE_FULL_SUPPORT --- openmpi-1.4.3.orig/orte/tools/orterun/Makefile.am +++ openmpi-1.4.3/orte/tools/orterun/Makefile.am @@ -55,7 +55,7 @@ debuggers.h \ debuggers.c -orterun_LDADD = $(top_builddir)/orte/libopen-rte.la +orterun_LDADD = $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la endif # !ORTE_DISABLE_FULL_SUPPORT --- openmpi-1.4.3.orig/orte/tools/orte-checkpoint/Makefile.am +++ openmpi-1.4.3/orte/tools/orte-checkpoint/Makefile.am @@ -47,7 +47,7 @@ endif # OMPI_INSTALL_BINARIES orte_checkpoint_SOURCES = orte-checkpoint.c -orte_checkpoint_LDADD = $(top_builddir)/orte/libopen-rte.la +orte_checkpoint_LDADD = $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la endif # WANT_FT endif # !ORTE_DISABLE_FULL_SUPPORT --- openmpi-1.4.3.orig/orte/tools/orte-restart/Makefile.am +++ openmpi-1.4.3/orte/tools/orte-restart/Makefile.am @@ -47,7 +47,7 @@ endif # OMPI_INSTALL_BINARIES orte_restart_SOURCES = orte-restart.c -orte_restart_LDADD = $(top_builddir)/orte/libopen-rte.la +orte_restart_LDADD = $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la endif # WANT_FT endif # ORTE_DISABLE_FULL_SUPPORT --- openmpi-1.4.3.orig/orte/tools/orte-clean/Makefile.am +++ openmpi-1.4.3/orte/tools/orte-clean/Makefile.am @@ -40,7 +40,7 @@ endif # OMPI_INSTALL_BINARIES orte_clean_SOURCES = orte-clean.c -orte_clean_LDADD = $(top_builddir)/orte/libopen-rte.la +orte_clean_LDADD = $(top_builddir)/orte/libopen-rte.la $(top_builddir)/opal/libopen-pal.la endif # !ORTE_DISABLE_FULL_SUPPORT