Import openmpi_1.6.5-9.1.debian.tar.xz
authorJulien Cristau <jcristau@debian.org>
Fri, 14 Nov 2014 16:57:11 +0000 (16:57 +0000)
committerJulien Cristau <jcristau@debian.org>
Fri, 14 Nov 2014 16:57:11 +0000 (16:57 +0000)
[dgit import tarball openmpi 1.6.5-9.1 openmpi_1.6.5-9.1.debian.tar.xz]

48 files changed:
TODO [new file with mode: 0644]
changelog [new file with mode: 0644]
compat [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
libopenmpi-dev.README.Debian [new file with mode: 0644]
libopenmpi-dev.install [new file with mode: 0644]
libopenmpi-dev.links [new file with mode: 0644]
libopenmpi-dev.postinst [new file with mode: 0644]
libopenmpi-dev.preinst [new file with mode: 0644]
libopenmpi-dev.prerm [new file with mode: 0644]
libopenmpi1.6.install [new file with mode: 0644]
libopenmpi1.6.links [new file with mode: 0644]
openmpi-bin.README.Debian [new file with mode: 0644]
openmpi-bin.install [new file with mode: 0644]
openmpi-bin.links [new file with mode: 0644]
openmpi-bin.manpages [new file with mode: 0644]
openmpi-bin.postinst [new file with mode: 0644]
openmpi-bin.prerm [new file with mode: 0644]
openmpi-checkpoint.install [new file with mode: 0644]
openmpi-checkpoint.links [new file with mode: 0644]
openmpi-checkpoint.manpages [new file with mode: 0644]
openmpi-common.install [new file with mode: 0644]
openmpi-common.links [new file with mode: 0644]
openmpi-doc.install [new file with mode: 0644]
openmpi-doc.manpages [new file with mode: 0644]
patches/alpha_badatomic.patch [new file with mode: 0644]
patches/arm_detection.diff [new file with mode: 0644]
patches/arm_support [new file with mode: 0644]
patches/basic-arm64-support.diff [new file with mode: 0644]
patches/build_hurd [new file with mode: 0644]
patches/configure_arm_fix.patch [new file with mode: 0644]
patches/fix-bashims.diff [new file with mode: 0644]
patches/fix-fakeroot-execution.patch [new file with mode: 0644]
patches/fix-testsuite-compile [new file with mode: 0644]
patches/manpage_macros [new file with mode: 0644]
patches/mips-detection.diff [new file with mode: 0644]
patches/mips-support [new file with mode: 0644]
patches/mips-support-fix.diff [new file with mode: 0644]
patches/mips-support-upstream-1.7.3.diff [new file with mode: 0644]
patches/ompi_autogen_sh.patch [new file with mode: 0644]
patches/openmpi-link-fix [new file with mode: 0644]
patches/pkgconfig-vars.patch [new file with mode: 0644]
patches/ppc64el-support.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..f7874f1
--- /dev/null
+++ b/TODO
@@ -0,0 +1,4 @@
+* moved mpi.mod into the -dev package
+* *.so in /usr/lib/openmpi/lib/openmpi/ should be in a versionned directory
+
+
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..1403771
--- /dev/null
+++ b/changelog
@@ -0,0 +1,929 @@
+openmpi (1.6.5-9.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Disable torque support (see #767411).
+
+ -- Julien Cristau <jcristau@debian.org>  Fri, 14 Nov 2014 17:57:11 +0100
+
+openmpi (1.6.5-9) unstable; urgency=medium
+
+  * Add myself as uploader.
+  * Standards-Version: 3.9.6; no changes required.
+  * Rebuild against lastest gfortran. Closes: #647908, #675115.
+  * Patch for mpi.pc support. Closes: #752785.
+  * Patch from Michael Cree to fix bad atomic ops on Alpha that
+    causes mpi4py to segfault. Closes: #754524.
+
+ -- Alastair McKinstry <mckinstry@debian.org>  Tue, 28 Oct 2014 11:07:44 +0000
+
+openmpi (1.6.5-8) unstable; urgency=low
+
+  [ Dimitri John Ledkov ]
+  * Set ppc64el gnu-type to use ppc atomics code-path.
+  * Attempt ppc64el build.
+
+  [ Sylvestre Ledru ]
+  * Sync changes from Ubuntu (it would be nice to have contribution
+    directly in Debian btw)
+  * Fix a link issue on libopen-pal.so (Closes: #733086)
+  
+ -- Sylvestre Ledru <sylvestre@debian.org>  Thu, 26 Dec 2013 14:29:07 +0100
+
+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@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)
+    Thanks to YunQiang Su
+  * Also support of mips & mipsel. Thanks to Jurica Stanojkovic
+    (Closes: #732027)
+  * Fix an upgrade issue (Closes: #730622)
+  * Standards-Version updated to 3.9.5
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Wed, 04 Dec 2013 18:14:59 +0100
+
+openmpi (1.6.5-5) unstable; urgency=low
+
+  * Fix the incorrect symlink in libopenmpi1.6 (Closes: #722888)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sat, 14 Sep 2013 18:54:05 +0200
+
+openmpi (1.6.5-4) unstable; urgency=low
+
+  * Fix again the HURD build. Thanks to Pino Toscano (Closes: #720395)
+  * orte_snapc manpage has moved from openmpi-checkpoint to openmpi-doc
+    (Closes: #717978)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Wed, 28 Aug 2013 08:54:09 +0200
+
+openmpi (1.6.5-3) unstable; urgency=low
+
+  * Increase the priority of the libopenmpi-dev package to make sure OpenMPI
+    is used before mpich. Otherwise, it causes issues like:
+    «PKGBUILDDIR»/./src/mpi.c:143: undefined reference to `ompi_mpi_comm_world'
+    «PKGBUILDDIR»/./src/mpi.c:143: undefined reference to `ompi_mpi_double'
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Tue, 20 Aug 2013 13:39:25 +0200
+
+openmpi (1.6.5-2) unstable; urgency=low
+
+  * Update of the HURD port (Closes: #719797)
+  * Fix path mistakes on libmpi_f90 (Closes: #720124)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sat, 17 Aug 2013 19:35:24 +0200
+
+openmpi (1.6.5-1) unstable; urgency=low
+
+  * Upload to unstable (will need a transition)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Thu, 15 Aug 2013 08:55:11 +0200
+
+openmpi (1.6.5-1~exp2) experimental; urgency=low
+
+  * quilt as dependency is not necessary
+  * Limit the usage of libibverbs-dev on Linux kernels
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Thu, 11 Jul 2013 09:36:23 +0200
+
+openmpi (1.6.5-1~exp1) experimental; urgency=low
+
+  * New upstream release
+  * Build-Conflicts libopenmpi1.3 (avoid wrong dependencies)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Mon, 01 Jul 2013 09:43:57 +0200
+
+openmpi (1.6.4+-1~exp1) experimental; urgency=low
+
+  * Upload the 1.6 release over the 1.4
+    Note that this will require a transition
+  * Standards-Version updated to 3.9.4
+  * Add libfakeroot path to the LD_LIBRARY_PATH
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Tue, 04 Jun 2013 17:16:16 +0200
+
+openmpi1.6 (1.6.4-2) unstable; urgency=low
+
+  * Inconsistency in debian/libopenmpi1.6.install.
+    Thanks Hiroyuki Yamamoto (Closes: #704936)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Thu, 11 Apr 2013 16:02:35 +0200
+
+openmpi1.6 (1.6.4-1) unstable; urgency=low
+
+  * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Fri, 22 Feb 2013 09:27:09 +0100
+
+openmpi1.6 (1.6.3-3) unstable; urgency=low
+
+  * Rename manpages to avoid conflicts with mpich2-doc (Closes: #692937)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Fri, 16 Nov 2012 17:42:56 +0100
+
+openmpi1.6 (1.6.3-2) unstable; urgency=low
+
+  * Bring back manpages for MPI functions (LP: #1027289)
+  * Remove mca_rml_ftrm.so on ia64 & sparc
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Fri, 09 Nov 2012 14:09:11 +0100
+
+openmpi1.6 (1.6.3-1) unstable; urgency=low
+
+  * New upstream release
+  * Fix bashims (Closes: #690929)
+  * Remove mca_pml_crcpw.so on ia64 & sparc
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Wed, 07 Nov 2012 11:50:54 +0100
+
+openmpi1.6 (1.6.2-2) unstable; urgency=low
+
+  * Remove mca_grpcomm_hier.so on all archs
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sat, 29 Sep 2012 14:03:42 +0200
+
+openmpi1.6 (1.6.2-1) unstable; urgency=low
+
+  * New upstream release
+  * Add dpkg-dev (>= 1.16.1~) dependency (hardening)
+  * Enable hardening flags (but not taken in account everywhere)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sat, 29 Sep 2012 09:40:58 +0200
+
+openmpi1.6 (1.6.1-1) unstable; urgency=low
+
+  * New upstream release
+  * Some libs have been removed from upstream: mca_rmcast_tcp.so,
+    mca_rmcast_udp.so & mca_io_romio.so
+  * Remove fix_orte_default_hostfile_path.diff (applied upstream)
+  * Switch to automake as build dependency
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Thu, 23 Aug 2012 15:49:02 +0200
+
+openmpi1.6 (1.6-4) unstable; urgency=low
+
+  * Update library list for sparc & ia64
+  * --enable-mpi-threads -> --enable-opal-multi-threads
+  * --enable-ft-thread is needed to have a similar level of checkpointing as 
+    before
+    Thanks to Matthieu Volat for the two last changes
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sun, 01 Jul 2012 14:38:42 +0200
+
+openmpi1.6 (1.6-3) unstable; urgency=low
+
+  * Try another change in the detection of armel (v5 instead of v6)
+  * Fix a problem in the default hostfile with orte. Thanks to Matthieu Volat
+    for the patch
+  * Update lib library for sparc, armhf and armel 
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Wed, 27 Jun 2012 22:34:28 +0200
+
+openmpi1.6 (1.6-2) unstable; urgency=low
+
+  * Update the detection of armel & armhf (See arm_detection.diff)
+  * Add the dependency on hwloc-dev from libopenmpi1.6-dev (Closes: #677744)
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Mon, 25 Jun 2012 13:47:07 +0200
+
+openmpi1.6 (1.6-1) unstable; urgency=low
+
+  * Sync from Ubuntu (which has been uploaded with a new name).
+  * Rename openmpi 1.5 => 1.6
+  * Standards-Version updated to version 3.9.3
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Wed, 06 Jun 2012 17:45:07 +0200
+
+openmpi1.5 (1.5.4-0ubuntu1) precise; urgency=low
+
+  [ Robie Basak ]
+  * Fork new openmpi1.5 package for co-existence with openmpi 1.4
+    (LP: #889644).
+  * Move required plugins from openmpi-checkpoint to libopenmpi1.5-2:
+    - d/control: openmpi-checkpoint now depends on libopenmpi1-5-2
+    - d/libopenmpi1.5-2.install*: switch to wildcard plugin install, drop
+      specific install files for armel and armhf.
+    - d/openmpi-checkpoint.install: Don't install any plugins.
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Fri, 18 May 2012 17:06:10 +0200
+
+openmpi (1.5.4-2~exp2) experimental; urgency=low
+
+  [ Manuel Prinz ]
+  * Fixed dangling symlinks. Thanks to Roderich Schupp for the patch!
+    Closes: #658594.
+  
+  [ James Pages ]
+  * The checks for FAKEROOT introduced to fix this bug upstream are
+     preceeded by a new check that calls stat re-producing the original bug.
+     Re-ordering the checks to ensure that FAKEROOT is detected first
+     appears to resolve this issue.
+     Closes: #658600.
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sun, 19 Feb 2012 15:42:41 +0100
+
+openmpi (1.5.4-2~exp1) experimental; urgency=low
+
+  [ Manuel Prinz ]
+  * Moved all CR components from libopenmpi2 to openmpi-checkpoint. Fixes the
+    build issue on ia64.
+
+  [ Jani Monoses ]
+  * Build for armhf as well.
+  * Add armel/armhf specific libopenmpi2.install files.
+  * debian/patches/configure_arm_fix.patch: Fix arm FTBFS.
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Tue, 24 Jan 2012 16:34:52 +0100
+
+openmpi (1.5.4-1) experimental; urgency=low
+
+  * New upstream release. Closes: #619998.
+    - ABI changes, bumped SONAME.
+  * Changes in packaging:
+    - Using "3.0 (quilt)" source format.
+    - Deleted README.source (obsolete).
+    - Updated watch file.
+    - Bumped Standards-Version to 3.9.2. No changes needed.
+    - Changed hard-coded list of non-Linux architectures in Build-Depends to
+      "linux-any". Closes: #634628.
+    - openmpi-bin now "Suggests" openmpi-checkpoint instead of recommending it.
+    - Deleted shlibs.local (obsolete).
+    - Updated debian/copyright.
+    - Updated patches.
+    - Substituted "OpenMPI" with "Open MPI" (official writing).
+    - Fixed a small bug when calling dh_installdocs. Thanks to Jean-Louis Dupond
+      for the patch! Closes: #634899.
+    - Dropped .la files (no rdepends with .la files). Closes: #628070.
+    - Build against libltdl and libhwloc provided by Debian.
+  * Acknowledge NMU. Thanks to Riku Voipio!
+  * Builds support for GridEngine. Closes: #626164.
+  * Enabled support for MPI threads. Closes: #602132.
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 21 Dec 2011 00:38:25 +0100
+
+openmpi (1.4.3-2.1) unstable; urgency=low
+
+  * Non-maintainer upload
+  * Add openmpi link fix, closes: #621978
+    - Thanks to Daniel Schepler <dschepler@gmail.com>
+  * Add arm support from ubuntu, closes: #617779
+    - Thanks to Jani Monoses <jani@ubuntu.com>
+
+ -- Riku Voipio <riku.voipio@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
+    for the patch! Closes: #608717, #609830.
+  * Fixed symlink loop in openmpi-checkpoint. Closes: #611454.
+
+ -- Manuel Prinz <manuel@debian.org>  Fri, 11 Mar 2011 14:45:20 +0100
+
+openmpi (1.4.3-1) unstable; urgency=low
+
+  * New upstream release.
+  * Removed the following patches, all applied upstream:
+    - build_kfreebsd
+    - manpage-errors-checkpoint
+    - manpage-errors-macro
+    - manpage-errors-whatis
+    - manpage-spelling-errors
+    - var-copy
+  * Added a patch that fixes man page issues.
+  * Added sparc64 to Architecture list. Thanks to Aurelien Jarno for
+    the patch! Closes: #596134.
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 15 Dec 2010 18:50:16 +0100
+
+openmpi (1.4.2-4) unstable; urgency=low
+
+  * Added patch to remove use of AS_VAR_GET. Closes: #592892.
+  * debian/control: Added powerpcspe to architecture list. Thanks to
+    Sebastian Andrzej Siewior for the patch! Closes: #593481.
+  * Build with support for Torque (except on HURD). Closes: #592887.
+  * Updated Standards-Version to 3.9.1. No changes needed.
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 01 Sep 2010 17:53:44 +0200
+
+openmpi (1.4.2-3) unstable; urgency=low
+
+  * Fixed build issue on kFreeBSD. Closes: #589467.
+  * Added and updated patch meta-information.
+
+ -- Manuel Prinz <manuel@debian.org>  Tue, 20 Jul 2010 17:31:52 +0200
+
+openmpi (1.4.2-2) unstable; urgency=low
+
+  * Fixed broken broken library symlinks. Closes: #589319.
+
+ -- Manuel Prinz <manuel@debian.org>  Fri, 16 Jul 2010 20:49:24 +0200
+
+openmpi (1.4.2-1) unstable; urgency=low
+
+  * New upstream release. Closes: #585800.
+  * Updated patches.
+  * Updated Standards-Version. No changes needed.
+  * Install previously uninstalled files. Closes: #589043.
+  * Fixed several errors in man pages.
+
+ -- Manuel Prinz <manuel@debian.org>  Thu, 15 Jul 2010 17:19:23 +0200
+
+openmpi (1.4.1-3) unstable; urgency=low
+
+  * Added slave alternatives symlinks for MPI FORTRAN libraries.
+    Thanks to Adam C. Powell, IV for the patch! Closes: #563705.
+  * Recommend openmpi-checkpoint only on available architectures.
+  * Increased update-alternatives priority of libopenmpi-dev.
+
+ -- Manuel Prinz <manuel@debian.org>  Thu, 25 Mar 2010 16:32:21 +0100
+
+openmpi (1.4.1-2) unstable; urgency=low
+
+  * Fixed build issues on HURD. Thanks to Pino Toscano for the patch!
+    Closes: #552397.
+  * Recreate autotools stuff during build. Added autoconf, automake,
+    libtool and libltdl-dev to Build-Depends.
+  * openmpi-checkpoint now depends on blcr-util. Closes: #572229.
+  * Fixed symlink issues with ompi-{checkpoint,restart}. Closes: #572021.
+  * Retroactively adding LP entries to close bugs in Ubuntu's Launchpad.
+
+ -- Manuel Prinz <manuel@debian.org>  Thu, 18 Mar 2010 17:57:30 +0100
+
+openmpi (1.4.1-1) unstable; urgency=low
+
+  [ Sylvestre Ledru ]
+  * New upstream release. Libtool patch removed, included upstream.
+  * Watch file updated.
+
+  [ Manuel Prinz ]
+  * Bumped Standards-Version to 3.8.4. No changes needed.
+  * Updated section on alternatives in README.Debian.
+  * Removed conflict with libopal-dev in libopenmpi-dev. Closes: #559161.
+  * Removed conflict with ancient pgapack in libopenmpi-dev.
+  * Fixed several spelling-error-in-manpage lintian warnings.
+  * Deleted man pages provided by Debian, all included upstream.
+  * Changed .install files to match soname bumps. The soname bumps were
+    introduced by upstream to follow the libtool versioning guidelines.
+    The ABI did not change and recompilations of rdepends are not needed.
+  * Compile with support for heterogeneous environments and memory affinity.
+    LP: #419074.
+  * Provide symlinks for orte-{checkpoint,restart} for smoother transition.
+    The tools were merged with ompi-{checkpoint,restart}.
+  * Added ${misc:Depends} everywhere so lintian is happy.
+
+ -- Manuel Prinz <manuel@debian.org>  Tue, 16 Feb 2010 17:59:12 +0100
+
+openmpi (1.3.3-4) unstable; urgency=medium
+
+  * Fixed security issue in copy of libtool, see CVE-2009-3736.
+    Closes: #559836.
+
+ -- Manuel Prinz <manuel@debian.org>  Tue, 08 Dec 2009 00:58:02 +0100
+
+openmpi (1.3.3-3.1) unstable; urgency=low
+
+  * Non-maintainer upload with the maintainer's permission.
+  * Improve alternatives upgrade.
+
+ -- Lucas Nussbaum <lucas@lucas-nussbaum.net>  Thu, 19 Nov 2009 16:44:20 -0600
+
+openmpi (1.3.3-3) unstable; urgency=low
+
+  * Removed mpiexec alternative, as discussed in #552429. It is now a slave
+    of the mpirun master alternative. Also raised the priority to 40, along
+    with MPICH2. Closes: #493876.
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 11 Nov 2009 21:16:59 +0100
+
+openmpi (1.3.3-2) unstable; urgency=low
+
+  * Removing ancient mpirun alternatives in preinst. Closes: #534740, #544372.
+  * Build with BLCR support on supported architectures. The openmpi-checkpoint
+    package includes the binaries for checkpointing and documentation. Many
+    thanks to Alan Woodland for the implementation! Closes: #545919.
+  * Added a README.source file.
+  * Empty dependency_libs in .la files.
+
+ -- Manuel Prinz <manuel@debian.org>  Tue, 13 Oct 2009 20:50:51 +0200
+
+openmpi (1.3.3-1) unstable; urgency=low
+
+  * New upstream version
+  * Change of my email address since I am now DD    
+  * Standards-Version updated to 3.8.3
+  * XS-Dm-Upload-Allowed tag removed
+  * Patch disable-memory-allocator (see bug #531522) removed. Applied upstream
+
+ -- Sylvestre Ledru <sylvestre@debian.org>  Sat, 29 Aug 2009 18:39:48 +0200
+
+openmpi (1.3.2-4) unstable; urgency=low
+
+  [ Cyril Brulebois ]
+  * Fix installability of libopenmpi-dev on non-Linux architectures, where
+    libibverbs-dev isn't built (due to its being Linux-specific) by removing
+    the latter from the dependencies of the former for kfreebsd-* and
+    hurd-i386 (for reference, that was already done for Build-Depends).
+    (Closes: #535225)
+
+ -- Sylvestre Ledru <sylvestre.ledru@inria.fr>  Tue, 30 Jun 2009 23:52:42 +0200
+
+openmpi (1.3.2-3) unstable; urgency=low
+
+  * Re-uploading, as last upload was not successful.
+  * Acknowledgement of NMU. Thanks to Steve M. Robbins for the patches and
+    NMUs! Closes: #531522.
+  * Removing ancient mpicc, mpiCC and mpiexec master alternatives in preinst.
+    Closes: #531184, #532008, #532910.
+  * debian/control: Bumped Standards-Version. No changes needed.
+  * Fixed typo in README.Debian of openmpi-bin.
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 24 Jun 2009 00:33:23 +0200
+
+openmpi (1.3.2-2.2) unstable; urgency=low
+
+  * Non-Maintainer Upload (NMU)
+  * debian/patches/disable-memory-allocator: Replace with improved patch
+    from upstream.
+
+ -- Steve M. Robbins <smr@debian.org>  Sun, 21 Jun 2009 13:08:05 -0500
+
+openmpi (1.3.2-2.1) unstable; urgency=low
+
+  * Non-Maintainer Upload (NMU)
+  * debian/patches/disable-memory-allocator: New.  Patch
+    opal/mca/memory/ptmalloc2/hooks.c to add check for environment
+    variable OMPI_MCA_disable_memory_allocator.  If set, avoid setting up
+    malloc hooks and avoid stat() calls from the malloc init hook.
+    Closes: #531522.
+
+ -- Steve M. Robbins <smr@debian.org>  Wed, 17 Jun 2009 22:03:31 -0500
+
+openmpi (1.3.2-2) unstable; urgency=low
+
+  * Upload to unstable. No changes compared to 1.3.2-1.
+
+ -- Manuel Prinz <manuel@debian.org>  Thu, 28 May 2009 12:28:37 +0200
+
+openmpi (1.3.2-1) experimental; urgency=low
+
+  * New upstream release. (Closes: #520597, #515116)
+    - Manpage and VampirTrace patches removed, included upstream.
+  * Fixed build issues on Alpha. Huge thanks to Arthur Loiret for providing
+    access to his machines for testing! (Closes: #510845, #517543)
+  * Fixed build issues on Sparc. (Closes: #519725)
+  * Fixed manpage-has-errors-from-man lintian warnings.
+  * Faked SONAME change by renaming library package. (Closes: #512616)
+  * Made libopenmpi-dev depend on libibverbs-dev. (Closes: #522153, LP: #342344)
+  * Support for "nocheck" build option in debian/rules.
+  * Updated Standards-Version in debian/control.
+  * Changed section of libopenmpi-dbg to "debug".
+  * Updated debian/copyright.
+
+  * Dirk Eddelbuettel removed himself from Uploaders. The team thanks Dirk
+    for his long-term contribution and effort to get Open MPI back to life.
+    I personally thank Dirk for encouraging me to become a Debian Developer
+    and his support and mentoring on that way and beyond.
+
+ -- Manuel Prinz <manuel@debian.org>  Thu, 23 Apr 2009 14:01:21 +0200
+
+openmpi (1.3-2) unstable; urgency=low
+
+  * Updated debian/watch to point to 1.3 series download location
+  * Added a patch to fix build issues with VampirTrace
+  * Added a patch to fix lintian warnings: manpage-has-errors-from-man
+  * Added a patch to enable Open MPI to build on MIPS. Many thanks to
+    Thiemo Seufer, he will be missed!
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 28 Jan 2009 23:38:02 +0100
+
+openmpi (1.3-1) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * New upstream version.
+  * debian/rules: Pass empty LDFLAGS to configure call to prevent seg.fault. 
+    on load due to overly hungry link command on Ubuntu
+
+  [ Manuel Prinz ]
+  * Header files are now available under /usr/include/openmpi via symlink
+    (Closes: #493875)
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Tue, 20 Jan 2009 20:10:20 -0600
+
+openmpi (1.2.8-3) unstable; urgency=low
+
+  * Building static libraries (again) (Closes: #502232)
+  * Removed *.so files from libopenmpi-dev package (Closes: #504161)
+
+ -- Manuel Prinz <manuel@debian.org>  Sun, 02 Nov 2008 15:53:19 +0100
+
+openmpi (1.2.8-2) unstable; urgency=low
+
+  * Reverted back to revision r137 corresponding to Debian release 1.2.7-1
+                                                               (Closes: #504161)
+  
+ -- Dirk Eddelbuettel <edd@debian.org>  Sat, 01 Nov 2008 17:37:07 -0500
+
+openmpi (1.2.8-1) unstable; urgency=low
+
+  * New upstream version.
+  * libopenmpi-dev ships static libraries (Closes: #502232)
+  * Remaining lintian warnings removed
+       
+ -- Sylvestre Ledru <sylvestre.ledru@inria.fr>  Tue, 28 Oct 2008 23:49:37 +0200
+  
+openmpi (1.2.7-1) unstable; urgency=low
+
+  * New upstream version.
+
+  [ Sylvestre Ledru ]
+  * debian/control: Added myself to Uploaders field
+       
+  [ Manuel Prinz ]
+  * debian/control: Changed my email address in Uploaders field
+
+ -- Manuel Prinz <manuel@debian.org>  Wed, 24 Sep 2008 21:22:35 +0200
+
+openmpi (1.2.7~rc2-2) unstable; urgency=low
+
+  * Updated README.Debian of libopenmpi-dev. It contained references to closed
+    bugs. Also added a recommendation on correct linking.
+  * debian/control: Removed XS-Autobuild field
+  * debian/copyright: Added missing copyrights and licenses for ROMIO and
+    GNU libltdl
+
+ -- Manuel Prinz <debian@pinguinkiste.de>  Mon, 25 Aug 2008 22:41:16 +0200
+
+openmpi (1.2.7~rc2-1) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * New upstream pre-release version 
+  * Thanks to Manuel for the work on this release, and on 1.2.6-3 which 
+    we never uploaded, and to the Open MPI team for the integrating the patch
+    from 1.2.6-3 into what will be 1.2.7
+
+  [ Manuel Prinz ]
+  * debian/control: Changed Standards-Version to 3.8.0
+  * Deleted all patches, removed Build-Depends of dpatch
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Wed, 02 Jul 2008 19:08:07 -0500
+
+openmpi (1.2.6-3) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * debian/patches/01openfabrics.dpatch: Applied patch by Jeff Squyres that
+    deals with the warnings printed when OpenFabrics hardware is not present.
+    Thanks to Jeff for the patch!
+  * debian/patches/10fix_config_infiniband.dpatch: Removed, it's obsoleted
+    by the above mentioned OpenFabrics patch.
+  * Updated README.Debian with information about the OpenFabrics patch.
+  * debian/patches/02manpages-lintian-fix.dpatch: Applied patch another patch
+    by Jeff Squyres that fixes Lintian manpage-has-errors-from-man issues.
+    Thanks again to Jeff for the patch!
+
+ -- Manuel Prinz <debian@pinguinkiste.de>  Sat, 31 May 2008 23:49:13 +0200
+
+openmpi (1.2.6-2) unstable; urgency=low
+
+  [ Sylvestre Ledru ]
+  * Can be built under ppc64. Thanks to Andreas Jochens (Closes: #478427)
+
+  [ Dirk Eddelbuettel ]
+  * Built and uploaded. Thanks to Sylvestre for applying the patch.
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Mon, 05 May 2008 07:16:49 -0500
+
+openmpi (1.2.6-1) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * New upstream version
+  * debian/patches/00list: Disabled man page patches 60* which 
+    has been included upstream in version 1.2.6
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Tue, 08 Apr 2008 20:19:24 -0500
+
+openmpi (1.2.5-3) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * debian/control: Version the Conflicts: of libopenmpi-dev with pgapack to
+    'pgapack (<= 1.0.0.1-4.2)' as newer pgapack do not exhibit a conflict.
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Mon, 10 Mar 2008 16:55:37 -0500
+
+openmpi (1.2.5-2) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+  * Thanks to Manuel for all the work, and to Ondrej for persistent debugging.
+
+  [ Manuel Prinz ]
+  * Added missing ${shlibs:Depends} to Depends: line of libopenmpi-dev
+  * debian/shlibs.local: Added entry for libibverbs until the package provides
+    the necessary information. (Closes: #464705)
+  * debian/control: Added versioned dependency to libibverbs in Build-Depends
+  * debian/libopenmpi-dev.postinst: Corrected dead symlinks. Thanks to Ondrej
+    Certik for reporting the issue! (Closes: #464795)
+  * debian/patches/60_fix_manpage_name_section.dpatch: Fixing name line in the
+    MPI_Comm_f2c.3 manpage. Thanks to Jeff Squyres!
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Thu, 14 Feb 2008 20:54:06 -0600
+
+openmpi (1.2.5-1) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * New upstream version
+  * debian/patches/00list: Disabled man page patches 20*, 30* and 31* which 
+    have been included upstream
+  * debian/patches/60_fix_manpage_name_section.dpatch: Applied small correction
+  * Debian build and upload
+
+  [ Manuel Prinz ]
+  * debian/*.lintian-override: Deleted, all issues are fixed
+    - debian/libopenmpi{1,-dev}.links, debian/libopenmpi1.install:
+      Moved *.so.0 links from /usr/lib/openmpi/lib to /usr/lib. Created
+      *.so.0.0.0 symlinks in /usr/lib, pointing to /usr/lib/openmpi/lib.
+      This fixes postinst-has-useless-call-to-ldconfig, postrm-has-useless-
+      call-to-ldconfig and package-name-doesnt-match-sonames warnings.
+    - debian/rules, debian/control: Added chrpath to Build-Depends and
+      deleting all rpath info with chrpath in install-arch target. This
+      fixes all binary-or-shlib-defines-rpath warnings.
+  * debian/rules: Adjusted target dependencies to be more sane. Renamed
+    "test" target to "check".
+  * Applied a patch by Adam Powell IV that adds /usr/lib/libmpi++.so via
+    update-alternatives for compatibility with LAM/MPI and MPICH. Thanks to
+    Adam for the patch! (Closes: #459642)
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Wed, 09 Jan 2008 16:30:33 -0600
+
+openmpi (1.2.4-5) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * Several changes in the libopenmpi-dev package to correct the library
+    soname links (Closes: #456721)
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Tue, 18 Dec 2007 20:00:53 -0600
+
+openmpi (1.2.4-4) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * debian/rules: Several minor changes
+    - Added cross-compilation support
+    - Replaced (un)patch targets with dpatch's makefile snippet
+  * debian/control: Changed Standards-Version to match latest policy
+  * debian/control: Several cosmetic changes to control fields
+    - XS-Vcs-*: Renamed fields to Vcs-*
+    - XS-DM-Upload-Allowed: Added, allowing uploads for Debian Maintainers
+    - Homepage: Newly added
+    - Build-Depends: Removed libsysfs-dev (Closes: #449084)
+    - Build-Depends: Removed automake
+    - Uploaders: Added myself
+  * Moved include files and libraries to /usr/lib/openmpi and use the "mpi"
+    alternative. Thanks to Nicholas Breen for assistance! (Closes: #452047)
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Wed, 12 Dec 2007 09:40:29 -0600
+
+openmpi (1.2.4-3) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * debian/control: Added openmpi-common to libopenmpi-dev's Depends
+    (Closes: #445230)
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Sat, 06 Oct 2007 07:54:47 -0500
+
+openmpi (1.2.4-2) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * debian/control: Added sparc to list of supported architectures
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Tue, 02 Oct 2007 22:04:04 -0500
+
+openmpi (1.2.4-1) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * debian/control: Modified package relationships to prevent problems when
+    upgrading from 1.2.3-4 (Closes: #444432)
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Fri, 28 Sep 2007 16:25:13 -0500
+
+openmpi (1.2.4-0) unstable; urgency=low
+
+  * New upstream release
+
+  [ Sylvestre Ledru ]
+  * debian/patches: Removed 50fix_kfreebsd_build patch (Fixed upstream)
+
+  [ Manuel Prinz ]
+  * Patch added: Please shut up libibverbs (Closes: #439730)
+  * Moved compiler wrappers from package openmpi-bin to libopenmpi-dev.
+
+  [ Dirk Eddelbuettel ]
+  * Debian build and upload
+  
+ -- Dirk Eddelbuettel <edd@debian.org>  Wed, 26 Sep 2007 22:07:15 -0500
+
+openmpi (1.2.3-4) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * Fixed: openmpi-bin: FTBFS on kFreeBSD and maybe Hurd. Thanks to
+    Uwe Hermann for providing the patches! (Closes: #437839)
+  * debian/rules: Disabled threading support (Closes: #435581)
+  * debian/openmpi-bin.README.Debian: Documented disabling of threading
+  * debian/patches: Removed 10opal_noexecstack and 99autoconf patches
+    because they are no longer needed. Thanks to Brian Barrett for
+    clarification.
+
+  [ Dirk Eddelbuettel ]
+  * debian/control: Add 'kfreebsd-i386 kfreebsd-amd64 hurd-i386' to list 
+    of build architecture (via Uwe's patch referenced above)
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Mon, 20 Aug 2007 20:10:46 -0500
+
+openmpi (1.2.3-3) unstable; urgency=low
+
+  [ Manuel Prinz ]
+  * Fixed: openmpi-bin: libibverbs only available for Linux. Thanks to 
+    Uwe Hermann for providing the patch! (Closes: #435573)
+  * Changed section of openmpi-doc to doc to satisfy overrides
+
+  [ Dirk Eddelbuettel ]
+  * debian/control: Trying something moderately radical here -- we are 
+    switching the binary packages from 'Architecture: any' to the set
+    of five architectures that can actually build the package, given the
+    lack of upstream support for atomistic operations on the other 
+    architectures (c.f. Debian BTS for openmpi)
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Sun, 12 Aug 2007 19:43:29 -0500
+
+openmpi (1.2.3-2) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * debian/control: Added some per-package text to the common titles
+    of the Descriptions
+
+  [ Manuel Prinz ]
+  * Fixed: FTBFS on GNU/kFreeBSD, Thanks to Petr Salinger for providing 
+    the patch! (Closes: #433142).
+  * debian/control: Changed priority to "extra" to comply with the Debian
+    Policy, section 2.5.
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Mon, 30 Jul 2007 21:12:11 -0500
+
+openmpi (1.2.3-1) unstable; urgency=low
+
+  [ Dirk Eddelbuettel ]
+  * debian/rules: Ensure AUTHORS NEWS README are installed everywhere
+  * debian/rules: Add examples/ directory to openmpi-doc
+  * debian/control: More Conflicts/Replaces/Provides for renamed packages
+  
+ -- Dirk Eddelbuettel <edd@debian.org>  Sun, 24 Jun 2007 21:18:31 -0500
+
+openmpi (1.2.3-0) unstable; urgency=low
+
+  * First release by the new maintainer group 'pkg-openmpi' 
+
+  * Takeover of the package is coordinated with the previous maintainer.
+    Our thanks to Florian for his initial packaging.
+  * We also would like to thank everybody who has prepared a previous NMU,
+  
+  [ Dirk Eddelbuettel ]
+  * debian/control: Add myself as Uploaders
+  * debian/patches/31_fix_manpages_lintian.dpatch: Another small man page fix
+  * debian/{ompi_info.1,opal_wrapper.1,orted.1}: Contributed three man pages
+  * Renaming some sub-package:
+    - openmpi-libs0 package renamed to libopenmpi1
+    - openmpi-dev package renamed to libopenmpi-dev
+    - openmpi-dbg package rename to libopenmpi-dbg
+    - new openmpi-mpidoc package renamed to openmpi-doc 
+  * debian/control: Add Build-Depends: on 'gcc (>= 4.1.2)' to build for the 
+    'long double' transition -- and as we happen to have renamed the library
+    package name, is requivalent to the 'ldbl' suffix  (Closes: #430321)
+  
+  [ Upstream ]
+  * Fixed: mpif77 and mpif90 incorrect default include file search path
+    (Closes: #405472)
+
+  [ Sylvestre Ledru ]
+  * New upstream release 1.2.3
+  * New upstream release 1.2.2 (Closes: #427356)
+  * Patch removed: 20implicit_pointer_conversion.dpatch
+  * Apply all of Tilman's patches below (Closes: #415338)
+  * Add the correct XS-Autobuild, XS-Vcs-Svn and XS-Vcs-Browser fields in 
+    debian/control.
+  * Fix errors in manpages (Lintian complaining)
+
+  [ Manuel Prinz ]
+  * Patch removed: 30_alpha_inline_assembly.dpatch (Fixed upstream)
+  * Updated patch of autogenerated autoconf files by Steve Langasek.
+  * Fixed: Please make openmpi thread-compartible by adding
+    --enable-mpi-threads and --enable-progress-threads (Closes: #419867)
+  * Fixed: Use Debian alternatives (Closes: #396761)
+  * Added watch file.
+
+  [ Tilman Koschnick ]
+  * New upstream release 1.2.0
+  * Acknowledge previous NMUs (Closes: #386491, #392633, #404003, #404026).
+  * Fix: mpicc.openmpi fails to run when named mpicc.openmpi (Closes: #388216).
+  * Include manual pages (Closes: #413607).
+  * Add openmpi-mpidoc package for man pages describing the MPI standard.
+  * Update copyrights.
+
+  [ Andreas Barth ]
+  * Spelling mistake in the description of the package (Closes: #390238)
+
+ -- Dirk Eddelbuettel <edd@debian.org>  Sat, 23 Jun 2007 18:55:31 -0500
+
+openmpi (1.1-2.5) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * High urgency upload for RC bugfix.
+  * Add missing build-dependency on libsysfs-dev, which is used in the build
+    but was previously pulled in via libibverbs-dev.
+
+ -- Steve Langasek <vorlon@debian.org>  Sun, 29 Apr 2007 22:03:58 -0700
+
+openmpi (1.1-2.4) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * 0-day alpha porter upload.
+  * Fix wrong inline assembler check on alpha: 'zero' is not recognized
+    as a mnemonic for $31 with binutils.  This broken check resulted
+    in various atomic operations remaining undefined, leading to a build
+    failure on alpha.  Likewise, fix the inline assembly provided in
+    opal/include/opal/sys/alpha/atomic.h so that it's valid under GNU
+    binutils.  Closes: #384792.
+
+ -- Steve Langasek <vorlon@debian.org>  Sun, 29 Apr 2007 02:27:51 -0700
+
+openmpi (1.1-2.3) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * Add conflicts between openmpi-dev and libopal-dev, pgapack.
+    Closes: #404003, #404026
+
+ -- Andreas Barth <aba@not.so.argh.org>  Fri, 22 Dec 2006 13:57:13 +0000
+
+openmpi (1.1-2.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Remove --host=* from debian/rules to make autoconf not enable
+    cross-building mode.  Thanks to Steve Langasek for pointing this out.
+    Closes: #392633.
+   
+ -- Mark Hymers <mark@hymers.org.uk>  Sun, 15 Oct 2006 00:46:11 +0100
+
+openmpi (1.1-2.1) unstable; urgency=high
+
+  * NMU
+  * Make sparc build UltraSPARC-only, since upstream seems to have
+    dropped support for 32-bit machines.  closes: #386491.
+
+ -- Clint Adams <schizo@debian.org>  Tue, 26 Sep 2006 00:31:36 -0400
+
+openmpi (1.1-2) unstable; urgency=low
+
+  * Apply patch by Tilman Koschnick <til@subnetz.org> to add a new package
+    with debugging symbols (Closes: #383997).
+
+ -- Florian Ragwitz <rafl@debian.org>  Wed, 23 Aug 2006 12:43:16 +0200
+
+openmpi (1.1-1) unstable; urgency=low
+
+  * New upstream release.
+  * Applied patch by dann frazier <dannf@debian.org> to fix an implicit
+    pointer conversion on 64bit platforms (Closes: #377725).
+  * Fixed mix-up in package descriptions (Closes: #379594).
+  * Use the alternatives system for the mpi* executables in openmpi-bin
+    (Closes: #377297).
+
+ -- Florian Ragwitz <rafl@debian.org>  Mon,  7 Aug 2006 16:57:42 +0200
+
+openmpi (1.0.2-1) unstable; urgency=low
+
+  * Initial release (Closes: #340426).
+
+ -- Florian Ragwitz <rafl@debian.org>  Fri,  6 Jan 2006 15:13:31 +0100
+
diff --git a/compat b/compat
new file mode 100644 (file)
index 0000000..45a4fb7
--- /dev/null
+++ b/compat
@@ -0,0 +1 @@
+8
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..33ea6c5
--- /dev/null
+++ b/control
@@ -0,0 +1,133 @@
+Source: openmpi
+Section: net
+Priority: extra
+Maintainer: Debian Open MPI Maintainers <pkg-openmpi-maintainers@lists.alioth.debian.org>
+Uploaders: Manuel Prinz <manuel@debian.org>, Sylvestre Ledru <sylvestre@debian.org>,
+  Alastair McKinstry <mckinstry@debian.org>
+Build-Depends: dpkg-dev (>= 1.16.1~), debhelper (>= 8.0.0~),
+ libibverbs-dev (>= 1.1.1) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
+ gfortran, gcc (>= 4:4.1.2), chrpath, libhwloc-dev,
+ libcr-dev [amd64 armel armhf i386 powerpc], libtool, libltdl-dev,
+ libnuma-dev [amd64 i386 ia64 mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc ppc64el], autoconf (>= 2.59),
+ automake
+Build-Conflicts: libopenmpi1.3
+Standards-Version: 3.9.6
+Homepage: http://www.open-mpi.org/
+Vcs-Svn: svn://svn.debian.org/svn/pkg-openmpi/openmpi/trunk/
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/
+
+Package: openmpi-bin
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el 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]
+Description: high performance message passing library -- binaries
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ Features:
+  * Full MPI-2 standards conformance
+  * Thread safety and concurrency
+  * Dynamic process spawning
+  * High performance on all platforms
+  * Reliable and fast job management
+  * Network and process fault tolerance
+  * Support network heterogeneity
+  * Single library supports all networks
+  * Run-time instrumentation
+  * Many job schedulers supported
+  * Internationalized error messages
+  * Component-based design, documented APIs
+ .
+ This package contains the Open MPI utility programs.
+
+Package: libopenmpi-dev
+Section: libdevel
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el 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
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ This package contains the header files and compiler wrappers which are needed
+ to compile and link programs against libopenmpi.
+
+Package: libopenmpi1.6
+Section: libs
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el 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)
+Breaks: openmpi-checkpoint (<< 1.6.5-1)
+Description: high performance message passing library -- shared library
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ This package contains the Open MPI shared libraries.
+
+Package: openmpi-common
+Architecture: all
+Depends: ${misc:Depends}
+Conflicts: openmpi-common
+Description: high performance message passing library -- common files
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ This package contains platform independent files for Open MPI.
+
+Package: openmpi-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}
+Conflicts: mpi-doc, lam-mpidoc, lam4-dev, openmpi-mpidoc, openmpi-doc
+Replaces: openmpi-checkpoint (<< 1.6.5-1)
+Breaks: openmpi-checkpoint (<< 1.6.5-1)
+Description: high performance message passing library -- man pages
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ This package contains man pages describing the Message Passing Interface
+ standard.
+
+Package: libopenmpi1.6-dbg
+Section: debug
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 powerpc powerpcspe ppc64 ppc64el 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
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ This package contains debugging symbols for Open MPI.
+
+Package: openmpi-checkpoint
+Architecture: amd64 armel armhf i386 powerpc
+Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-bin (= ${binary:Version}), blcr-util, libopenmpi1.6 (= ${binary:Version})
+Conflicts: openmpi-checkpoint
+Description: high performance message passing library -- checkpoint support
+ Open MPI is a project combining technologies and resources from several other
+ projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best
+ MPI library available. A completely new MPI-2 compliant implementation, Open
+ MPI offers advantages for system and software vendors, application developers
+ and computer science researchers.
+ .
+ This package contains binaries needed for checkpointing Open MPI applications.
diff --git a/copyright b/copyright
new file mode 100644 (file)
index 0000000..d56fe25
--- /dev/null
+++ b/copyright
@@ -0,0 +1,166 @@
+This package was debianized by Florian Ragwitz <rafl@debian.org> on
+Fri,  6 Jan 2006 15:13:31 +0100.
+
+It was downloaded from http://open-mpi.org/
+
+Copyright Holder:
+
+Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
+                        University Research and Technology
+                        Corporation.  All rights reserved.
+Copyright (c) 2004-2010 The University of Tennessee and The University
+                        of Tennessee Research Foundation.  All rights
+                        reserved.
+Copyright (c) 2004-2010 High Performance Computing Center Stuttgart, 
+                        University of Stuttgart.  All rights reserved.
+Copyright (c) 2004-2008 The Regents of the University of California.
+                        All rights reserved.
+Copyright (c) 2006-2010 Los Alamos National Security, LLC.  All rights
+                        reserved. 
+Copyright (c) 2006-2010 Cisco Systems, Inc.  All rights reserved.
+Copyright (c) 2006-2010 Voltaire, Inc. All rights reserved.
+Copyright (c) 2006-2010 Sandia National Laboratories. All rights reserved.
+Copyright (c) 2006-2010 Sun Microsystems, Inc.  All rights reserved.
+                        Use is subject to license terms.
+Copyright (c) 2006-2010 The University of Houston. All rights reserved.
+Copyright (c) 2006-2009 Myricom, Inc.  All rights reserved.
+Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
+Copyright (c) 2007-2008 IBM Corporation.  All rights reserved.
+Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing 
+                        Centre, Federal Republic of Germany
+Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
+Copyright (c) 2007      Evergrid, Inc. All rights reserved.
+Copyright (c) 2008      Institut National de Recherche en
+                        Informatique.  All rights reserved.
+Copyright (c) 2007      Lawrence Livermore National Security, LLC.
+                        All rights reserved.
+Copyright (c) 2007-2009 Mellanox Technologies.  All rights reserved.
+Copyright (c) 2006-2010 QLogic Corporation.  All rights reserved.
+Copyright (c) 2008-2010 Oak Ridge National Labs.  All rights reserved.
+Copyright (c) 2006-2010 Oracle and/or its affiliates.  All rights reserved.
+Copyright (c) 2009      Bull SAS.  All rights reserved.
+Copyright (c) 2010      ARM ltd.  All rights reserved.
+
+License:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer listed
+  in this license in the documentation and/or other materials
+  provided with the distribution.
+
+- Neither the name of the copyright holders nor the names of its
+  contributors may be used to endorse or promote products derived from
+  this software without specific prior written permission.
+
+The copyright holders provide no reassurances that the source code
+provided does not infringe any patent, copyright, or any other
+intellectual property rights of third parties.  The copyright holders
+disclaim any liability to any recipient for claims brought against
+recipient by any third party for infringement of that parties
+intellectual property rights.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ROMIO (Files under ./ompi/mca/io/romio/romio/)
+=====
+
+                               COPYRIGHT
+
+The following is a notice of limited availability of the code and
+disclaimer, which must be included in the prologue of the code and in
+all source listings of the code.
+
+Copyright (C) 1997 University of Chicago
+
+Permission is hereby granted to use, reproduce, prepare derivative
+works, and to redistribute to others. 
+
+The University of Chicago makes no representations as to the suitability, 
+operability, accuracy, or correctness of this software for any purpose. 
+It is provided "as is" without express or implied warranty. 
+
+This software was authored by:
+Rajeev Thakur: (630) 252-1682; thakur@mcs.anl.gov
+Mathematics and Computer Science Division
+Argonne National Laboratory, Argonne IL 60439, USA
+
+
+                           GOVERNMENT LICENSE
+
+Portions of this material resulted from work developed under a U.S.
+Government Contract and are subject to the following license: the
+Government is granted for itself and others acting on its behalf a
+paid-up, nonexclusive, irrevocable worldwide license in this computer
+software to reproduce, prepare derivative works, and perform publicly
+and display publicly. 
+
+
+ptmalloc2 (Files under ./opal/mca/memory/ptmalloc2/)
+=========
+
+Copyright (C) 2001 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+On Debian systems, the complete text of the GNU Library General Public License
+can be found in /usr/share/common-licenses/LGPL-2.
+
+
+GNU Libltdl
+===========
+
+Copyright Holder:
+
+Copyright (C) 1998-2007 Free Software Foundation, Inc.
+
+License:
+
+GNU Libltdl is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+As a special exception to the GNU Lesser General Public License,
+if you distribute this file as part of a program or library that
+is built using GNU Libtool, you may include this file under the
+same distribution terms that you use for the rest of that program.
+
+GNU Libltdl is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with GNU Libltdl; see the file COPYING.LIB.  If not, a
+copy can be downloaded from  http://www.gnu.org/licenses/lgpl.html,
+or obtained by writing to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
diff --git a/libopenmpi-dev.README.Debian b/libopenmpi-dev.README.Debian
new file mode 100644 (file)
index 0000000..cb682dc
--- /dev/null
@@ -0,0 +1,26 @@
+Open MPI for Debian - Developer Notes
+-------------------------------------
+
+MPI Alternatives
+----------------
+
+The current Open MPI version of Debian uses the Debian Alternatives system.
+Although Open MPI might replace most of the existing MPI implementations in the
+future (see http://www.open-mpi.org/faq/?category=general#why), we decided to
+not affect any other MPI implementation already installed on your system.
+
+You can setup Open MPI as default MPI implementation by selecting openmpi as
+the "mpi" alternative:
+
+  update-alternatives --config mpi
+
+Please note that there is a bug in update-alternatives (namely #388313) that
+may cause trouble when you install several development packages of other
+MPI implementations, i.e. LAM or MPICH.
+
+If you would like to build Debian packages that link against multiple MPI 
+implementations, we recommend to point your build system to the locations
+under /usr/lib instead of relying on update-alternatives. This may also allow
+parallel builds.
+
+ -- Debian Open MPI Team <pkg-openmpi-maintainers@lists.alioth.debian.org>, Mon, 21 Jul 2008 16:34:30 +0200
diff --git a/libopenmpi-dev.install b/libopenmpi-dev.install
new file mode 100644 (file)
index 0000000..7591814
--- /dev/null
@@ -0,0 +1,35 @@
+## Compiler wrappers (symlinks) and man pages
+usr/bin/mpic++.openmpi
+usr/share/man/man1/mpic++.openmpi.1
+usr/bin/mpicc.openmpi
+usr/share/man/man1/mpicc.openmpi.1
+usr/bin/mpiCC.openmpi
+# NOTE: mpiCC.openmpi.1 is installed as symlink
+usr/bin/mpicxx.openmpi
+usr/share/man/man1/mpicxx.openmpi.1
+usr/bin/mpif77.openmpi
+usr/share/man/man1/mpif77.openmpi.1
+usr/bin/mpif90.openmpi
+usr/share/man/man1/mpif90.openmpi.1
+usr/bin/opalc++
+# usr/share/man/man1/opalc++.1
+# NOTE: opalc++.1 is not provided upstream in 1.5.4
+usr/bin/opalcc
+usr/share/man/man1/opalcc.1
+usr/bin/ortec++
+# usr/share/man/man1/ortec++.1
+usr/bin/ortecc
+# usr/share/man/man1/ortecc.1
+usr/bin/orteCC
+# Note: There's no man page for ortecc
+## Wrappers and man pages
+usr/bin/opal_wrapper
+usr/share/man/man1/opal_wrapper.1
+usr/bin/orte_wrapper_script
+# NOTE: There's no man page for opal_wrapper_script (upstream, lintian warning)
+## Library headers
+usr/lib/openmpi/include/*
+## .so symlinks
+usr/lib/openmpi/lib/*.so
+## pkg-config .pc files
+usr/lib/openmpi/lib/pkgconfig/*.pc
diff --git a/libopenmpi-dev.links b/libopenmpi-dev.links
new file mode 100644 (file)
index 0000000..6614297
--- /dev/null
@@ -0,0 +1,18 @@
+## Man pages (link provided by upstream, needs recreation because of renaming):
+usr/share/man/man1/mpic++.openmpi.1     usr/share/man/man1/mpiCC.openmpi.1
+# Missing links
+usr/share/man/man1/opal_wrapper.1      usr/share/man/man1/opalCC.1
+usr/share/man/man1/opal_wrapper.1      usr/share/man/man1/opalc++.1
+usr/share/man/man1/opal_wrapper.1      usr/share/man/man1/orteCC.1
+usr/share/man/man1/opal_wrapper.1      usr/share/man/man1/ortec++.1
+usr/share/man/man1/opal_wrapper.1      usr/share/man/man1/ortecc.1
+## SONAME symlinks
+usr/lib/libmca_common_sm.so.3  usr/lib/libmca_common_sm.so
+usr/lib/libmpi_cxx.so.1                usr/lib/libmpi_cxx.so
+usr/lib/libmpi_f77.so.1                usr/lib/libmpi_f77.so
+usr/lib/libmpi_f90.so.1                usr/lib/libmpi_f90.so
+usr/lib/libompitrace.so.0      usr/lib/libompitrace.so
+usr/lib/libopen-pal.so.4       usr/lib/libopen-pal.so
+usr/lib/libopen-rte.so.4       usr/lib/libopen-rte.so
+## Convenience link for header files, see bug #493875
+usr/lib/openmpi/include/       usr/include/openmpi
diff --git a/libopenmpi-dev.postinst b/libopenmpi-dev.postinst
new file mode 100644 (file)
index 0000000..c6111a3
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+set -e
+
+update-alternatives \
+       --install /usr/include/mpi mpi /usr/lib/openmpi/include 50 \
+       --slave /usr/lib/libmpi.so libmpi.so /usr/lib/openmpi/lib/libmpi.so \
+       --slave /usr/lib/libmpi++.so libmpi++.so /usr/lib/openmpi/lib/libmpi_cxx.so \
+       --slave /usr/lib/libmpif77.so libmpif77.so /usr/lib/openmpi/lib/libmpi_f77.so \
+       --slave /usr/lib/libmpif90.so libmpif90.so /usr/lib/openmpi/lib/libmpi_f90.so \
+       --slave /usr/bin/mpicc mpicc /usr/bin/mpicc.openmpi \
+       --slave /usr/bin/mpic++ mpic++ /usr/bin/mpic++.openmpi \
+       --slave /usr/bin/mpicxx mpicxx /usr/bin/mpic++.openmpi \
+       --slave /usr/bin/mpiCC mpiCC /usr/bin/mpic++.openmpi \
+       --slave /usr/bin/mpif77 mpif77 /usr/bin/mpif77.openmpi \
+       --slave /usr/bin/mpif90 mpif90 /usr/bin/mpif90.openmpi \
+       --slave /usr/share/man/man1/mpicc.1.gz mpicc.1.gz /usr/share/man/man1/mpicc.openmpi.1.gz \
+       --slave /usr/share/man/man1/mpic++.1.gz mpic++.1.gz /usr/share/man/man1/mpic++.openmpi.1.gz \
+       --slave /usr/share/man/man1/mpicxx.1.gz mpicxx.1.gz /usr/share/man/man1/mpicxx.openmpi.1.gz \
+       --slave /usr/share/man/man1/mpiCC.1.gz mpiCC.1.gz /usr/share/man/man1/mpiCC.openmpi.1.gz \
+       --slave /usr/share/man/man1/mpif77.1.gz mpif77.1.gz /usr/share/man/man1/mpif77.openmpi.1.gz \
+       --slave /usr/share/man/man1/mpif90.1.gz mpif90.1.gz /usr/share/man/man1/mpif90.openmpi.1.gz
+
+#DEBHELPER#
+
+exit 0
diff --git a/libopenmpi-dev.preinst b/libopenmpi-dev.preinst
new file mode 100644 (file)
index 0000000..ce10959
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# mpicc seemed to be used as a master alternative by some MPI package. But
+# currently, all MPI packages have the mpicc alternative installed as a slave
+# link. We remove the link here in order to resolve bugs #531184 and #532910.
+
+update-alternatives --quiet --remove-all mpicc >/dev/null 2>&1 || true
+update-alternatives --quiet --remove-all mpiCC >/dev/null 2>&1 || true
+
+#DEBHELPER#
+
+exit 0
diff --git a/libopenmpi-dev.prerm b/libopenmpi-dev.prerm
new file mode 100644 (file)
index 0000000..1f97684
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" != "upgrade" ]; then
+       update-alternatives --remove mpi /usr/lib/openmpi/include
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/libopenmpi1.6.install b/libopenmpi1.6.install
new file mode 100644 (file)
index 0000000..3bb4516
--- /dev/null
@@ -0,0 +1,13 @@
+## Shared libraries
+usr/lib/openmpi/lib/libmca_common_sm.so.3.0.1
+usr/lib/openmpi/lib/libmpi_cxx.so.1.0.2
+usr/lib/openmpi/lib/libmpi_f77.so.1.0.7
+usr/lib/openmpi/lib/libmpi_f90.so.1.3.0
+usr/lib/openmpi/lib/libmpi.so.1.0.8
+usr/lib/openmpi/lib/libompitrace.so.0.0.0
+usr/lib/openmpi/lib/libopen-pal.so.4.0.5
+usr/lib/openmpi/lib/libopen-rte.so.4.0.3
+## Plugins
+usr/lib/openmpi/lib/openmpi/*.so
+## Other files
+usr/lib/openmpi/lib/mpi.mod
diff --git a/libopenmpi1.6.links b/libopenmpi1.6.links
new file mode 100644 (file)
index 0000000..bb4a6ea
--- /dev/null
@@ -0,0 +1,18 @@
+# Compatibility links to /usr/bin
+usr/lib/openmpi/lib/libmca_common_sm.so.3.0.1   usr/lib/libmca_common_sm.so.3.0.1
+usr/lib/openmpi/lib/libmpi_cxx.so.1.0.2         usr/lib/libmpi_cxx.so.1.0.2
+usr/lib/openmpi/lib/libmpi_f77.so.1.0.7         usr/lib/libmpi_f77.so.1.0.7
+usr/lib/openmpi/lib/libmpi_f90.so.1.3.0         usr/lib/libmpi_f90.so.1.3.0
+usr/lib/openmpi/lib/libmpi.so.1.0.8             usr/lib/libmpi.so.1.0.8
+usr/lib/openmpi/lib/libompitrace.so.0.0.0      usr/lib/libompitrace.so.0.0.0
+usr/lib/openmpi/lib/libopen-pal.so.4.0.5        usr/lib/libopen-pal.so.4.0.5
+usr/lib/openmpi/lib/libopen-rte.so.4.0.3        usr/lib/libopen-rte.so.4.0.3
+# SONAME symlinks
+usr/lib/libmca_common_sm.so.3.0.0               usr/lib/libmca_common_sm.so.3
+usr/lib/libmpi_cxx.so.1.0.2                     usr/lib/libmpi_cxx.so.1
+usr/lib/libmpi_f77.so.1.0.7                     usr/lib/libmpi_f77.so.1
+usr/lib/libmpi_f90.so.1.3.0                     usr/lib/libmpi_f90.so.1
+usr/lib/libmpi.so.1.0.8                         usr/lib/libmpi.so.1
+usr/lib/libompitrace.so.0.0.0                  usr/lib/libompitrace.so.0
+usr/lib/libopen-pal.so.4.0.5                    usr/lib/libopen-pal.so.5
+usr/lib/libopen-rte.so.4.0.3                    usr/lib/libopen-rte.so.4
diff --git a/openmpi-bin.README.Debian b/openmpi-bin.README.Debian
new file mode 100644 (file)
index 0000000..5b25864
--- /dev/null
@@ -0,0 +1,60 @@
+Open MPI for Debian
+-------------------
+
+InfiniBand support
+------------------
+
+This section provides information about warning messages when OpenFabrics
+hardware isn't present. This is fixed since version 1.2.6-3. The information
+provided here is only for historical reasons.
+
+InfiniBand support is build into the package and enabled by default. On
+systems that don't have InfiniBand, a warning like this will be issued:
+
+  libibverbs: Fatal: couldn't read uverbs ABI version.
+  --------------------------------------------------------------------------
+  [0,1,2]: OpenIB on host xyz was unable to find any HCAs.
+  Another transport will be used instead, although this may result in 
+  lower performance.
+  --------------------------------------------------------------------------
+
+To get rid of the warning, you can either disable the use of the "openib" BTL
+in /etc/openmpi/openmpi-mca-params.conf by adding a line that reads
+
+  btl = ^openib
+
+or pass "--mca btl ^openib" to mpirun or mpiexec.
+
+Please see http://bugs.debian.org/439730 for a discussion on that topic.
+
+
+Thread support
+--------------
+
+Thread support was enabled until package version 1.2.3-3. It is known to be
+broken in upstream and led to segfaults on several architectures.
+
+We disabled threading for this reason in 1.2.3-4 and will re-enable it as soon
+as it is known to be working, probably in the 1.3 branch of Open MPI. Please
+see http://bugs.debian.org/435581 for a discussion of this issue.
+
+
+MPI Alternatives
+----------------
+
+The current Open MPI version of Debian uses the Debian Alternatives system.
+Open MPI is considered the default MPI implementation in Debian. MPICH2 is
+also available. You can check which MPI is the default on your system with
+
+  update-alternatives --list mpirun
+
+and list all installed implementations with
+
+  update-alternatives --display mpirun
+
+If you have several implementations installed and Open MPI is not the default
+on your system, you can enable it explicitly with
+
+  update-alternatives --set mpirun /usr/bin/mpirun.openmpi
+
+ -- Debian Open MPI Team <pkg-openmpi-maintainers@lists.alioth.debian.org>, Tue, 05 Jan 2010 14:17:49 +0100
diff --git a/openmpi-bin.install b/openmpi-bin.install
new file mode 100644 (file)
index 0000000..9301755
--- /dev/null
@@ -0,0 +1,19 @@
+## Configuration files
+etc/openmpi/*
+## Executables
+usr/bin/ompi-clean
+usr/bin/ompi_info
+usr/bin/ompi-iof
+usr/bin/ompi-ps
+usr/bin/ompi-server
+usr/bin/orte-clean
+usr/bin/orted
+usr/bin/orte-iof
+usr/bin/orte-ps
+usr/bin/orterun
+usr/bin/ompi-probe
+usr/bin/ompi-profiler
+usr/bin/ompi-top
+# orte-bootproxy.sh was renamed to orte-bootproxy in debian/rules
+usr/bin/orte-bootproxy
+usr/bin/orte-top
diff --git a/openmpi-bin.links b/openmpi-bin.links
new file mode 100644 (file)
index 0000000..d6da941
--- /dev/null
@@ -0,0 +1,3 @@
+usr/bin/orterun         usr/bin/mpirun.openmpi
+usr/bin/orterun         usr/bin/mpiexec.openmpi
+usr/share/man/man1/mpiexec.openmpi.1   usr/share/man/man1/mpirun.openmpi.1
diff --git a/openmpi-bin.manpages b/openmpi-bin.manpages
new file mode 100644 (file)
index 0000000..2c5aa1a
--- /dev/null
@@ -0,0 +1,17 @@
+debian/tmp/usr/share/man/man1/ompi-clean.1
+debian/tmp/usr/share/man/man1/ompi_info.1
+debian/tmp/usr/share/man/man1/ompi-iof.1
+debian/tmp/usr/share/man/man1/ompi-probe.1
+debian/tmp/usr/share/man/man1/ompi-profiler.1
+debian/tmp/usr/share/man/man1/ompi-ps.1
+debian/tmp/usr/share/man/man1/ompi-server.1
+debian/tmp/usr/share/man/man1/ompi-top.1
+debian/tmp/usr/share/man/man1/orte-clean.1
+debian/tmp/usr/share/man/man1/orted.1
+debian/tmp/usr/share/man/man1/orte-iof.1
+debian/tmp/usr/share/man/man1/orte-ps.1
+debian/tmp/usr/share/man/man1/orte-top.1
+# Note: Those are identical and could by symlinked
+debian/tmp/usr/share/man/man1/orterun.1
+debian/tmp/usr/share/man/man1/mpiexec.openmpi.1
+debian/tmp/usr/share/man/man1/mpirun.openmpi.1
diff --git a/openmpi-bin.postinst b/openmpi-bin.postinst
new file mode 100644 (file)
index 0000000..cb3456b
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+   configure)
+      # Continue below
+      ;;
+   abort-upgrade|abort-remove|abort-deconfigure)
+      exit 0;
+      ;;
+   *)
+      echo "postinst called with unknown argument \`$1'" >&2
+      exit 0;
+      ;;
+esac
+
+# so, we are running with $1 = configure
+# openmpi versions before 1.3.3-2 were using two alternatives where other
+# MPI implementations were using only one, which breaks. Clean up
+# our mess.
+if [ "$2" != "" ] && dpkg --compare-versions "$2" le "1.3.3-2"; then
+    update-alternatives --remove mpiexec /usr/bin/mpiexec.openmpi
+fi
+
+update-alternatives \
+       --install /usr/bin/mpirun mpirun /usr/bin/mpirun.openmpi 50 \
+       --slave /usr/share/man/man1/mpirun.1.gz mpirun.1.gz /usr/share/man/man1/mpirun.openmpi.1.gz \
+       --slave /usr/bin/mpiexec mpiexec /usr/bin/mpiexec.openmpi \
+       --slave /usr/share/man/man1/mpiexec.1.gz mpiexec.1.gz /usr/share/man/man1/mpiexec.openmpi.1.gz 
+
+#DEBHELPER#
+
+exit 0
diff --git a/openmpi-bin.prerm b/openmpi-bin.prerm
new file mode 100644 (file)
index 0000000..06b1f4e
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+
+if [ "$1" != "upgrade" ]; then
+       update-alternatives --remove mpirun /usr/bin/mpirun.openmpi
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/openmpi-checkpoint.install b/openmpi-checkpoint.install
new file mode 100644 (file)
index 0000000..bceebf8
--- /dev/null
@@ -0,0 +1,7 @@
+## Binaries
+usr/bin/ompi-checkpoint
+usr/bin/ompi-restart
+usr/bin/opal-checkpoint
+usr/bin/opal-restart
+usr/bin/orte-checkpoint
+usr/bin/orte-restart
diff --git a/openmpi-checkpoint.links b/openmpi-checkpoint.links
new file mode 100644 (file)
index 0000000..e446487
--- /dev/null
@@ -0,0 +1,2 @@
+#usr/bin/orte-checkpoint                       usr/bin/ompi-checkpoint
+#usr/bin/orte-restart                  usr/bin/ompi-restart
diff --git a/openmpi-checkpoint.manpages b/openmpi-checkpoint.manpages
new file mode 100644 (file)
index 0000000..2af65ea
--- /dev/null
@@ -0,0 +1,8 @@
+debian/tmp/usr/share/man/man1/ompi-checkpoint.1
+debian/tmp/usr/share/man/man1/ompi-restart.1
+debian/tmp/usr/share/man/man1/opal-checkpoint.1
+debian/tmp/usr/share/man/man1/opal-restart.1
+debian/tmp/usr/share/man/man1/orte-checkpoint.1
+debian/tmp/usr/share/man/man1/orte-restart.1
+debian/tmp/usr/share/man/man7/ompi_crcp.7
+debian/tmp/usr/share/man/man7/opal_crs.7
diff --git a/openmpi-common.install b/openmpi-common.install
new file mode 100644 (file)
index 0000000..62dc9f1
--- /dev/null
@@ -0,0 +1,4 @@
+## Aggregate MCA (AMCA) Parameter Sets
+usr/share/openmpi/amca-param-sets/*
+## Help files and other stuff
+usr/share/openmpi/*
diff --git a/openmpi-common.links b/openmpi-common.links
new file mode 100644 (file)
index 0000000..8193e98
--- /dev/null
@@ -0,0 +1,6 @@
+usr/share/openmpi/mpic++-wrapper-data.txt      usr/share/openmpi/mpic++.openmpi-wrapper-data.txt
+usr/share/openmpi/mpicc-wrapper-data.txt       usr/share/openmpi/mpicc.openmpi-wrapper-data.txt
+usr/share/openmpi/mpicxx-wrapper-data.txt      usr/share/openmpi/mpicxx.openmpi-wrapper-data.txt
+usr/share/openmpi/mpiCC-wrapper-data.txt       usr/share/openmpi/mpiCC.openmpi-wrapper-data.txt
+usr/share/openmpi/mpif77-wrapper-data.txt      usr/share/openmpi/mpif77.openmpi-wrapper-data.txt
+usr/share/openmpi/mpif90-wrapper-data.txt      usr/share/openmpi/mpif90.openmpi-wrapper-data.txt
diff --git a/openmpi-doc.install b/openmpi-doc.install
new file mode 100644 (file)
index 0000000..434e29a
--- /dev/null
@@ -0,0 +1,3 @@
+#usr/share/man/man7/orte_filem.7
+#usr/share/man/man7/orte_hosts.7
+#usr/share/man/man7/orte_snapc.7
diff --git a/openmpi-doc.manpages b/openmpi-doc.manpages
new file mode 100644 (file)
index 0000000..686a911
--- /dev/null
@@ -0,0 +1,4 @@
+debian/tmp/usr/share/man/man7/orte_filem.7
+debian/tmp/usr/share/man/man7/orte_hosts.7
+debian/tmp/usr/share/man/man7/orte_snapc.7
+debian/tmp/usr/share/man/man3/*
diff --git a/patches/alpha_badatomic.patch b/patches/alpha_badatomic.patch
new file mode 100644 (file)
index 0000000..40c9978
--- /dev/null
@@ -0,0 +1,26 @@
+Index: openmpi-1.6.5/opal/include/opal/sys/alpha/atomic.h
+===================================================================
+--- openmpi-1.6.5.orig/opal/include/opal/sys/alpha/atomic.h
++++ openmpi-1.6.5/opal/include/opal/sys/alpha/atomic.h
+@@ -96,9 +96,7 @@ static inline int opal_atomic_cmpset_32(
+                      "mov %3, %0              \n\t"
+                      "stl_c %0, %1            \n\t"
+                      "beq %0, 1b              \n\t"
+-                     "jmp 3f                  \n"
+-                     "2:  mov $31, %0         \n"
+-                     "3:                      \n"
++                     "2:                      \n"
+                      : "=&r" (ret), "+m" (*addr)
+                      : "r" (oldval), "r" (newval)
+                      : "memory");
+@@ -141,9 +139,7 @@ static inline int opal_atomic_cmpset_64(
+                         "mov %3, %0           \n\t"
+                         "stq_c %0, %1         \n\t"
+                         "beq %0, 1b           \n\t"
+-                        "jmp 3f               \n"
+-                        "2:  mov $31, %0      \n"
+-                        "3:                   \n"
++                        "2:                   \n"
+                         : "=&r" (ret), "+m" (*addr)
+                         : "r" (oldval), "r" (newval)
+                         : "memory");
diff --git a/patches/arm_detection.diff b/patches/arm_detection.diff
new file mode 100644 (file)
index 0000000..5a17541
--- /dev/null
@@ -0,0 +1,44 @@
+Index: openmpi-1.6.5/opal/config/opal_config_asm.m4
+===================================================================
+--- openmpi-1.6.5.orig/opal/config/opal_config_asm.m4  2013-07-01 09:47:08.000000000 +0200
++++ openmpi-1.6.5/opal/config/opal_config_asm.m4       2013-07-01 09:47:07.000000000 +0200
+@@ -900,7 +900,7 @@
+             OMPI_GCC_INLINE_ASSIGN='"bis [$]31,[$]31,%0" : "=&r"(ret)'
+             ;;
+-        armv7*)
++        armv7*|arm-*-linux-gnueabihf)
+             ompi_cv_asm_arch="ARM"
+             OPAL_ASM_SUPPORT_64BIT=1
+             OPAL_ASM_ARM_VERSION=7
+@@ -919,7 +919,7 @@
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+             ;;
+-        armv5*linux*|armv4*linux*)
++        armv5*linux*|armv4*linux*|arm-*-linux-gnueabi)
+             # uses Linux kernel helpers for some atomic operations
+             ompi_cv_asm_arch="ARM"
+             OPAL_ASM_SUPPORT_64BIT=0
+Index: openmpi-1.6.5/configure
+===================================================================
+--- openmpi-1.6.5.orig/configure       2013-07-01 09:47:08.000000000 +0200
++++ openmpi-1.6.5/configure    2013-07-01 09:47:08.000000000 +0200
+@@ -27192,7 +27192,7 @@
+             OMPI_GCC_INLINE_ASSIGN='"bis $31,$31,%0" : "=&r"(ret)'
+             ;;
+-        armv7*)
++        armv7*|arm-*-linux-gnueabihf)
+             ompi_cv_asm_arch="ARM"
+             OPAL_ASM_SUPPORT_64BIT=1
+             OPAL_ASM_ARM_VERSION=7
+@@ -27217,7 +27217,7 @@
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+             ;;
+-        armv5*linux*|armv4*linux*)
++        armv5*linux*|armv4*linux*|arm-*-linux-gnueabi)
+             # uses Linux kernel helpers for some atomic operations
+             ompi_cv_asm_arch="ARM"
+             OPAL_ASM_SUPPORT_64BIT=0
diff --git a/patches/arm_support b/patches/arm_support
new file mode 100644 (file)
index 0000000..18fe402
--- /dev/null
@@ -0,0 +1,316 @@
+## Description: Support building for arm 
+## Origin/Author: jani.monoses@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"],
diff --git a/patches/basic-arm64-support.diff b/patches/basic-arm64-support.diff
new file mode 100644 (file)
index 0000000..b282c49
--- /dev/null
@@ -0,0 +1,313 @@
+From 2070e8d9dd894da7d5f188c752212d2b2ac6c3c4 Mon Sep 17 00:00:00 2001
+From: Leif Lindholm <leif.lindholm@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
diff --git a/patches/build_hurd b/patches/build_hurd
new file mode 100644 (file)
index 0000000..757a467
--- /dev/null
@@ -0,0 +1,292 @@
+Description: Fix build problems on hurd-i386
+ This patch allows Open MPI to build on Debian GNU/HURD.
+ .
+ Also, the memory:linux MCA component is disabled, since its use of POSIX API
+ in malloc hooks called very early at startup causes troubles.
+Author: Pino Toscano <pino@debian.org>
+Forwarded: partially
+Last-Update: 2013-08-21
+
+--- a/ompi/runtime/ompi_mpi_abort.c
++++ b/ompi/runtime/ompi_mpi_abort.c
+@@ -53,10 +53,11 @@
+                bool kill_remote_of_intercomm)
+ {
+     int count = 0, i;
+-    char *msg, *host, hostname[MAXHOSTNAMELEN];
++    char *msg, *host = NULL;
+     pid_t pid = 0;
+     orte_process_name_t *abort_procs;
+     orte_std_cntr_t nabort_procs;
++    bool free_host = false;
+     /* Protection for recursive invocation */
+     if (have_been_invoked) {
+@@ -70,8 +71,12 @@
+     if (orte_initialized) {
+         host = orte_process_info.nodename;
+     } else {
+-        gethostname(hostname, sizeof(hostname));
+-        host = hostname;
++        size_t host_length = 128;
++        do {
++            host_length *= 2;
++            host = realloc(host, host_length);
++        } while ((gethostname(host, host_length) == -1) && (errno == ENAMETOOLONG));
++        free_host = true;
+     }
+     pid = getpid();
+--- a/ompi/runtime/ompi_mpi_finalize.c
++++ b/ompi/runtime/ompi_mpi_finalize.c
+@@ -101,13 +101,18 @@
+         /* Note that if we're already finalized, we cannot raise an
+            MPI exception.  The best that we can do is write something
+            to stderr. */
+-        char hostname[MAXHOSTNAMELEN];
++        char *hostname = NULL;
++        size_t hostname_length = 128;
+         pid_t pid = getpid();
+-        gethostname(hostname, sizeof(hostname));
++        do {
++            hostname_length *= 2;
++            hostname = realloc(hostname, hostname_length);
++        } while ((gethostname(hostname, hostname_length) == -1) && (errno == ENAMETOOLONG));
+         orte_show_help("help-mpi-runtime.txt",
+                        "mpi_finalize:invoked_multiple_times",
+                        true, hostname, pid);
++        free(hostname);
+         return MPI_ERR_OTHER;
+     }
+--- a/opal/mca/base/mca_base_component_find.c
++++ b/opal/mca/base/mca_base_component_find.c
+@@ -208,11 +208,16 @@
+         }
+         if (opal_list_get_end(found_components) == item) {
+-            char h[MAXHOSTNAMELEN];
+-            gethostname(h, sizeof(h));
++            char *h = NULL;
++            size_t h_length = 128;
++            do {
++                h_length *= 2;
++                h = realloc(h, h_length);
++            } while ((gethostname(h, h_length) == -1) && (errno == ENAMETOOLONG));
+             opal_show_help("help-mca-base.txt", 
+                            "find-available:not-valid", true,
+                            h, type, requested_component_names[i]);
++            free(h);
+             return OPAL_ERR_NOT_FOUND;
+         }
+     }
+--- a/opal/mca/base/mca_base_param.c
++++ b/opal/mca/base/mca_base_param.c
+@@ -186,8 +186,14 @@
+     home = (char*)opal_home_directory();
+     
+     if(NULL == cwd) {
++#if !defined(MAXPATHLEN) && defined(__GLIBC__)
++        cwd = get_current_dir_name();
++        if( NULL == cwd)
++#else
+         cwd = (char *) malloc(sizeof(char) * MAXPATHLEN);
+-        if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) )) {
++        if( NULL == (cwd = getcwd(cwd, MAXPATHLEN) ))
++#endif
++        {
+             opal_output(0, "Error: Unable to get the current working directory\n");
+             cwd = strdup(".");
+         }
+--- a/opal/util/stacktrace.c
++++ b/opal/util/stacktrace.c
+@@ -437,8 +437,12 @@
+     mca_base_param_lookup_string (param, &string_value);
+     memset(&act, 0, sizeof(act));
++#ifdef SA_SIGINFO
+     act.sa_sigaction = show_stackframe;
+     act.sa_flags = SA_SIGINFO;
++#else
++    act.sa_handler = show_stackframe_handler;
++#endif
+ #ifdef SA_ONESHOT
+     act.sa_flags |= SA_ONESHOT;
+ #else
+--- a/orte/mca/odls/base/odls_base_default_fns.c
++++ b/orte/mca/odls/base/odls_base_default_fns.c
+@@ -1370,8 +1370,13 @@
+     orte_local_rank_t local_rank;
+     orte_node_rank_t node_rank;
+     char *pathenv = NULL, *mpiexec_pathenv = NULL;
++#if !defined(MAXPATHLEN) && defined(__GLIBC__)
++    char *basedir=NULL;
++    char *dir=NULL;
++#else
+     char basedir[MAXPATHLEN];
+     char dir[MAXPATHLEN];
++#endif
+     char **argvptr;
+     char *full_search;
+     char **argvsav=NULL;
+@@ -1388,7 +1393,11 @@
+      * bouncing around as we execute various apps, but we will always return
+      * to this place as our default directory
+      */
++#if !defined(MAXPATHLEN) && defined(__GLIBC__)
++    basedir = get_current_dir_name();
++#else
+     getcwd(basedir, sizeof(basedir));
++#endif
+     /* find the jobdat for this job */
+     jobdat = NULL;
+@@ -1621,7 +1630,11 @@
+          * again not match getcwd! This is beyond our control - we are only
+          * ensuring they start out matching.
+          */
++#if !defined(MAXPATHLEN) && defined(__GLIBC__)
++        dir = get_current_dir_name();
++#else
+         getcwd(dir, sizeof(dir));
++#endif
+         opal_setenv("PWD", dir, true, &app->env);
+         
+         /* Search for the OMPI_exec_path and PATH settings in the environment. */
+@@ -2118,6 +2131,10 @@
+  GETOUT:
+     opal_condition_signal(&orte_odls_globals.cond);
+     OPAL_THREAD_UNLOCK(&orte_odls_globals.mutex);
++#if !defined(MAXPATHLEN) && defined(__GLIBC__)
++    free(basedir);
++    free(dir);
++#endif
+     return rc;
+ }
+--- a/orte/orted/orted_main.c
++++ b/orte/orted/orted_main.c
+@@ -228,7 +228,8 @@
+     int ret = 0;
+     int fd;
+     opal_cmd_line_t *cmd_line = NULL;
+-    char log_file[PATH_MAX];
++    char *log_file = NULL;
++    size_t log_file_len;
+     char *jobidstring;
+     char *rml_uri;
+     int i;
+@@ -482,13 +483,16 @@
+         }
+         /* define a log file name in the session directory */
+-        snprintf(log_file, PATH_MAX, "output-orted-%s-%s.log",
++        log_file_len = 13 + strlen(jobidstring) + 1 + strlen(orte_process_info.nodename) + 4 + 1;
++        log_file = malloc(log_file_len);
++        snprintf(log_file, log_file_len, "output-orted-%s-%s.log",
+                  jobidstring, orte_process_info.nodename);
+         log_path = opal_os_path(false,
+                                 orte_process_info.tmpdir_base,
+                                 orte_process_info.top_session_dir,
+                                 log_file,
+                                 NULL);
++        free(log_file);
+         fd = open(log_path, O_RDWR|O_CREAT|O_TRUNC, 0640);
+         if (fd < 0) {
+--- a/orte/util/context_fns.c
++++ b/orte/util/context_fns.c
+@@ -55,10 +55,12 @@
+ {
+     bool good = true;
+     const char *tmp;
++#if 0 /* 'hostname' looks unused... */
+     char hostname[MAXHOSTNAMELEN];
+     
+     /* Use hostname in a few messages below */
+     gethostname(hostname, sizeof(hostname));
++#endif
+     
+     /* If we want to chdir and the chdir fails (for any reason -- such
+        as if the dir doesn't exist, it isn't a dir, we don't have
+--- a/opal/mca/pstat/darwin/configure.m4
++++ b/opal/mca/pstat/darwin/configure.m4
+@@ -23,9 +23,9 @@
+ # -----------------------------------------------------------
+ AC_DEFUN([MCA_pstat_darwin_CONFIG],[
+     OMPI_VAR_SCOPE_PUSH([paff_darwin_happy])
+-    # check to see if we have <mach/mach_host.h>
++    # check to see if we have <mach/clock.h>
+     # as this is a Darwin-specific thing
+-    AC_CHECK_HEADER([mach/mach_host.h], [paff_darwin_happy=yes], [paff_darwin_happy=no])
++    AC_CHECK_HEADER([mach/clock.h], [paff_darwin_happy=yes], [paff_darwin_happy=no])
+     AS_IF([test "$paff_darwin_happy" = "yes"], [$1], [$2])
+     OMPI_VAR_SCOPE_POP
+--- a/opal/mca/sysinfo/darwin/configure.m4
++++ b/opal/mca/sysinfo/darwin/configure.m4
+@@ -12,9 +12,9 @@
+ # -----------------------------------------------------------
+ AC_DEFUN([MCA_sysinfo_darwin_CONFIG],[
+     OMPI_VAR_SCOPE_PUSH([sysinfo_darwin_happy])
+-    # check to see if we have <mach/mach_host.h>
++    # check to see if we have <mach/clock.h>
+     # as this is a Darwin-specific thing
+-    AC_CHECK_HEADER([mach/mach_host.h], [sysinfo_darwin_happy=yes], [sysinfo_darwin_happy=no])
++    AC_CHECK_HEADER([mach/clock.h], [sysinfo_darwin_happy=yes], [sysinfo_darwin_happy=no])
+     AS_IF([test "$sysinfo_darwin_happy" = "yes"], [$1], [$2])
+     OMPI_VAR_SCOPE_POP
+--- a/opal/mca/shmem/mmap/shmem_mmap_module.c
++++ b/opal/mca/shmem/mmap/shmem_mmap_module.c
+@@ -61,6 +61,10 @@
+ /* for tons of debug output: -mca shmem_base_verbose 70 */
++#ifndef MAXHOSTNAMELEN
++# define MAXHOSTNAMELEN 256
++#endif
++
+ /* ////////////////////////////////////////////////////////////////////////// */
+ /*local functions */
+ /* local functions */
+--- a/opal/mca/shmem/posix/shmem_posix_common_utils.h
++++ b/opal/mca/shmem/posix/shmem_posix_common_utils.h
+@@ -45,6 +45,10 @@
+ OPAL_DECLSPEC extern int shmem_posix_shm_open(char *posix_file_name_buff,
+                                               size_t size);
++#ifndef MAXHOSTNAMELEN
++# define MAXHOSTNAMELEN 256
++#endif
++
+ END_C_DECLS
+ #endif /* OPAL_SHMEM_POSIX_COMMON_UTILS_H */
+--- a/opal/mca/shmem/sysv/shmem_sysv_module.c
++++ b/opal/mca/shmem/sysv/shmem_sysv_module.c
+@@ -65,6 +65,10 @@
+ /* for tons of debug output: -mca shmem_base_verbose 70 */
++#ifndef MAXHOSTNAMELEN
++# define MAXHOSTNAMELEN 256
++#endif
++
+ /* ////////////////////////////////////////////////////////////////////////// */
+ /* local functions */
+ static int
+--- a/opal/mca/memory/linux/configure.m4
++++ b/opal/mca/memory/linux/configure.m4
+@@ -58,6 +58,10 @@
+                  [memory_linux_ptmalloc2_happy=yes
+                   memory_linux_ummu_happy=no])])
++    AS_IF([echo "$host_os" | grep '^gnu' >/dev/null 2>/dev/null],
++          [memory_linux_ptmalloc2_happy=no
++           memory_linux_ummu_happy=no])
++
+     ######################################################################
+     # ptmalloc2
+     ######################################################################
diff --git a/patches/configure_arm_fix.patch b/patches/configure_arm_fix.patch
new file mode 100644 (file)
index 0000000..c6c67f3
--- /dev/null
@@ -0,0 +1,16 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+Index: openmpi-1.5.4/configure
+===================================================================
+--- openmpi-1.5.4.orig/configure       2011-08-18 16:49:03.000000000 +0300
++++ openmpi-1.5.4/configure    2012-01-20 18:12:48.959184193 +0200
+@@ -26943,7 +26943,7 @@
+             OMPI_GCC_INLINE_ASSIGN='"bis $31,$31,%0" : "=&r"(ret)'
+             ;;
+-        armv7*)
++        arm*)
+             ompi_cv_asm_arch="ARM"
+             OPAL_ASM_SUPPORT_64BIT=1
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
diff --git a/patches/fix-bashims.diff b/patches/fix-bashims.diff
new file mode 100644 (file)
index 0000000..06dac4b
--- /dev/null
@@ -0,0 +1,33 @@
+Index: openmpi1.6-1.6.3/orte/tools/orte-bootproxy/orte-bootproxy.sh
+===================================================================
+--- openmpi1.6-1.6.3.orig/orte/tools/orte-bootproxy/orte-bootproxy.sh  2012-04-03 16:30:31.000000000 +0200
++++ openmpi1.6-1.6.3/orte/tools/orte-bootproxy/orte-bootproxy.sh       2012-11-07 15:44:16.847838743 +0100
+@@ -4,7 +4,7 @@
+ # Copyright (c) 2009      Cisco Systems, Inc.  All rights reserved.
+ #
+-if (( $# < 1 )) ; then
++if test $# -lt 1; then
+     echo "orte-bootproxy.sh: for OMPI internal use only"
+     exit 1
+ fi
+@@ -69,12 +69,13 @@
+ fi
+ # push all MCA params to the environment
+-while [ "${var:0:5}" = "OMPI_" ]; do
+-    if [ "${var:5:6}" = "PREFIX" ]; then
+-        export LD_LIBRARY_PATH="${var:12}"/lib:$LD_LIBRARY_PATH
+-        export PATH="${var:12}"/bin:$PATH
+-    elif [ "${var:5:4}" = "WDIR" ]; then
+-        cd "${var:10}"
++while [ "$(echo $var | awk  '{ string=substr($0, 1, 5); print string; }' )" = "OMPI_" ]; do
++    if [ "$(echo $var | awk  '{ string=substr($0, 6, 6); print string; }' )" = "PREFIX" ]; then
++        TMP_PATH=$(echo $var | awk  '{ string=substr($0, 1, 12); print string; }' )
++        export LD_LIBRARY_PATH="$TMP_PATH"/lib:$LD_LIBRARY_PATH
++        export PATH="$TMP_PATH"/bin:$PATH
++    elif [ "$(echo $var | awk  '{ string=substr($0, 5, 4); print string; }' )" = "WDIR" ]; then
++        cd "$(echo $var | awk  '{ string=substr($0, 1, 10); print string; }' )"
+     else
+         export $var
+     fi
diff --git a/patches/fix-fakeroot-execution.patch b/patches/fix-fakeroot-execution.patch
new file mode 100644 (file)
index 0000000..dc9dcfe
--- /dev/null
@@ -0,0 +1,43 @@
+Description: If running under Debian fakeroot then its important
+ that this hook is disabled; a new stat check was introduced in
+ 1.5.x which preceeds the FAKEROOT check resulting in a SEGFAULT.
+Author: James Page <james.page@ubuntu.com>
+Origin: https://svn.open-mpi.org/trac/ompi/changeset/21489
+
+Index: openmpi-1.5.4/opal/mca/memory/linux/hooks.c
+===================================================================
+--- openmpi-1.5.4.orig/opal/mca/memory/linux/hooks.c    2012-02-15 12:59:39.986314651 +0000
++++ openmpi-1.5.4/opal/mca/memory/linux/hooks.c 2012-02-15 13:14:57.744722517 +0000
+@@ -738,15 +738,6 @@
+     check_result_t r1, r2, lp, lpp;
+     bool want_rcache = false, found_driver = false;
+-    /* First, check if ummunotify is present on the system. If it is,
+-       then we don't need to do the following ptmalloc2 hacks.
+-       open/mmap on the device may fail during init, but if /dev/ummunotify
+-       exists, we assume that the user/administrator *wants* to use
+-       ummunotify. */
+-    if (stat("/dev/ummunotify", &st) == 0) {
+-        return;
+-    }
+-
+     /* Yes, checking for an MPI MCA parameter here is an abstraction
+        violation.  Cope.  Yes, even checking for *any* MCA parameter
+        here (without going through the MCA param API) is an
+@@ -769,6 +760,15 @@
+         return;
+     }
++    /* Next, check if ummunotify is present on the system. If it is,
++       then we don't need to do the following ptmalloc2 hacks.
++       open/mmap on the device may fail during init, but if /dev/ummunotify
++       exists, we assume that the user/administrator *wants* to use
++       ummunotify. */
++    if (stat("/dev/ummunotify", &st) == 0) {
++        return;
++    }
++
+     /* Look for sentinel files (directories) to see if various network
+        drivers are loaded (yes, I know, further abstraction
+        violations...).
+
diff --git a/patches/fix-testsuite-compile b/patches/fix-testsuite-compile
new file mode 100644 (file)
index 0000000..c12fca4
--- /dev/null
@@ -0,0 +1,12 @@
+--- ./ompi/debuggers/Makefile.am.orig  2013-08-17 14:22:15.400508429 +0200
++++ ./ompi/debuggers/Makefile.am       2013-08-17 14:22:23.472550111 +0200
+@@ -21,9 +21,6 @@
+ pkglib_LTLIBRARIES = libompi_dbg_msgq.la
+ check_PROGRAMS = predefined_gap_test
+-if OPAL_HAVE_DLOPEN
+-check_PROGRAMS += dlopen_test
+-endif
+ TESTS = $(check_PROGRAMS)
diff --git a/patches/manpage_macros b/patches/manpage_macros
new file mode 100644 (file)
index 0000000..2a01c28
--- /dev/null
@@ -0,0 +1,16 @@
+Description: Fix problems in manpages
+ In some man page headers, a macro (-*-) is used which makes lintian
+  choke and probably should not be there anyway.
+Author: Manuel Prinz <manuel@debian.org>
+Forwarded: yes
+Last-Update: 2011-09-13
+
+Index: openmpi-1.6.5/orte/tools/orterun/orterun.1in
+===================================================================
+--- openmpi-1.6.5.orig/orte/tools/orterun/orterun.1in  2013-07-01 09:46:41.000000000 +0200
++++ openmpi-1.6.5/orte/tools/orterun/orterun.1in       2013-07-01 09:47:02.000000000 +0200
+@@ -1,4 +1,3 @@
+-.\" -*- nroff -*-
+ .\" Copyright (c) 2009      Cisco Systems, Inc.  All rights reserved.
+ .\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+ .\" Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
diff --git a/patches/mips-detection.diff b/patches/mips-detection.diff
new file mode 100644 (file)
index 0000000..0c065be
--- /dev/null
@@ -0,0 +1,39 @@
+Description: Support detection of mips, mipsel, mips64, mips64el architectures
+Author: Jurica Stanojkovic <Jurica.Stanojkovic@imgtec.com>
+
+--- openmpi-1.6.5.orig/configure
++++ openmpi-1.6.5/configure
+@@ -27231,8 +27231,13 @@ _ACEOF
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+             ;;
+-        mips-*|mips64*)
+-            # Should really find some way to make sure that we are on
++        mips-*|mipsel-*)
++            ompi_cv_asm_arch="MIPS"
++            OPAL_ASM_SUPPORT_64BIT=0
++            OMPI_GCC_INLINE_ASSIGN='"or %0,$0,$0" : "=&r"(ret)'
++            ;;
++      
++      mips64-*|mips64el-*)
+             # a MIPS III machine (r4000 and later)
+             ompi_cv_asm_arch="MIPS"
+             OPAL_ASM_SUPPORT_64BIT=1
+--- openmpi-1.6.5.orig/opal/config/opal_config_asm.m4
++++ openmpi-1.6.5/opal/config/opal_config_asm.m4
+@@ -930,8 +930,13 @@ AC_DEFUN([OMPI_CONFIG_ASM],[
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+             ;;
+-        mips-*|mips64*)
+-            # Should really find some way to make sure that we are on
++        mips-*|mipsel-*)
++            ompi_cv_asm_arch="MIPS"
++            OPAL_ASM_SUPPORT_64BIT=0
++            OMPI_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)'
++            ;;
++      
++      mips64-*|mips64el-*)
+             # a MIPS III machine (r4000 and later)
+             ompi_cv_asm_arch="MIPS"
+             OPAL_ASM_SUPPORT_64BIT=1
diff --git a/patches/mips-support b/patches/mips-support
new file mode 100644 (file)
index 0000000..84a1d38
--- /dev/null
@@ -0,0 +1,274 @@
+Description: Fix build issues on MIPS
+ This patch should add build support for MIPS. Unfortunately,
+ there where build issues related to libtool. With libtool 2.2
+ being available, those issues should be gone. The patch needs
+ to be updated and tested, so it's currently not applied.
+Forwarded: https://svn.open-mpi.org/trac/ompi/ticket/2494
+Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489173
+Author: George Bosilca
+Last-Update: 2011-03-10
+
+--- a/opal/asm/asm-data.txt
++++ b/opal/asm/asm-data.txt
+@@ -127,3 +127,7 @@
+ MIPS  default-.text-.globl-:--L--1-1-1-1-0    mips-irix
+ MIPS  default-.text-.globl-:--L--1-1-1-1-0    mips64el
++MIPS  default-.text-.globl-:--L-@-1-1-1-1-1   mips64-linux
++
++# However, this doesn't hold true for 32-bit MIPS as used on Linux.
++MIPS  default-.text-.globl-:--L-@-1-1-1-0-1   mips-linux
+--- a/opal/asm/base/MIPS.asm
++++ b/opal/asm/base/MIPS.asm
+@@ -1,26 +1,48 @@
+ START_FILE
++#ifdef __linux__
+ #include <sys/asm.h>
++#else
++#include <asm.h>
++#endif
+ #include <regdef.h>
+       
+       TEXT
+       ALIGN(8)
+ LEAF(opal_atomic_mb)
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif        
+       j       ra
+ END(opal_atomic_mb)
+       
+       ALIGN(8)
+ LEAF(opal_atomic_rmb)
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+       j       ra
+ END(opal_atomic_rmb)
+       
+       
+ LEAF(opal_atomic_wmb)
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+       j       ra
+ END(opal_atomic_wmb)
+@@ -28,11 +50,23 @@
+ LEAF(opal_atomic_cmpset_32)
+       .set noreorder        
+ retry1:                
++#ifdef __linux__
++      .set mips2
++#endif
+       ll     $3, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       bne    $3, $5, done1   
+       or     $2, $6, 0      
++#ifdef __linux__
++      .set mips2
++#endif
+       sc     $2, 0($4)         
+-      bne    $2, 1, retry1
++#ifdef __linux__
++      .set mips0
++#endif
++      beqz   $2, retry1
+ done1:                 
+       .set reorder          
+@@ -45,13 +79,31 @@
+ LEAF(opal_atomic_cmpset_acq_32)
+       .set noreorder        
+ retry2:                
++#ifdef __linux__
++      .set mips2
++#endif
+       ll     $3, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       bne    $3, $5, done2   
+       or     $2, $6, 0      
++#ifdef __linux__
++      .set mips2
++#endif
+       sc     $2, 0($4)         
+-      bne    $2, 1, retry2   
++#ifdef __linux__
++      .set mips0
++#endif
++      beqz   $2, retry2   
+ done2:                 
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+       .set reorder          
+       xor     $3,$3,$5
+@@ -62,13 +114,31 @@
+       
+ LEAF(opal_atomic_cmpset_rel_32)
+       .set noreorder        
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+ retry3:                
++#ifdef __linux__
++      .set mips2
++#endif
+       ll     $3, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       bne    $3, $5, done3   
+       or     $2, $6, 0      
++#ifdef __linux__
++      .set mips2
++#endif
+       sc     $2, 0($4)         
+-      bne    $2, 1, retry3   
++#ifdef __linux__
++      .set mips0
++#endif
++      beqz   $2, retry3   
+ done3:                 
+       .set reorder          
+@@ -77,7 +147,7 @@
+       sltu    $2,$3,1
+ END(opal_atomic_cmpset_rel_32)
+       
+-      
++#ifdef __mips64       
+ LEAF(opal_atomic_cmpset_64)
+               .set noreorder        
+ retry4:                
+@@ -85,7 +155,7 @@
+       bne    $3, $5, done4   
+       or     $2, $6, 0      
+       scd    $2, 0($4)         
+-      bne    $2, 1, retry4   
++      beqz   $2, retry4   
+ done4:                 
+       .set reorder          
+@@ -102,7 +172,7 @@
+       bne    $3, $5, done5   
+       or     $2, $6, 0      
+       scd    $2, 0($4)         
+-      bne    $2, 1, retry5   
++      beqz   $2, retry5   
+ done5:                 
+       .set reorder          
+       sync
+@@ -120,7 +190,7 @@
+       bne    $3, $5, done6   
+       or     $2, $6, 0      
+       scd    $2, 0($4)         
+-      bne    $2, 1, retry6   
++      beqz   $2, retry6   
+ done6:                 
+       .set reorder          
+@@ -128,3 +198,4 @@
+       j       ra
+       sltu    $3,$4,1
+ END(opal_atomic_cmpset_rel_64)
++#endif /* __mips64 */
+--- a/opal/include/opal/sys/mips/atomic.h
++++ b/opal/include/opal/sys/mips/atomic.h
+@@ -23,10 +23,17 @@
+ #if OMPI_WANT_SMP_LOCKS
+ /* BWB - FIX ME! */
++#ifdef __linux__
++#define MB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define RMB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define WMB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define SMP_SYNC ".set mips2; sync; .set mips0"
++#else
+ #define MB() __asm__ __volatile__("sync": : :"memory")
+ #define RMB() __asm__ __volatile__("sync": : :"memory")
+ #define WMB() __asm__ __volatile__("sync": : :"memory")
+ #define SMP_SYNC "sync"
++#endif
+ #else
+@@ -46,8 +53,10 @@
+ #define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
+ #define OPAL_HAVE_ATOMIC_CMPSET_32 1
+-#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++#ifdef __mips64
++#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++#endif
+ /**********************************************************************
+  *
+@@ -94,10 +103,16 @@
+    __asm__ __volatile__ ("\t"
+                          ".set noreorder        \n"
+                          "1:                \n\t"
++#ifdef __linux__
++                         ".set mips2         \n\t"
++#endif
+                          "ll     %0, %2         \n\t" /* load *addr into ret */
+                          "bne    %0, %3, 2f   \n\t" /* done if oldval != ret */
+                          "or     %5, %4, 0      \n\t" /* ret = newval */
+                          "sc     %5, %2         \n\t" /* store ret in *addr */
++#ifdef __linux__
++                         ".set mips0         \n\t"
++#endif
+                          /* note: ret will be 0 if failed, 1 if succeeded */
+                        "bne    %5, 1, 1b   \n\t"
+                          "2:                 \n\t"
+@@ -133,7 +148,7 @@
+     return opal_atomic_cmpset_32(addr, oldval, newval);
+ }
+-
++#ifdef OPAL_HAVE_ATOMIC_CMPSET_64
+ static inline int opal_atomic_cmpset_64(volatile int64_t *addr,
+                                         int64_t oldval, int64_t newval)
+ {
+@@ -183,6 +198,7 @@
+     opal_atomic_wmb();
+     return opal_atomic_cmpset_64(addr, oldval, newval);
+ }
++#endif /* OPAL_HAVE_ATOMIC_CMPSET_64 */
+ #endif /* OMPI_GCC_INLINE_ASSEMBLY */
diff --git a/patches/mips-support-fix.diff b/patches/mips-support-fix.diff
new file mode 100644 (file)
index 0000000..b45ed43
--- /dev/null
@@ -0,0 +1,95 @@
+Description:  Patch resolve issue of misinterpretation of assembler code from MIPS.asm
+ and fix mips64(el) assembler code.
+Author: Jurica Stanojkovic <Jurica.Stanojkovic@imgtec.com>
+
+--- openmpi-1.6.5.orig/opal/asm/base/MIPS.asm
++++ openmpi-1.6.5/opal/asm/base/MIPS.asm
+@@ -68,11 +68,11 @@ retry1:
+ #endif
+       beqz   $2, retry1
+ done1:                 
+-      .set reorder          
+       xor     $3,$3,$5
+       j       ra
+       sltu    $2,$3,1
++        .set reorder
+ END(opal_atomic_cmpset_32)
+@@ -104,11 +104,11 @@ done2:
+ #ifdef __linux__
+       .set mips0
+ #endif
+-      .set reorder          
+       xor     $3,$3,$5
+       j       ra
+       sltu    $2,$3,1
++      .set reorder
+ END(opal_atomic_cmpset_acq_32)
+       
+@@ -140,16 +140,16 @@ retry3:
+ #endif
+       beqz   $2, retry3   
+ done3:                 
+-      .set reorder          
+       xor     $3,$3,$5
+       j       ra
+       sltu    $2,$3,1
++      .set reorder
+ END(opal_atomic_cmpset_rel_32)
+       
+ #ifdef __mips64       
+ LEAF(opal_atomic_cmpset_64)
+-              .set noreorder        
++      .set noreorder        
+ retry4:                
+       lld    $3, 0($4)         
+       bne    $3, $5, done4   
+@@ -157,11 +157,11 @@ retry4:
+       scd    $2, 0($4)         
+       beqz   $2, retry4   
+ done4:                 
+-      .set reorder          
+-      xor     $4,$3,$5
++      xor     $3,$3,$5
+       j       ra
+-      sltu    $3,$4,1
++      sltu    $2,$3,1
++      .set reorder
+ END(opal_atomic_cmpset_64)
+@@ -174,11 +174,11 @@ retry5:
+       scd    $2, 0($4)         
+       beqz   $2, retry5   
+ done5:                 
+-      .set reorder          
+       sync
+-      xor     $4,$3,$5
++      xor     $3,$3,$5
+       j       ra
+-      sltu    $3,$4,1
++      sltu    $2,$3,1
++      .set reorder
+ END(opal_atomic_cmpset_acq_64)
+@@ -192,10 +192,10 @@ retry6:
+       scd    $2, 0($4)         
+       beqz   $2, retry6   
+ done6:                 
+-      .set reorder          
+-      xor     $4,$3,$5
++      xor     $3,$3,$5
+       j       ra
+-      sltu    $3,$4,1
++      sltu    $2,$3,1
++      .set reorder
+ END(opal_atomic_cmpset_rel_64)
+ #endif /* __mips64 */
diff --git a/patches/mips-support-upstream-1.7.3.diff b/patches/mips-support-upstream-1.7.3.diff
new file mode 100644 (file)
index 0000000..82ae03a
--- /dev/null
@@ -0,0 +1,225 @@
+Description: Patches MIPS.asm and mips/atomic.h files to a 1.7.3 version of source
+Author: Jurica Stanojkovic <Jurica.Stanojkovic@imgtec.com>
+
+--- openmpi-1.6.5.orig/opal/asm/base/MIPS.asm
++++ openmpi-1.6.5/opal/asm/base/MIPS.asm
+@@ -1,26 +1,48 @@
+ START_FILE
++#ifdef __linux__
+ #include <sys/asm.h>
++#else
++#include <asm.h>
++#endif
+ #include <regdef.h>
+       
+       TEXT
+       ALIGN(8)
+ LEAF(opal_atomic_mb)
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif        
+       j       ra
+ END(opal_atomic_mb)
+       
+       ALIGN(8)
+ LEAF(opal_atomic_rmb)
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+       j       ra
+ END(opal_atomic_rmb)
+       
+       
+ LEAF(opal_atomic_wmb)
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+       j       ra
+ END(opal_atomic_wmb)
+@@ -28,10 +50,22 @@ END(opal_atomic_wmb)
+ LEAF(opal_atomic_cmpset_32)
+       .set noreorder        
+ retry1:                
++#ifdef __linux__
++      .set mips2
++#endif
+       ll     $3, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       bne    $3, $5, done1   
+       or     $2, $6, 0      
++#ifdef __linux__
++      .set mips2
++#endif
+       sc     $2, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       beqz   $2, retry1
+ done1:                 
+       .set reorder          
+@@ -45,13 +79,31 @@ END(opal_atomic_cmpset_32)
+ LEAF(opal_atomic_cmpset_acq_32)
+       .set noreorder        
+ retry2:                
++#ifdef __linux__
++      .set mips2
++#endif
+       ll     $3, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       bne    $3, $5, done2   
+       or     $2, $6, 0      
++#ifdef __linux__
++      .set mips2
++#endif
+       sc     $2, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       beqz   $2, retry2   
+ done2:                 
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+       .set reorder          
+       xor     $3,$3,$5
+@@ -62,12 +114,30 @@ END(opal_atomic_cmpset_acq_32)
+       
+ LEAF(opal_atomic_cmpset_rel_32)
+       .set noreorder        
+-      sync
++#ifdef __linux__
++      .set mips2
++#endif
++      sync
++#ifdef __linux__
++      .set mips0
++#endif
+ retry3:                
++#ifdef __linux__
++      .set mips2
++#endif
+       ll     $3, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       bne    $3, $5, done3   
+       or     $2, $6, 0      
++#ifdef __linux__
++      .set mips2
++#endif
+       sc     $2, 0($4)         
++#ifdef __linux__
++      .set mips0
++#endif
+       beqz   $2, retry3   
+ done3:                 
+       .set reorder          
+@@ -77,7 +147,7 @@ done3:
+       sltu    $2,$3,1
+ END(opal_atomic_cmpset_rel_32)
+       
+-      
++#ifdef __mips64       
+ LEAF(opal_atomic_cmpset_64)
+               .set noreorder        
+ retry4:                
+@@ -128,3 +198,4 @@ done6:
+       j       ra
+       sltu    $3,$4,1
+ END(opal_atomic_cmpset_rel_64)
++#endif /* __mips64 */
+--- openmpi-1.6.5.orig/opal/include/opal/sys/mips/atomic.h
++++ openmpi-1.6.5/opal/include/opal/sys/mips/atomic.h
+@@ -23,10 +23,17 @@
+ #if OPAL_WANT_SMP_LOCKS
+ /* BWB - FIX ME! */
++#ifdef __linux__
++#define MB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define RMB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define WMB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define SMP_SYNC ".set mips2; sync; .set mips0"
++#else
+ #define MB() __asm__ __volatile__("sync": : :"memory")
+ #define RMB() __asm__ __volatile__("sync": : :"memory")
+ #define WMB() __asm__ __volatile__("sync": : :"memory")
+ #define SMP_SYNC "sync"
++#endif
+ #else
+@@ -46,8 +53,10 @@
+ #define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
+ #define OPAL_HAVE_ATOMIC_CMPSET_32 1
+-#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++#ifdef __mips64
++#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++#endif
+ /**********************************************************************
+  *
+@@ -93,10 +102,16 @@ static inline int opal_atomic_cmpset_32(
+    __asm__ __volatile__ (".set noreorder        \n"
+                          ".set noat             \n"
+                          "1:                    \n"
++#ifdef __linux__
++                         ".set mips2         \n\t"
++#endif
+                          "ll     %0, %2         \n" /* load *addr into ret */
+                          "bne    %0, %z3, 2f    \n" /* done if oldval != ret */
+                          "or     $1, %z4, 0     \n" /* tmp = newval (delay slot) */
+                          "sc     $1, %2         \n" /* store tmp in *addr */
++#ifdef __linux__
++                         ".set mips0         \n\t"
++#endif
+                          /* note: ret will be 0 if failed, 1 if succeeded */
+                          "beqz   $1, 1b         \n" /* if 0 jump back to 1b */
+                        "nop                   \n" /* fill delay slots */
+@@ -133,7 +148,7 @@ static inline int opal_atomic_cmpset_rel
+     return opal_atomic_cmpset_32(addr, oldval, newval);
+ }
+-
++#ifdef OPAL_HAVE_ATOMIC_CMPSET_64
+ static inline int opal_atomic_cmpset_64(volatile int64_t *addr,
+                                         int64_t oldval, int64_t newval)
+ {
+@@ -182,6 +197,7 @@ static inline int opal_atomic_cmpset_rel
+     opal_atomic_wmb();
+     return opal_atomic_cmpset_64(addr, oldval, newval);
+ }
++#endif /* OPAL_HAVE_ATOMIC_CMPSET_64 */
+ #endif /* OMPI_GCC_INLINE_ASSEMBLY */
diff --git a/patches/ompi_autogen_sh.patch b/patches/ompi_autogen_sh.patch
new file mode 100644 (file)
index 0000000..0429388
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -664,6 +664,9 @@
+         touch -r aclocal.m4 config/libtool.m4
+     fi
++    # Ensure libtool.m4 is very old so that make does not rebuild aclocal.m4
++    touch -t 197001010000.00 config/libtool.m4
++
+     run_and_check $ompi_autoconf
+     run_and_check $ompi_automake --foreign -a --copy --include-deps
diff --git a/patches/openmpi-link-fix b/patches/openmpi-link-fix
new file mode 100644 (file)
index 0000000..065239d
--- /dev/null
@@ -0,0 +1,88 @@
+--- openmpi-1.4.3.old/ompi/tools/ompi-server/Makefile.am       2009-12-08 20:36:19.000000000 +0000
++++ openmpi-1.4.3/ompi/tools/ompi-server/Makefile.am   2011-04-10 16:14:45.000000000 +0000
+@@ -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.old/ompi/tools/ompi_info/Makefile.am 2009-12-08 20:36:19.000000000 +0000
++++ openmpi-1.4.3/ompi/tools/ompi_info/Makefile.am     2011-04-10 16:13:22.000000000 +0000
+@@ -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.old/orte/tools/orte-ps/Makefile.am   2009-12-08 20:36:41.000000000 +0000
++++ openmpi-1.4.3/orte/tools/orte-ps/Makefile.am       2011-04-10 15:59:01.000000000 +0000
+@@ -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.old/orte/tools/orte-clean/Makefile.am        2009-12-08 20:36:41.000000000 +0000
++++ openmpi-1.4.3/orte/tools/orte-clean/Makefile.am    2011-04-10 15:57:09.000000000 +0000
+@@ -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
+--- openmpi-1.4.3.old/orte/tools/orte-iof/Makefile.am  2009-12-08 20:36:41.000000000 +0000
++++ openmpi-1.4.3/orte/tools/orte-iof/Makefile.am      2011-04-10 15:57:54.000000000 +0000
+@@ -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.old/orte/tools/orte-checkpoint/Makefile.am   2009-12-08 20:36:41.000000000 +0000
++++ openmpi-1.4.3/orte/tools/orte-checkpoint/Makefile.am       2011-04-10 15:51:13.000000000 +0000
+@@ -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.old/orte/tools/orte-restart/Makefile.am      2009-12-08 20:36:41.000000000 +0000
++++ openmpi-1.4.3/orte/tools/orte-restart/Makefile.am  2011-04-10 15:59:43.000000000 +0000
+@@ -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.old/orte/tools/orterun/Makefile.am   2009-12-08 20:36:44.000000000 +0000
++++ openmpi-1.4.3/orte/tools/orterun/Makefile.am       2011-04-10 16:00:25.000000000 +0000
+@@ -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
diff --git a/patches/pkgconfig-vars.patch b/patches/pkgconfig-vars.patch
new file mode 100644 (file)
index 0000000..5411783
--- /dev/null
@@ -0,0 +1,28 @@
+Author: Alastair McKinstry <mckinstry@debian.org>
+Origin-Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752785
+Description: Add variables needed to make  mpi.pc an alias for ompi.pc
+Last-Updated: 2014-10-07
+Forwarded: no
+
+Index: openmpi-1.6.5/ompi/tools/wrappers/ompi.pc.in
+===================================================================
+--- openmpi-1.6.5.orig/ompi/tools/wrappers/ompi.pc.in
++++ openmpi-1.6.5/ompi/tools/wrappers/ompi.pc.in
+@@ -15,7 +15,7 @@ libdir=@libdir@
+ # dependencies), so only list these in Libs.private.
+ #
+ Libs: -L${libdir} @OMPI_WRAPPER_EXTRA_LDFLAGS@ -lmpi
+-Libs.private: @OMPI_WRAPPER_EXTRA_LIBS@
++Libs.private: @OMPI_WRAPPER_EXTRA_LIBS@ -lmpi_f90 -lmpi_f77 -lmpi
+ #
+ # It is safe to hard-wire the -I before the EXTRA_INCLUDES because it
+ # will either contain "openmpi" or be blank.  Hence, it'll either
+@@ -23,3 +23,8 @@ Libs.private: @OMPI_WRAPPER_EXTRA_LIBS@
+ # redundant (ick), but safe.
+ #
+ Cflags: -I${includedir} -I${includedir}/@OMPI_WRAPPER_EXTRA_INCLUDES@ @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_CFLAGS@
++#
++# Add variables to be queried in specific cases. Match variables in mpich.pc    
++cxxflags= -I -I/@OMPI_WRAPPER_EXTRA_INCLUDES@ @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_CXXFLAGS@
++fcflags= -I -I/@OMPI_WRAPPER_EXTRA_INCLUDES@ @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_FCFLAGS@
++fflags= -I -I/@OMPI_WRAPPER_EXTRA_INCLUDES@ @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_FFLAGS@
diff --git a/patches/ppc64el-support.patch b/patches/ppc64el-support.patch
new file mode 100644 (file)
index 0000000..1f170c6
--- /dev/null
@@ -0,0 +1,14 @@
+Description: Attempt ppc64el build.
+Author: Dimitri John Ledkov <xnox@ubuntu.com>
+
+--- openmpi-1.6.5.orig/opal/config/opal_config_asm.m4
++++ openmpi-1.6.5/opal/config/opal_config_asm.m4
+@@ -949,7 +949,7 @@ AC_DEFUN([OMPI_CONFIG_ASM],[
+             OMPI_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)'
+             ;;
+-        powerpc-*|powerpc64-*)
++        powerpc-*|powerpc64-*|powerpc64le-*)
+             OMPI_CHECK_POWERPC_REG
+             if test "$ac_cv_sizeof_long" = "4" ; then
+                 ompi_cv_asm_arch="POWERPC32"
diff --git a/patches/series b/patches/series
new file mode 100644 (file)
index 0000000..846e8b8
--- /dev/null
@@ -0,0 +1,20 @@
+ompi_autogen_sh.patch
+build_hurd
+manpage_macros
+# ARM support is incorporated upstream
+#arm_support
+# Link fix is obsolete, since we do not ship .la files anymore
+#openmpi-link-fix
+#configure_arm_fix.patch
+# 658600: Regression of bug 531522
+#fix-fakeroot-execution.patch
+arm_detection.diff
+fix-bashims.diff
+fix-testsuite-compile
+mips-detection.diff
+mips-support-upstream-1.7.3.diff
+mips-support-fix.diff
+basic-arm64-support.diff
+ppc64el-support.patch
+alpha_badatomic.patch
+pkgconfig-vars.patch
diff --git a/rules b/rules
new file mode 100755 (executable)
index 0000000..bcb8e60
--- /dev/null
+++ b/rules
@@ -0,0 +1,100 @@
+#!/usr/bin/make -f
+
+# export DH_VERBOSE=1
+
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+ifeq (sparc,$(DEB_HOST_GNU_CPU))
+       CFLAGS += -mcpu=v9
+endif
+
+# BLCR checkpointing support
+BLCR_ARCH := "amd64 armel armhf i386 powerpc"
+ifneq (,$(findstring $(DEB_HOST_ARCH),$(BLCR_ARCH)))
+        CHKPT = --enable-ft-thread --with-ft=cr --with-blcr=/usr --with-blcr-libdir=/usr/lib
+endif
+
+# Memory affinity support
+NUMA_ARCH := "amd64 i386 ia64 mips mipsel powerpc"
+ifneq (,$(findstring $(DEB_HOST_ARCH),$(NUMA_ARCH)))
+        NUMA = --with-libnuma=/usr --with-libnuma-libdir=/usr/lib
+endif
+
+TORQUE = --without-tm
+
+# Flags for the static build: see bug #502232
+#STATIC_CONFIG_PARAMS = --enable-static
+
+# Enable MPI thread support (user request, see #602132). Progress threads are known
+# to not work, so we do not enable them until they are supported.
+MPI_THREADS := --with-threads=posix --enable-opal-multi-threads
+
+%:
+       dh $@ --parallel #--with autotools_dev
+
+override_dh_auto_configure:
+       ./autogen.sh
+       dh_auto_configure -- \
+               $(CHKPT) $(NUMA) $(TORQUE) \
+               $(MPI_THREADS) \
+               --disable-silent-rules \
+               --with-hwloc=/usr/ \
+               --with-libltdl=external \
+               --with-devel-headers \
+               --with-slurm \
+               --with-sge \
+               --enable-heterogeneous \
+               --disable-vt \
+               --sysconfdir=/etc/openmpi               \
+               --libdir=\$${prefix}/lib/openmpi/lib    \
+               --includedir=\$${prefix}/lib/openmpi/include
+
+override_dh_install:
+# Strip rpath info from all executables and libraries.
+       find debian/tmp/ -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \;
+# Rename the compiler and startup wrappers.
+##     for f in mpic++ mpicc mpiCC mpicxx mpiexec mpif77 mpif90 mpirun opalc++ opalcc ortec++ ortecc orteCC ; do \ ##
+       for f in mpic++ mpicc mpiCC mpicxx mpiexec mpif77 mpif90 mpirun ; do \
+               if test -f debian/tmp/usr/bin/$${f}; then \
+                       mv debian/tmp/usr/bin/$${f} debian/tmp/usr/bin/$${f}.openmpi ; \
+               fi; \
+       done
+# Rename the compiler wrapper man pages.
+       for f in mpic++ mpicc mpicxx mpiexec mpif77 mpif90 mpirun ; do \
+               if test -f debian/tmp/usr/share/man/man1/$${f}.1; then \
+                       mv debian/tmp/usr/share/man/man1/$${f}.1 debian/tmp/usr/share/man/man1/$${f}.openmpi.1 ; \
+               fi; \
+               if test -f debian/tmp/usr/share/man/man1/$${f}.3; then \
+                       mv debian/tmp/usr/share/man/man3/$${f}.3 debian/tmp/usr/share/man/man1/$${f}.openmpi.3 ; \
+               fi; \
+       done
+       cd debian/tmp/usr/share/man/man3; \
+       for f in *.3; do \
+               mv $$f $$(echo $$f|sed -e "s|\.3|.openmpi.3|g"); \
+       done; \
+
+# Rename orte-bootproxy.sh to orte-bootproxy
+       if test -f debian/tmp/usr/bin/orte-bootproxy.sh; then \
+               mv debian/tmp/usr/bin/orte-bootproxy.sh debian/tmp/usr/bin/orte-bootproxy; \
+       fi
+# Remove dangling symlink(s)
+       rm -f debian/tmp/usr/share/man/man1/mpiCC.1
+       rm -f debian/tmp/usr/share/man/man1/orteCC.1
+# Remove COPYRIGHT file of ptmalloc2. It's reproduced in debian/copyright.
+       rm -f -r debian/tmp/usr/share/openmpi/doc/
+# Continue as usual
+       dh_install
+
+override_dh_fixperms:
+       chmod 0644 debian/tmp/usr/lib/openmpi/lib/mpi.mod
+       dh_fixperms
+
+override_dh_installdocs:
+       dh_installdocs --all AUTHORS NEWS README
+
+override_dh_shlibdeps:
+       dh_shlibdeps -l$(CURDIR)/debian/tmp/usr/lib/openmpi/lib -- --ignore-missing-info
+
+override_dh_strip:
+       dh_strip --dbg-package=libopenmpi1.6-dbg
diff --git a/source/format b/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/watch b/watch
new file mode 100644 (file)
index 0000000..39a173a
--- /dev/null
+++ b/watch
@@ -0,0 +1,2 @@
+version=3
+http://www.open-mpi.org/software/ompi/v1.6/ .*/openmpi-([\d+\.]+)\.tar\.gz