From: Julien Cristau Date: Fri, 14 Nov 2014 16:57:11 +0000 (+0000) Subject: Import openmpi_1.6.5-9.1.debian.tar.xz X-Git-Tag: archive/raspbian/2.1.1-7+rpi1~1^2^2^2^2^2^2^2~13^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1cb60d0655e20d54804ff913f87627a3626c26ea;p=openmpi.git Import openmpi_1.6.5-9.1.debian.tar.xz [dgit import tarball openmpi 1.6.5-9.1 openmpi_1.6.5-9.1.debian.tar.xz] --- 1cb60d0655e20d54804ff913f87627a3626c26ea diff --git a/TODO b/TODO new file mode 100644 index 00000000..f7874f10 --- /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 index 00000000..1403771b --- /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 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 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 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 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 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 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 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 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 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 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 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 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 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 Thu, 11 Apr 2013 16:02:35 +0200 + +openmpi1.6 (1.6.4-1) unstable; urgency=low + + * New upstream release + + -- Sylvestre Ledru 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 + * Add arm support from ubuntu, closes: #617779 + - Thanks to Jani Monoses + + -- Riku Voipio 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 26 Sep 2006 00:31:36 -0400 + +openmpi (1.1-2) unstable; urgency=low + + * Apply patch by Tilman Koschnick to add a new package + with debugging symbols (Closes: #383997). + + -- Florian Ragwitz Wed, 23 Aug 2006 12:43:16 +0200 + +openmpi (1.1-1) unstable; urgency=low + + * New upstream release. + * Applied patch by dann frazier 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 Mon, 7 Aug 2006 16:57:42 +0200 + +openmpi (1.0.2-1) unstable; urgency=low + + * Initial release (Closes: #340426). + + -- Florian Ragwitz Fri, 6 Jan 2006 15:13:31 +0100 + diff --git a/compat b/compat new file mode 100644 index 00000000..45a4fb75 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +8 diff --git a/control b/control new file mode 100644 index 00000000..33ea6c5e --- /dev/null +++ b/control @@ -0,0 +1,133 @@ +Source: openmpi +Section: net +Priority: extra +Maintainer: Debian Open MPI Maintainers +Uploaders: Manuel Prinz , Sylvestre Ledru , + Alastair McKinstry +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 index 00000000..d56fe256 --- /dev/null +++ b/copyright @@ -0,0 +1,166 @@ +This package was debianized by Florian Ragwitz 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 , 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 index 00000000..cb682dcf --- /dev/null +++ b/libopenmpi-dev.README.Debian @@ -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 , Mon, 21 Jul 2008 16:34:30 +0200 diff --git a/libopenmpi-dev.install b/libopenmpi-dev.install new file mode 100644 index 00000000..7591814b --- /dev/null +++ b/libopenmpi-dev.install @@ -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 index 00000000..6614297c --- /dev/null +++ b/libopenmpi-dev.links @@ -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 index 00000000..c6111a31 --- /dev/null +++ b/libopenmpi-dev.postinst @@ -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 index 00000000..ce109590 --- /dev/null +++ b/libopenmpi-dev.preinst @@ -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 index 00000000..1f97684a --- /dev/null +++ b/libopenmpi-dev.prerm @@ -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 index 00000000..3bb45169 --- /dev/null +++ b/libopenmpi1.6.install @@ -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 index 00000000..bb4a6ea5 --- /dev/null +++ b/libopenmpi1.6.links @@ -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 index 00000000..5b258649 --- /dev/null +++ b/openmpi-bin.README.Debian @@ -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 , Tue, 05 Jan 2010 14:17:49 +0100 diff --git a/openmpi-bin.install b/openmpi-bin.install new file mode 100644 index 00000000..9301755f --- /dev/null +++ b/openmpi-bin.install @@ -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 index 00000000..d6da9417 --- /dev/null +++ b/openmpi-bin.links @@ -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 index 00000000..2c5aa1aa --- /dev/null +++ b/openmpi-bin.manpages @@ -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 index 00000000..cb3456be --- /dev/null +++ b/openmpi-bin.postinst @@ -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 index 00000000..06b1f4e2 --- /dev/null +++ b/openmpi-bin.prerm @@ -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 index 00000000..bceebf83 --- /dev/null +++ b/openmpi-checkpoint.install @@ -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 index 00000000..e4464879 --- /dev/null +++ b/openmpi-checkpoint.links @@ -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 index 00000000..2af65ea7 --- /dev/null +++ b/openmpi-checkpoint.manpages @@ -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 index 00000000..62dc9f18 --- /dev/null +++ b/openmpi-common.install @@ -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 index 00000000..8193e988 --- /dev/null +++ b/openmpi-common.links @@ -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 index 00000000..434e29a9 --- /dev/null +++ b/openmpi-doc.install @@ -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 index 00000000..686a911f --- /dev/null +++ b/openmpi-doc.manpages @@ -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 index 00000000..40c9978a --- /dev/null +++ b/patches/alpha_badatomic.patch @@ -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 index 00000000..5a17541a --- /dev/null +++ b/patches/arm_detection.diff @@ -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 index 00000000..18fe4026 --- /dev/null +++ b/patches/arm_support @@ -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 index 00000000..b282c497 --- /dev/null +++ b/patches/basic-arm64-support.diff @@ -0,0 +1,313 @@ +From 2070e8d9dd894da7d5f188c752212d2b2ac6c3c4 Mon Sep 17 00:00:00 2001 +From: Leif Lindholm +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 ++ ++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 index 00000000..757a4674 --- /dev/null +++ b/patches/build_hurd @@ -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 +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 ++ # check to see if we have + # 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 ++ # check to see if we have + # 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 index 00000000..c6c67f35 --- /dev/null +++ b/patches/configure_arm_fix.patch @@ -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 index 00000000..06dac4bc --- /dev/null +++ b/patches/fix-bashims.diff @@ -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 index 00000000..dc9dcfea --- /dev/null +++ b/patches/fix-fakeroot-execution.patch @@ -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 +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 index 00000000..c12fca4b --- /dev/null +++ b/patches/fix-testsuite-compile @@ -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 index 00000000..2a01c288 --- /dev/null +++ b/patches/manpage_macros @@ -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 +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 index 00000000..0c065be4 --- /dev/null +++ b/patches/mips-detection.diff @@ -0,0 +1,39 @@ +Description: Support detection of mips, mipsel, mips64, mips64el architectures +Author: Jurica Stanojkovic + +--- 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 index 00000000..84a1d380 --- /dev/null +++ b/patches/mips-support @@ -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 ++#else ++#include ++#endif + #include + + 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 index 00000000..b45ed434 --- /dev/null +++ b/patches/mips-support-fix.diff @@ -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 + +--- 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 index 00000000..82ae03af --- /dev/null +++ b/patches/mips-support-upstream-1.7.3.diff @@ -0,0 +1,225 @@ +Description: Patches MIPS.asm and mips/atomic.h files to a 1.7.3 version of source +Author: Jurica Stanojkovic + +--- 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 ++#else ++#include ++#endif + #include + + 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 index 00000000..0429388f --- /dev/null +++ b/patches/ompi_autogen_sh.patch @@ -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 index 00000000..065239de --- /dev/null +++ b/patches/openmpi-link-fix @@ -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 index 00000000..54117830 --- /dev/null +++ b/patches/pkgconfig-vars.patch @@ -0,0 +1,28 @@ +Author: Alastair McKinstry +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 index 00000000..1f170c6b --- /dev/null +++ b/patches/ppc64el-support.patch @@ -0,0 +1,14 @@ +Description: Attempt ppc64el build. +Author: Dimitri John Ledkov + +--- 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 index 00000000..846e8b85 --- /dev/null +++ b/patches/series @@ -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 index 00000000..bcb8e608 --- /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 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/watch b/watch new file mode 100644 index 00000000..39a173a8 --- /dev/null +++ b/watch @@ -0,0 +1,2 @@ +version=3 +http://www.open-mpi.org/software/ompi/v1.6/ .*/openmpi-([\d+\.]+)\.tar\.gz