forked from openkylin/openmpi
Import Debian changes 4.1.4-ok1
openmpi (4.1.4-ok1) yangtze; urgency=low * Initial release.
This commit is contained in:
parent
b5b9027bc8
commit
dd2dce49aa
|
@ -0,0 +1,26 @@
|
|||
|
||||
Please be aware that as of release 4.1.0-5, Debian now sets the following:
|
||||
|
||||
OMPI_MCA_btl_base_warn_component_unused=0
|
||||
btl = ^uct,openib
|
||||
pml = ^ucx
|
||||
osc = ^ucx
|
||||
|
||||
This is set in /etc/openmpi/openmpi-mca-params.conf and turns off warnings that OpenFabric is configured
|
||||
but not used on the system. Many or most users of Debian will not have OpenFabric present on their systems
|
||||
and turning this off prevents spurious warnings that were breaking higher-level libraries and
|
||||
applications.
|
||||
|
||||
However the Libfabric EFA provider currently does not support applications calling fork()
|
||||
when memory registrations are handled by the EFA provider. This is to prevent applications
|
||||
from encountering potential data corruption or crashes when operating in this mode.
|
||||
Most applications, including the majority of MPI and NCCL applications, will still function
|
||||
with this constraint. Some applications do require fork() support, however,
|
||||
these applications do not require memory registrations to be handled by the EFA provider.
|
||||
|
||||
If you wish to use OpenIB and know the application to be safe, comment out the exclude line.
|
||||
|
||||
Similarly, UCX is disabled by default as it gives spurious errors on missing RDMA fabric.
|
||||
Please enable this if you have the appropriate hardware.
|
||||
|
||||
-- Alastair McKinstry <mckinstry@debian.org>, 2021-01-14
|
|
@ -0,0 +1,5 @@
|
|||
openmpi (4.1.4-ok1) yangtze; urgency=low
|
||||
|
||||
* Initial release.
|
||||
|
||||
-- Luoyaoming <luoyaoming@kylinos.cn> Tue, 01 Nov 2022 09:30:50 +0800
|
|
@ -0,0 +1,142 @@
|
|||
Source: openmpi
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Openkylin Developers <packaging@lists.openkylin.top>
|
||||
XSBC-Original-Maintainer: Alastair McKinstry <mckinstry@debian.org>
|
||||
Uploaders: Luo Yaoming <luoyaoming@kylinos.cn>
|
||||
Build-Depends: dpkg-dev (>= 1.16.1~),
|
||||
dh-sequence-fortran-mod,
|
||||
debhelper-compat (= 13),
|
||||
libevent-dev,
|
||||
libpmix-dev,
|
||||
libucx-dev [amd64 arm64 ppc64el],
|
||||
zlib1g-dev,
|
||||
gfortran,
|
||||
libhwloc-dev,
|
||||
pkg-config,
|
||||
libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !i386],
|
||||
libfabric-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !sh4 !powerpc !x32 !i386],
|
||||
libnuma-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
|
||||
libpsm-infinipath1-dev [amd64 i386],
|
||||
libpsm2-dev [amd64],
|
||||
default-jdk [!hppa !hurd-i386 !kfreebsd-amd64 !kfreebsd-i386 !alpha !ppc64 !sparc64] <!nojava>,
|
||||
flex
|
||||
Build-Conflicts: libmpich-dev, libopenmpi-dev
|
||||
Standards-Version: 4.6.1
|
||||
Homepage: https://www.open-mpi.org/
|
||||
Vcs-Browser: https://gitee/openkylin/openmpi
|
||||
Vcs-Git: https://gitee/openkylin/openmpi.git
|
||||
|
||||
Package: openmpi-bin
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (>= ${source:Version}),
|
||||
openssh-client | ssh-client
|
||||
Conflicts: openmpi-bin
|
||||
Multi-Arch: foreign
|
||||
Breaks:
|
||||
libopenmpi-dev (<< 4.0.5-0),
|
||||
mpich (<< 3.3~b1-0),
|
||||
libmpich-dev (<< 3.3~b1-0),
|
||||
lam4-dev (<< 7.1.4-0),
|
||||
Replaces: libopenmpi-dev (<< 4.0.5-0),
|
||||
Suggests: gfortran | fortran-compiler
|
||||
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-3.1 compliant implementation, Open
|
||||
MPI offers advantages for system and software vendors, application developers
|
||||
and computer science researchers.
|
||||
.
|
||||
Features:
|
||||
* Full MPI-3.1 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: any
|
||||
Multi-Arch: same
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends},
|
||||
libopenmpi3 (= ${binary:Version}),
|
||||
openmpi-common (>= ${source:Version}),
|
||||
libibverbs-dev (>= 1.1.7) [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !i386], libhwloc-dev,
|
||||
libevent-dev,
|
||||
libpmix-dev,
|
||||
libjs-jquery,
|
||||
libjs-jquery-ui,
|
||||
zlib1g-dev,
|
||||
openmpi-bin (>= 3.0.0-0)
|
||||
Recommends: libcoarrays-openmpi-dev
|
||||
Conflicts: libopenmpi-dev
|
||||
Breaks:
|
||||
openmpi-doc (<< 4.1.2~rc1-0),
|
||||
lam4-dev (<< 7.1.4-0),
|
||||
Suggests: openmpi-doc
|
||||
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-3 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: libopenmpi3
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libhwloc-plugins, libpmix2
|
||||
Breaks: gromacs-openmpi (<< 2020~beta2-0), libeztrace0 (<< 1.1-8-0), starpu-contrib-examples (<< 1.3.2+dfsg-0), starpu-examples (<< 1.3.2+dfsg-0)
|
||||
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-3.1 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
|
||||
Multi-Arch: foreign
|
||||
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-3.1 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
|
||||
Multi-Arch: foreign
|
||||
Depends: ${misc:Depends}, libjs-jquery-ui
|
||||
Conflicts: mpi-doc, lam-mpidoc, lam4-dev, openmpi-doc
|
||||
Replaces: libopenmpi-dev (<< 4.1.2~rc1-0)
|
||||
Breaks: libopenmpi-dev (<< 4.1.2~rc1-0)
|
||||
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-3.1 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.
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,5 @@
|
|||
[DEFAULT]
|
||||
debian-branch = debian/latest
|
||||
pristine-tar = False
|
||||
upstream-branch = upstream/latest
|
||||
upstream-tag = upstream/%(version)s
|
|
@ -0,0 +1,26 @@
|
|||
Open MPI for Debian - Developer Notes
|
||||
-------------------------------------
|
||||
|
||||
MPI Alternatives
|
||||
----------------
|
||||
|
||||
The current Open MPI version of Debian uses the Debian Alternatives system.
|
||||
Although Open MPI might replace most of the existing MPI implementations in the
|
||||
future (see http://www.open-mpi.org/faq/?category=general#why), we decided to
|
||||
not affect any other MPI implementation already installed on your system.
|
||||
|
||||
You can setup Open MPI as default MPI implementation by selecting openmpi as
|
||||
the "mpi" alternative:
|
||||
|
||||
update-alternatives --config mpi
|
||||
|
||||
Please note that there is a bug in update-alternatives (namely #388313) that
|
||||
may cause trouble when you install several development packages of other
|
||||
MPI implementations, i.e. LAM or MPICH.
|
||||
|
||||
If you would like to build Debian packages that link against multiple MPI
|
||||
implementations, we recommend to point your build system to the locations
|
||||
under /usr/lib instead of relying on update-alternatives. This may also allow
|
||||
parallel builds.
|
||||
|
||||
-- Debian Open MPI Team <pkg-openmpi-maintainers@lists.alioth.debian.org>, Mon, 21 Jul 2008 16:34:30 +0200
|
|
@ -0,0 +1 @@
|
|||
/usr/share/man/man1
|
|
@ -0,0 +1 @@
|
|||
/usr/lib/*/openmpi/lib/*.mod openmpi
|
|
@ -0,0 +1,7 @@
|
|||
## Library headers
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/*
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/* /usr/lib/${DEB_HOST_MULTIARCH}/fortran/${env:GFORTRAN_VERSION}/openmpi
|
||||
## .so symlinks
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/lib*.so
|
||||
## pkg-config .pc files
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/*.pc
|
|
@ -0,0 +1,46 @@
|
|||
## SONAME symlinks
|
||||
/usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so.50 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_monitoring.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_sm.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_cxx.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_mpifh.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempif08.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempi_ignore_tkr.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_mpifh.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_usempif08.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40 usr/lib/${DEB_HOST_MULTIARCH}/fortran/gfortran/libmpi_usempi_ignore_tkr.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libompitrace.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-pal.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-rte.so
|
||||
## Convenience link for header files, see bug #493875
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/include/ usr/include/${DEB_HOST_MULTIARCH}/openmpi
|
||||
# pkg-config
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-fort.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-fort.pc
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/orte.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/orte.pc
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi.pc
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-c.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-c.pc
|
||||
# opal.pc bug #814515: opal.pc conflicts with libopal-dev
|
||||
#usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/opal.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/opal.pc
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/pkgconfig/ompi-cxx.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ompi-cxx.pc
|
||||
# Historical links; use $LIBDIR/openmpi/lib instead
|
||||
# libmpi.so is handled by the mpi-${DEB_HOST_MULTIARCH} alternative
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so.50 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_monitoring.so
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so
|
||||
# JS
|
||||
#/usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/external/jquery/jquery.js
|
||||
#/usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-3.3.1.js
|
||||
#/usr/share/javascript/jquery-ui/themes/base/jquery-ui.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.css
|
||||
#/usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.js
|
||||
#/usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.css
|
||||
#/usr/share/javascript/jquery-ui/jquery-ui.min.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.js
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
|
||||
update-alternatives \
|
||||
--install /usr/include/@DEB_HOST_MULTIARCH@/mpi mpi-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/include 50 \
|
||||
--slave /usr/lib/@DEB_HOST_MULTIARCH@/libmpi.so libmpi.so-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/lib/libmpi.so \
|
||||
--slave /usr/lib/@DEB_HOST_MULTIARCH@/libmpi++.so libmpi++.so-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/lib/libmpi_cxx.so \
|
||||
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi.pc mpi.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi.pc \
|
||||
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-fort.pc mpi-fort.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-fort.pc \
|
||||
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-c.pc mpi-c.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-c.pc \
|
||||
--slave /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/mpi-cxx.pc mpi-cxx.pc-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/ompi-cxx.pc
|
||||
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# do not touch the alternative while being deconfigured
|
||||
# this is a M-A:same package which gets regularily deconfigured
|
||||
# during upgrades if multiple architectures are installed
|
||||
if [ "$1" = "remove" ]; then
|
||||
update-alternatives --remove mpi-@DEB_HOST_MULTIARCH@ /usr/lib/@DEB_HOST_MULTIARCH@/openmpi/include
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,14 @@
|
|||
# Shared libraries
|
||||
usr/lib/*/openmpi/lib/libmpi_mpifh*.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libmpi_usempif08*.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libmpi_usempi_ignore_tkr*.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libmca_common_sm.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libmpi_cxx.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libmpi.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libompitrace.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libopen-pal.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
usr/lib/*/openmpi/lib/libopen-rte.so.* /usr/lib/${DEB_HOST_MULTIARCH}
|
||||
## Plugins
|
||||
usr/lib/*/openmpi/lib/openmpi3/*.so
|
||||
# usr/lib/*/openmpi/lib/libopen-orted-mpir.so
|
||||
usr/lib/*/openmpi/lib/ompi_monitoring_prof.so
|
|
@ -0,0 +1,14 @@
|
|||
# Compatibility links to /usr/bin
|
||||
# SONAME symlinks
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmca_common_sm.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40.30.1 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_cxx.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh-gfortran.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_mpifh.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40.30.4 usr/lib/${DEB_HOST_MULTIARCH}/libmpi.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempif08-gfortran.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40.30.0 usr/lib/${DEB_HOST_MULTIARCH}/libmpi_usempi_ignore_tkr-gfortran.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40.30.1 usr/lib/${DEB_HOST_MULTIARCH}/libompitrace.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40.30.2 usr/lib/${DEB_HOST_MULTIARCH}/libopen-pal.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40.30.2 usr/lib/${DEB_HOST_MULTIARCH}/libopen-rte.so.40
|
|
@ -0,0 +1,46 @@
|
|||
/usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/openmpi3/*.la
|
||||
/usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/*.la
|
||||
# Installed, but dh_install doesn't handle the mv well
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_monitoring.so.50
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-pal.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/liboshmem.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_mpifh.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_cxx.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libopen-rte.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_ompio.so.41
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempif08.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_ucx.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_java.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi_usempi_ignore_tkr.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_sm.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmca_common_verbs.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libompitrace.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/libmpi.so.40
|
||||
usr/lib/${DEB_HOST_MULTIARCH}/openmpi/lib/mpi.jar
|
||||
usr/bin/shmemrun
|
||||
usr/bin/mpirun.openmpi
|
||||
usr/bin/oshrun
|
||||
usr/share/man/man1/ompi-server.1
|
||||
usr/share/man/man1/mpijavac.1
|
||||
usr/share/man/man1/oshc++.1
|
||||
usr/share/man/man1/orte-info.1
|
||||
usr/share/man/man1/oshcxx.1
|
||||
usr/share/man/man1/shmemCC.1
|
||||
usr/share/man/man1/shmemcc.1
|
||||
usr/share/man/man1/shmemfort.1
|
||||
usr/share/man/man1/shmemcxx.1
|
||||
usr/share/man/man1/orte-server.1
|
||||
usr/share/man/man1/oshmem_info.1
|
||||
usr/share/man/man1/shmemrun.1
|
||||
usr/share/man/man1/oshcc.1
|
||||
usr/share/man/man1/oshrun.1
|
||||
usr/share/man/man1/oshCC.1
|
||||
usr/share/man/man1/oshfort.1
|
||||
usr/share/man/man1/shmemc++.1
|
||||
### TODO:
|
||||
# Need to handle binary-indep builds with dh_missing
|
||||
/usr/bin/*
|
||||
/usr/lib/*/openmpi/lib/*
|
||||
usr/share/pmix/*
|
||||
# These will not be installed on binary-only builds
|
||||
usr/share/doc/openmpi/javadoc-openmpi/*
|
|
@ -0,0 +1,52 @@
|
|||
Open MPI for Debian
|
||||
-------------------
|
||||
|
||||
InfiniBand support
|
||||
------------------
|
||||
|
||||
InfiniBand and UCX support is build into the package and enabled by default.
|
||||
On Debian, OpenMPI sets the following:
|
||||
|
||||
OMPI_MCA_btl_base_warn_component_unused=0
|
||||
btl = ^uct,openib
|
||||
pml = ^ucx
|
||||
osc = ^ucx
|
||||
|
||||
This is set in /etc/openmpi/openmpi-mca-params.conf and turns off warnings that OpenFabric is configured
|
||||
but not used on the system. Many or most users of Debian will not have OpenFabric present on their systems
|
||||
and turning this off prevents spurious warnings that were breaking higher-level libraries and
|
||||
applications.
|
||||
|
||||
However the Libfabric EFA provider currently does not support applications calling fork()
|
||||
when memory registrations are handled by the EFA provider. This is to prevent applications
|
||||
from encountering potential data corruption or crashes when operating in this mode.
|
||||
Most applications, including the majority of MPI and NCCL applications, will still function
|
||||
with this constraint. Some applications do require fork() support, however,
|
||||
these applications do not require memory registrations to be handled by the EFA provider.
|
||||
|
||||
If you wish to use OpenIB and know the application to be safe, comment out the exclude line.
|
||||
|
||||
Please see https://github.com/ofiwg/libfabric/issues/6332 for details.
|
||||
|
||||
Similarly UCX is disabled due to spurious warnings about missing devices on systems without RDMA.
|
||||
Please enable as required.
|
||||
|
||||
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
|
||||
|
||||
-- Alastair McKinstry <mckinstry@debian.org>, Sat, 9 Jan 2021 13:34:35 +0000
|
|
@ -0,0 +1 @@
|
|||
usr/share/man/man1
|
|
@ -0,0 +1,41 @@
|
|||
## Configuration files
|
||||
etc/openmpi/*
|
||||
## Executables
|
||||
usr/bin/aggregate_profile
|
||||
usr/bin/profile2mat
|
||||
usr/bin/ompi-clean
|
||||
usr/bin/ompi_info
|
||||
usr/bin/ompi-server
|
||||
usr/bin/orte-server
|
||||
usr/bin/orte-clean
|
||||
usr/bin/orted
|
||||
usr/bin/orterun
|
||||
usr/bin/orte-info
|
||||
usr/bin/ortecc
|
||||
usr/bin/mpiexec.openmpi
|
||||
usr/bin/mpirun.openmpi
|
||||
## 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/mpifort.openmpi
|
||||
usr/share/man/man1/mpifort.openmpi.1
|
||||
usr/bin/opalc++
|
||||
usr/share/man/man1/opalc++.1
|
||||
usr/bin/opalcc
|
||||
usr/share/man/man1/opalcc.1
|
||||
## Wrappers and man pages
|
||||
usr/bin/opal_wrapper
|
||||
usr/share/man/man1/opal_wrapper.1
|
||||
# NOTE: There's no man page for opal_wrapper_script (upstream, lintian warning)
|
||||
usr/share/man/man1/ompi-server.1
|
||||
usr/share/man/man1/orte-info.1
|
|
@ -0,0 +1,9 @@
|
|||
usr/share/man/man1/mpiexec.openmpi.1 usr/share/man/man1/mpirun.openmpi.1
|
||||
## 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
|
|
@ -0,0 +1,8 @@
|
|||
debian/tmp/usr/share/man/man1/ompi-clean.1
|
||||
debian/tmp/usr/share/man/man1/ompi_info.1
|
||||
debian/tmp/usr/share/man/man1/orte-clean.1
|
||||
debian/tmp/usr/share/man/man1/orted.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
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
|
||||
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
|
||||
|
||||
update-alternatives \
|
||||
--install /usr/bin/mpicc mpi /usr/bin/mpicc.openmpi 50 \
|
||||
--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/bin/mpifort mpifort /usr/bin/mpifort.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 \
|
||||
--slave /usr/share/man/man1/mpifort.1.gz mpifort.1.gz /usr/share/man/man1/mpifort.openmpi.1.gz
|
||||
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ]; then
|
||||
update-alternatives --remove mpirun /usr/bin/mpirun.openmpi
|
||||
update-alternatives --remove mpi /usr/bin/mpicc.openmpi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,4 @@
|
|||
## Aggregate MCA (AMCA) Parameter Sets
|
||||
usr/share/openmpi/amca-param-sets/*
|
||||
## Help files and other stuff
|
||||
usr/share/openmpi/*
|
|
@ -0,0 +1,7 @@
|
|||
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
|
||||
usr/share/openmpi/mpifort-wrapper-data.txt usr/share/openmpi/mpifort.openmpi-wrapper-data.txt
|
|
@ -0,0 +1 @@
|
|||
usr/share/man/man7/*
|
|
@ -0,0 +1,2 @@
|
|||
debian/tmp/usr/share/man/man7/*
|
||||
debian/tmp/usr/share/man/man3/*
|
|
@ -0,0 +1,152 @@
|
|||
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.
|
||||
.
|
||||
Also changes by Samuel Thibault <sthibault@debian.org>
|
||||
See bugs.debian.org/846965
|
||||
Author: Pino Toscano <pino@debian.org>
|
||||
Forwarded: partially
|
||||
Last-Update: 2018-10-24
|
||||
|
||||
Index: openmpi-4.1.0/opal/util/stacktrace.c
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/opal/util/stacktrace.c
|
||||
+++ openmpi-4.1.0/opal/util/stacktrace.c
|
||||
@@ -588,8 +588,12 @@ int opal_util_register_stackhandlers (vo
|
||||
|
||||
/* Setup the signals to catch */
|
||||
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
|
||||
Index: openmpi-4.1.0/orte/mca/odls/base/odls_base_default_fns.c
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/orte/mca/odls/base/odls_base_default_fns.c
|
||||
+++ openmpi-4.1.0/orte/mca/odls/base/odls_base_default_fns.c
|
||||
@@ -859,7 +859,11 @@ static int setup_path(orte_app_context_t
|
||||
* again not match getcwd! This is beyond our control - we are only
|
||||
* ensuring they start out matching.
|
||||
*/
|
||||
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
|
||||
+ basedir = get_current_dir_name();
|
||||
+#else
|
||||
getcwd(dir, sizeof(dir));
|
||||
+#endif
|
||||
*wdir = strdup(dir);
|
||||
opal_setenv("PWD", dir, true, &app->env);
|
||||
/* update the initial wdir value too */
|
||||
@@ -1068,7 +1072,11 @@ void orte_odls_base_default_launch_local
|
||||
orte_app_context_t *app;
|
||||
orte_proc_t *child=NULL;
|
||||
int rc=ORTE_SUCCESS;
|
||||
- char basedir[MAXPATHLEN];
|
||||
+#if !defined(MAXPATHLEN) && defined(__GLIBC__)
|
||||
+ char *basedir=NULL;
|
||||
+#else
|
||||
+ char basedir[MAXPATHLEN];
|
||||
+#endif
|
||||
int j, idx;
|
||||
int total_num_local_procs = 0;
|
||||
orte_odls_launch_local_t *caddy = (orte_odls_launch_local_t*)cbdata;
|
||||
@@ -2064,7 +2072,11 @@ int orte_odls_base_default_restart_proc(
|
||||
* bouncing around as we execute this app, 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 this child's jobdat */
|
||||
if (NULL == (jobdat = orte_get_job_data_object(child->name.jobid))) {
|
||||
Index: openmpi-4.1.0/ompi/include/ompi_config.h
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/include/ompi_config.h
|
||||
+++ openmpi-4.1.0/ompi/include/ompi_config.h
|
||||
@@ -28,6 +28,10 @@
|
||||
|
||||
#include "opal_config.h"
|
||||
|
||||
+#ifndef PATH_MAX /* Hurd */
|
||||
+#define PATH_MAX 65535
|
||||
+#endif
|
||||
+
|
||||
#define OMPI_IDENT_STRING OPAL_IDENT_STRING
|
||||
|
||||
/***********************************************************************
|
||||
Index: openmpi-4.1.0/opal/mca/base/mca_base_var.c
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/opal/mca/base/mca_base_var.c
|
||||
+++ openmpi-4.1.0/opal/mca/base/mca_base_var.c
|
||||
@@ -51,6 +51,14 @@
|
||||
#include "opal/util/opal_environ.h"
|
||||
#include "opal/runtime/opal.h"
|
||||
|
||||
+#ifndef MAXPATHLEN /* Hurd */
|
||||
+#define MAXPATHLEN 65535
|
||||
+#endif
|
||||
+
|
||||
+#ifndef PATH_MAX /* Hurd */
|
||||
+#define PATH_MAX 65535
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* local variables
|
||||
*/
|
||||
Index: openmpi-4.1.0/orte/include/orte_config.h
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/orte/include/orte_config.h
|
||||
+++ openmpi-4.1.0/orte/include/orte_config.h
|
||||
@@ -26,6 +26,13 @@
|
||||
|
||||
#include "opal_config.h"
|
||||
|
||||
+#ifndef PATH_MAX /* Hurd */
|
||||
+#define PATH_MAX 65535
|
||||
+#endif
|
||||
+#ifndef MAXPATHLEN
|
||||
+#define MAXPATHLEN 65535
|
||||
+#endif
|
||||
+
|
||||
#define ORTE_IDENT_STRING OPAL_IDENT_STRING
|
||||
|
||||
# if OPAL_C_HAVE_VISIBILITY
|
||||
Index: openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
|
||||
+++ openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_preadv.c
|
||||
@@ -32,6 +32,10 @@
|
||||
static ssize_t mca_fbtl_posix_preadv_datasieving (ompio_file_t *fh);
|
||||
static ssize_t mca_fbtl_posix_preadv_generic (ompio_file_t *fh);
|
||||
|
||||
+#ifndef IOV_MAX
|
||||
+#define IOV_MAX 1024
|
||||
+#endif
|
||||
+
|
||||
ssize_t mca_fbtl_posix_preadv (ompio_file_t *fh )
|
||||
{
|
||||
ssize_t bytes_read=0, ret_code=0;
|
||||
Index: openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
|
||||
+++ openmpi-4.1.0/ompi/mca/fbtl/posix/fbtl_posix_pwritev.c
|
||||
@@ -33,6 +33,10 @@
|
||||
static ssize_t mca_fbtl_posix_pwritev_datasieving (ompio_file_t *fh );
|
||||
static ssize_t mca_fbtl_posix_pwritev_generic (ompio_file_t *fh );
|
||||
|
||||
+#ifndef IOV_MAX
|
||||
+#define IOV_MAX 1024
|
||||
+#endif
|
||||
+
|
||||
ssize_t mca_fbtl_posix_pwritev(ompio_file_t *fh )
|
||||
{
|
||||
ssize_t bytes_written=0, ret_code=0;
|
|
@ -0,0 +1,17 @@
|
|||
Desciption: Fix underlinking
|
||||
Prevents symbol lookup error: ../openmpi4/mca_mtl_ofi.so:
|
||||
undefined symbol: fi_dupinfo when linked with --as-needed
|
||||
Bug-Debian: https://bugs.debian.org/899104
|
||||
Author: Graham Inggs <ginggs@debian.org>
|
||||
Last-Update: 2018-05-23
|
||||
|
||||
Index: openmpi-4.1.0/ompi/mca/mtl/ofi/Makefile.am
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mca/mtl/ofi/Makefile.am
|
||||
+++ openmpi-4.1.0/ompi/mca/mtl/ofi/Makefile.am
|
||||
@@ -1,4 +1,4 @@
|
||||
-#
|
||||
+
|
||||
# Copyright (c) 2013-2015 Intel, Inc. All rights reserved
|
||||
#
|
||||
# Copyright (c) 2014-2019 Cisco Systems, Inc. All rights reserved
|
|
@ -0,0 +1,240 @@
|
|||
Author: Helge Deller <deller@gmx.de>
|
||||
Description: Support for the HPPA architecture
|
||||
Bug-Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776730
|
||||
Last-Updated: 2016-09-04
|
||||
Forwarded: no
|
||||
|
||||
Index: openmpi-4.1.0/config/opal_config_asm.m4
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/config/opal_config_asm.m4
|
||||
+++ openmpi-4.1.0/config/opal_config_asm.m4
|
||||
@@ -1104,6 +1104,12 @@ AC_DEFUN([OPAL_CONFIG_ASM],[
|
||||
[AC_MSG_ERROR([No atomic primitives available for $host])])
|
||||
;;
|
||||
|
||||
+ hppa*)
|
||||
+ opal_cv_asm_arch="HPPA"
|
||||
+ OPAL_ASM_SUPPORT_64BIT=0
|
||||
+ OPAL_GCC_INLINE_ASSIGN='"copy 0,%0" : "=&r"(ret)'
|
||||
+ ;;
|
||||
+
|
||||
mips-*|mips64*)
|
||||
# Should really find some way to make sure that we are on
|
||||
# a MIPS III machine (r4000 and later)
|
||||
Index: openmpi-4.1.0/opal/include/opal/sys/architecture.h
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/opal/include/opal/sys/architecture.h
|
||||
+++ openmpi-4.1.0/opal/include/opal/sys/architecture.h
|
||||
@@ -36,6 +36,7 @@
|
||||
#define OPAL_X86_64 0030
|
||||
#define OPAL_POWERPC32 0050
|
||||
#define OPAL_POWERPC64 0051
|
||||
+#define OPAL_HPPA 0120
|
||||
#define OPAL_SPARC 0060
|
||||
#define OPAL_SPARCV9_32 0061
|
||||
#define OPAL_SPARCV9_64 0062
|
||||
Index: openmpi-4.1.0/opal/include/opal/sys/hppa/atomic.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ openmpi-4.1.0/opal/include/opal/sys/hppa/atomic.h
|
||||
@@ -0,0 +1,95 @@
|
||||
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
+/*
|
||||
+ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
+ * University Research and Technology
|
||||
+ * Corporation. All rights reserved.
|
||||
+ * Copyright (c) 2004-2013 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) 2011 Sandia National Laboratories. All rights reserved.
|
||||
+ * Copyright (c) 2014 Los Alamos National Security, LLC. All rights
|
||||
+ * reserved.
|
||||
+ * $COPYRIGHT$
|
||||
+ *
|
||||
+ * Additional copyrights may follow
|
||||
+ *
|
||||
+ * $HEADER$
|
||||
+ */
|
||||
+
|
||||
+#ifndef OPAL_SYS_ARCH_ATOMIC_H
|
||||
+#define OPAL_SYS_ARCH_ATOMIC_H 1
|
||||
+
|
||||
+/**********************************************************************
|
||||
+ *
|
||||
+ * Memory Barriers
|
||||
+ *
|
||||
+ *********************************************************************/
|
||||
+#define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
|
||||
+
|
||||
+static inline void opal_atomic_mb(void)
|
||||
+{
|
||||
+ __sync_synchronize();
|
||||
+}
|
||||
+
|
||||
+static inline void opal_atomic_rmb(void)
|
||||
+{
|
||||
+ __sync_synchronize();
|
||||
+}
|
||||
+
|
||||
+static inline void opal_atomic_wmb(void)
|
||||
+{
|
||||
+ __sync_synchronize();
|
||||
+}
|
||||
+
|
||||
+#if OPAL_WANT_SMP_LOCKS
|
||||
+#define MB() opal_atomic_mb()
|
||||
+#else
|
||||
+#define MB()
|
||||
+#endif
|
||||
+
|
||||
+/**********************************************************************
|
||||
+ *
|
||||
+ * Atomic math operations
|
||||
+ *
|
||||
+ *********************************************************************/
|
||||
+
|
||||
+#define OPAL_HAVE_ATOMIC_CMPSET_32 1
|
||||
+static inline int opal_atomic_cmpset_acq_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_rel_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_32( volatile int32_t *addr,
|
||||
+ int32_t oldval, int32_t newval)
|
||||
+{
|
||||
+ return __sync_bool_compare_and_swap(addr, oldval, newval);
|
||||
+}
|
||||
+
|
||||
+#define OPAL_HAVE_ATOMIC_MATH_32 1
|
||||
+
|
||||
+#define OPAL_HAVE_ATOMIC_ADD_32 1
|
||||
+static inline int32_t opal_atomic_add_32(volatile int32_t *addr, int32_t delta)
|
||||
+{
|
||||
+ return __sync_add_and_fetch(addr, delta);
|
||||
+}
|
||||
+
|
||||
+#define OPAL_HAVE_ATOMIC_SUB_32 1
|
||||
+static inline int32_t opal_atomic_sub_32(volatile int32_t *addr, int32_t delta)
|
||||
+{
|
||||
+ return __sync_sub_and_fetch(addr, delta);
|
||||
+}
|
||||
+
|
||||
+#define OPAL_HAVE_ATOMIC_CMPSET_64 0
|
||||
+
|
||||
+#endif /* ! OPAL_SYS_ARCH_ATOMIC_H */
|
||||
Index: openmpi-4.1.0/opal/include/opal/sys/hppa/Makefile.am
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ openmpi-4.1.0/opal/include/opal/sys/hppa/Makefile.am
|
||||
@@ -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/hppa/atomic.h \
|
||||
+ opal/sys/hppa/timer.h
|
||||
Index: openmpi-4.1.0/opal/include/opal/sys/hppa/timer.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ openmpi-4.1.0/opal/include/opal/sys/hppa/timer.h
|
||||
@@ -0,0 +1,33 @@
|
||||
+/*
|
||||
+ * 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 OPAL_SYS_ARCH_TIMER_H
|
||||
+#define OPAL_SYS_ARCH_TIMER_H 1
|
||||
+
|
||||
+
|
||||
+typedef uint64_t opal_timer_t;
|
||||
+
|
||||
+static inline opal_timer_t
|
||||
+opal_sys_timer_get_cycles(void)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+#define OPAL_HAVE_SYS_TIMER_GET_CYCLES 0
|
||||
+
|
||||
+#endif /* ! OPAL_SYS_ARCH_TIMER_H */
|
||||
Index: openmpi-4.1.0/opal/include/opal/sys/timer.h
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/opal/include/opal/sys/timer.h
|
||||
+++ openmpi-4.1.0/opal/include/opal/sys/timer.h
|
||||
@@ -90,6 +90,8 @@ BEGIN_C_DECLS
|
||||
#include "opal/sys/sparcv9/timer.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
|
||||
#include "opal/sys/mips/timer.h"
|
||||
+#elif OPAL_ASSEMBLY_ARCH == OPAL_HPPA
|
||||
+#include "opal/sys/hppa/timer.h"
|
||||
#endif
|
||||
|
||||
#ifndef DOXYGEN
|
||||
Index: openmpi-4.1.0/opal/mca/timer/linux/configure.m4
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/opal/mca/timer/linux/configure.m4
|
||||
+++ openmpi-4.1.0/opal/mca/timer/linux/configure.m4
|
||||
@@ -47,7 +47,7 @@ AC_DEFUN([MCA_opal_timer_linux_CONFIG],[
|
||||
[timer_linux_happy="no"])])
|
||||
|
||||
case "${host}" in
|
||||
- i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*)
|
||||
+ i?86-*linux*|x86_64*linux*|ia64-*linux*|powerpc-*linux*|powerpc64-*linux*|powerpc64le-*linux*|powerpcle-*linux*|sparc*-*linux*|aarch64-*linux*|hppa*-*linux*)
|
||||
AS_IF([test "$timer_linux_happy" = "yes"],
|
||||
[AS_IF([test -r "/proc/cpuinfo"],
|
||||
[timer_linux_happy="yes"],
|
||||
Index: openmpi-4.1.0/opal/include/opal/sys/atomic.h
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/opal/include/opal/sys/atomic.h
|
||||
+++ openmpi-4.1.0/opal/include/opal/sys/atomic.h
|
||||
@@ -169,6 +169,8 @@ enum {
|
||||
#include "opal/sys/ia32/atomic.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
|
||||
#include "opal/sys/ia64/atomic.h"
|
||||
+#elif OPAL_ASSEMBLY_ARCH == OPAL_HPPA
|
||||
+#include "opal/sys/hppa/atomic.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_MIPS
|
||||
#include "opal/sys/mips/atomic.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32
|
|
@ -0,0 +1,11 @@
|
|||
--- a/opal/include/opal/sys/timer.h
|
||||
+++ b/opal/include/opal/sys/timer.h
|
||||
@@ -78,8 +78,6 @@
|
||||
#include "opal/sys/arm64/timer.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_IA32
|
||||
#include "opal/sys/ia32/timer.h"
|
||||
-#elif OPAL_ASSEMBLY_ARCH == OPAL_IA64
|
||||
-#include "opal/sys/ia64/timer.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC32
|
||||
#include "opal/sys/powerpc/timer.h"
|
||||
#elif OPAL_ASSEMBLY_ARCH == OPAL_POWERPC64
|
|
@ -0,0 +1,26 @@
|
|||
Author: Alastair McKinstry <mckinstry@debian.org>
|
||||
Description: Change install libdir to openmpi3
|
||||
This is needed to ensure that libopenmpi2, libopenmpi3 do not collide.
|
||||
Last-Updated: 2019-03-09
|
||||
Forwarded: no
|
||||
|
||||
|
||||
Index: openmpi-4.1.0/configure.ac
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/configure.ac
|
||||
+++ openmpi-4.1.0/configure.ac
|
||||
@@ -1444,11 +1444,13 @@ esac
|
||||
# easier to deal with the problem of opal, orte, and ompi built from
|
||||
# their own tarballs, with their own PACKAGE variables.
|
||||
opaldatadir='${datadir}/openmpi'
|
||||
-opallibdir='${libdir}/openmpi'
|
||||
+opallibdir='${libdir}/openmpi3'
|
||||
opalincludedir='${includedir}/openmpi'
|
||||
+pkglibdir='${libdir}/openmpi3'
|
||||
AC_SUBST(opaldatadir)
|
||||
AC_SUBST(opallibdir)
|
||||
AC_SUBST(opalincludedir)
|
||||
+AC_SUBST(pkglibdir)
|
||||
|
||||
OPAL_SET_MCA_PREFIX([OMPI_MCA_])
|
||||
OPAL_SET_MCA_CMD_LINE_ID([mca])
|
|
@ -0,0 +1,73 @@
|
|||
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: Alastair McKinstry <mckinstry@debian.org>
|
||||
Forwarded: no
|
||||
Last-Update: 2018-04-08
|
||||
|
||||
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_info.3in
|
||||
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_info.3in
|
||||
@@ -32,7 +32,7 @@ Length of the string and/or buffer for n
|
||||
|
||||
.SH OUTPUT PARAMETERS
|
||||
.ft R
|
||||
-.TP li
|
||||
+.TP 1i
|
||||
num
|
||||
number of discrete values represented by this enumeration.
|
||||
.TP 1i
|
||||
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in
|
||||
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_pvar_get_info.3in
|
||||
@@ -131,7 +131,7 @@ MPI_T_PVAR_CLASS_GENERIC
|
||||
Variable does not fit into any other class. Can by represented by an type supported by the MPI tool
|
||||
information interface (see DATATYPE). Starting value is variable specific.
|
||||
|
||||
-For more information see MPI-3 \[char 167] 14.3.7.
|
||||
+For more information see MPI-3 \[char167] 14.3.7.
|
||||
|
||||
.SH DATATYPE
|
||||
.ft R
|
||||
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_Get.3in
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_Get.3in
|
||||
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_Get.3in
|
||||
@@ -104,7 +104,7 @@ window object used for communication (ha
|
||||
|
||||
.SH OUTPUT PARAMETER
|
||||
.ft R
|
||||
-.TP li
|
||||
+.TP 1i
|
||||
request
|
||||
MPI_Rget: RMA request
|
||||
.TP 1i
|
||||
Index: openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/ompi/mpi/man/man3/MPI_T_enum_get_item.3in
|
||||
+++ openmpi-4.1.0/ompi/mpi/man/man3/MPI_T_enum_get_item.3in
|
||||
@@ -36,7 +36,7 @@ Length of the string and/or buffer for n
|
||||
|
||||
.SH OUTPUT PARAMETERS
|
||||
.ft R
|
||||
-.TP li
|
||||
+.TP 1i
|
||||
value
|
||||
Variable value.
|
||||
.TP 1i
|
||||
Index: openmpi-4.1.0/orte/mca/sstore/orte_sstore.7in
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/orte/mca/sstore/orte_sstore.7in
|
||||
+++ openmpi-4.1.0/orte/mca/sstore/orte_sstore.7in
|
||||
@@ -12,8 +12,7 @@
|
||||
.\" **************************
|
||||
.SH NAME
|
||||
.
|
||||
-Open RTE MCA File Management (SStore) Framework \- Overview of Open RTE's SStore
|
||||
-framework, and selected modules. #PACKAGE_NAME# #PACKAGE_VERSION#
|
||||
+ORTE_SSTORE \- Overview of Open RTE's SStore framework, and selected modules
|
||||
.
|
||||
.\" **************************
|
||||
.\" Description Section
|
|
@ -0,0 +1,20 @@
|
|||
Index: openmpi-4.0.2/ompi/tools/wrappers/mpifort-wrapper-data.txt.in
|
||||
===================================================================
|
||||
--- openmpi-4.0.2.orig/ompi/tools/wrappers/mpifort-wrapper-data.txt.in
|
||||
+++ openmpi-4.0.2/ompi/tools/wrappers/mpifort-wrapper-data.txt.in
|
||||
@@ -12,6 +12,7 @@ language=Fortran
|
||||
compiler_env=FC
|
||||
compiler_flags_env=FCFLAGS
|
||||
compiler=@FC@
|
||||
+compiler_version=@COMPILER_VERSION@
|
||||
preprocessor_flags=
|
||||
compiler_flags=@OMPI_WRAPPER_EXTRA_FCFLAGS@
|
||||
linker_flags=@OMPI_WRAPPER_EXTRA_FC_LDFLAGS@
|
||||
@@ -24,5 +25,5 @@ libs_static=@OMPI_FORTRAN_USEMPIF08_LIB@
|
||||
dyn_lib_file=lib@OMPI_LIBMPI_NAME@.@OPAL_DYN_LIB_SUFFIX@
|
||||
static_lib_file=lib@OMPI_LIBMPI_NAME@.a
|
||||
required_file=@OMPI_WRAPPER_FORTRAN_REQUIRED_FILE@
|
||||
-includedir=${includedir}
|
||||
-libdir=${libdir}
|
||||
+includedir=${libdir}/../../fortran/@COMPILER_VERSION@/openmpi
|
||||
+libdir=${libdir}/fortran/@FC@
|
|
@ -0,0 +1,26 @@
|
|||
Description: Turn off warning that openfabric is not available
|
||||
because it breaks some overlying layers/appications in Debian.
|
||||
Also exclude openfabric/openib by default.
|
||||
See: #979041
|
||||
Author: Alastair McKinstry <mckinstry@debian.org>
|
||||
Last-Updated: 2021-09-02
|
||||
Forwarded: not-needed
|
||||
|
||||
--- a/opal/etc/openmpi-mca-params.conf
|
||||
+++ b/opal/etc/openmpi-mca-params.conf
|
||||
@@ -57,3 +57,14 @@
|
||||
|
||||
# See "ompi_info --param all all --level 9" for a full listing of Open
|
||||
# MPI MCA parameters available and their default values.
|
||||
+
|
||||
+# Silence this warning on Debian, as many systems don't have openfabric
|
||||
+# but the warning breaks higher layers or application
|
||||
+btl_base_warn_component_unused=0
|
||||
+# Avoid openib an in case applications use fork: see https://github.com/ofiwg/libfabric/issues/6332
|
||||
+# If you wish to use openib and know your application is safe, remove the following:
|
||||
+# Similarly for UCX: https://github.com/open-mpi/ompi/issues/8367
|
||||
+mtl = ^ofi
|
||||
+btl = ^uct,openib,ofi
|
||||
+pml = ^ucx
|
||||
+osc = ^ucx,pt2pt
|
||||
\ No newline at end of file
|
|
@ -0,0 +1,23 @@
|
|||
Description: fix test-suite to build on ppc64el
|
||||
Test suite hangs on ppc64el. This is due to a bug in test/class/opal_fifo.c.
|
||||
thread_test() must end with pthread_exit(NULL), not return NULL.
|
||||
Author: Thibaut Paumard <thibaut@debian.org>
|
||||
Origin: Vendor
|
||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848218
|
||||
Forwarded: no
|
||||
Last-Update: 2016-12-15
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
Index: openmpi-4.1.0/test/class/opal_fifo.c
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/test/class/opal_fifo.c
|
||||
+++ openmpi-4.1.0/test/class/opal_fifo.c
|
||||
@@ -63,7 +63,7 @@ static void *thread_test (void *arg) {
|
||||
printf ("Atomics thread finished. Time: %d s %d us %d nsec/poppush\n", (int) total.tv_sec,
|
||||
(int)total.tv_usec, (int)(timing / 1e-9));
|
||||
|
||||
- return NULL;
|
||||
+ pthread_exit(NULL);
|
||||
}
|
||||
|
||||
static void *thread_test_exhaust (void *arg) {
|
|
@ -0,0 +1,26 @@
|
|||
Description: Enable non-gfortran compilation
|
||||
Author: Alastair McKinstry <mckinstry@debian.org>
|
||||
Last-Updated: 2020-01-13
|
||||
Forwarded: no
|
||||
|
||||
Index: openmpi-4.0.2/ompi/tools/wrappers/ompi-fort.pc.in
|
||||
===================================================================
|
||||
--- openmpi-4.0.2.orig/ompi/tools/wrappers/ompi-fort.pc.in
|
||||
+++ openmpi-4.0.2/ompi/tools/wrappers/ompi-fort.pc.in
|
||||
@@ -11,11 +11,15 @@ exec_prefix=@exec_prefix@
|
||||
includedir=@includedir@
|
||||
libdir=@libdir@
|
||||
pkgincludedir=@opalincludedir@
|
||||
+# override $fortran with --define-variable when building on non-gfortran compile
|
||||
+fortran=gfortran
|
||||
+fortrandir=${libdir}/../../fortran/${fortran}
|
||||
+
|
||||
#
|
||||
# Note that -lopen-pal and all the EXTRA_LIBS are only necessary when
|
||||
# static linking (they're pulled in by libopen-rte.so's implicit
|
||||
# dependencies), so only list these in Libs.private.
|
||||
#
|
||||
-Libs: -L${libdir} @OMPI_PKG_CONFIG_LDFLAGS@ @OMPI_FORTRAN_USEMPIF08_LIB@ @OMPI_FORTRAN_USEMPI_LIB@ -l@OMPI_LIBMPI_NAME@_mpifh -l@OMPI_LIBMPI_NAME@
|
||||
+Libs: -L${libdir} @OMPI_PKG_CONFIG_LDFLAGS@ @OMPI_FORTRAN_USEMPIF08_LIB@ @OMPI_FORTRAN_USEMPI_LIB@ -l@OMPI_LIBMPI_NAME@_mpifh -l@OMPI_LIBMPI_NAME@
|
||||
Libs.private: -lopen-rte -lopen-pal @OMPI_WRAPPER_EXTRA_LIBS@
|
||||
Cflags: -I${includedir} @OMPI_WRAPPER_EXTRA_CPPFLAGS@ @OMPI_WRAPPER_EXTRA_FCFLAGS@
|
|
@ -0,0 +1,12 @@
|
|||
pkg-config.patch
|
||||
mpifort.patch
|
||||
manpage_macros
|
||||
build_hurd
|
||||
libdir.patch
|
||||
hppa.patch
|
||||
opal_fifo.patch
|
||||
verbose-ompi-rules.patch
|
||||
fix-underlinking.patch
|
||||
#version-script.patch
|
||||
no-warning-unused.patch
|
||||
ia64.patch
|
|
@ -0,0 +1,16 @@
|
|||
Description: Makefile.ompi-rules: don't set silent building
|
||||
Author: Adrian Bunk <bunk@debian.org>
|
||||
|
||||
Index: openmpi-4.1.0/Makefile.ompi-rules
|
||||
===================================================================
|
||||
--- openmpi-4.1.0.orig/Makefile.ompi-rules
|
||||
+++ openmpi-4.1.0/Makefile.ompi-rules
|
||||
@@ -53,7 +53,7 @@ endif
|
||||
# A little verbosity magic; "make" will show the terse output. "make
|
||||
# V=1" will show the actual commands used (just like the other
|
||||
# Automake-generated compilation/linker rules).
|
||||
-V=0
|
||||
+#V=0
|
||||
|
||||
OMPI_V_LN_S = $(ompi__v_LN_S_$V)
|
||||
ompi__v_LN_S_ = $(ompi__v_LN_S_$AM_DEFAULT_VERBOSITY)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,330 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export DH_VERBOSE=1
|
||||
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
DESTDIR:=$(CURDIR)/debian/tmp/
|
||||
BUILDDIR_FLANG=debian/build-flang
|
||||
BUILDDIR_GFORTRAN=debian/build-gfortran
|
||||
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||
LIBDIR:=/usr/lib/$(DEB_HOST_MULTIARCH)
|
||||
AUTOGENERATED:= libopenmpi-dev.postinst libopenmpi-dev.prerm
|
||||
|
||||
### Arch-specific stuff
|
||||
# No ibverbs support available on kFreeBSD, Hurd
|
||||
NO_VERBS_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x i386
|
||||
NO_FABRIC_ARCH:= hurd-i386 kfreebsd-amd64 kfreebsd-i386 s390x sh4 powerpc x32 i386
|
||||
PSM_ARCH:= amd64 i386
|
||||
PSM2_ARCH:= amd64
|
||||
UCX_ARCH:= amd64 ppc64el arm64
|
||||
ATOMICS_ARCH:= s390x riscv64
|
||||
NO_CMA_ARCH:= s390x mipsel hppa alpha armhf armel m68k sparc64
|
||||
NO_JAVA_ARCH:= hppa hurd-i386 kfreebsd-amd64 kfreebsd-i386 ppc64 alpha sparc64
|
||||
NO_TEST_ARCH:= hppa hurd-i386
|
||||
|
||||
|
||||
UCX:= $(if $(filter $(DEB_TARGET_ARCH), $(UCX_ARCH)), --with-ucx, )
|
||||
VERBS:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_VERBS_ARCH)), , --with-verbs )
|
||||
FABRIC:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_FABRIC_ARCH)), , --with-libfabric )
|
||||
PSM:= $(if $(filter $(DEB_TARGET_ARCH), $(PSM_ARCH)), --with-psm, )
|
||||
PSM2:= $(if $(filter $(DEB_TARGET_ARCH), $(PSM2_ARCH)), --with-psm2, )
|
||||
ATOMICS:= $(if $(filter $(DEB_TARGET_ARCH), $(ATOMICS_ARCH)), --enable-builtin-atomics, )
|
||||
CMA:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_CMA_ARCH)), --without-cma , )
|
||||
DO_TEST:= $(if $(filter $(DEB_TARGET_ARCH), $(NO_TEST_ARCH)), false, true)
|
||||
BTL_TESTS:= $(if $(DO_TEST), --enable-opal-btl-usnic-unit-tests, )
|
||||
DO_FLANG:=$(if $(wildcard /usr/bin/flang),true, false)
|
||||
|
||||
ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
|
||||
JAVA := $(if $(filter $(DEB_TARGET_ARCH), $(NO_JAVA_ARCH)), \
|
||||
,--with-jdk-dir=/usr/lib/jvm/default-java --enable-mpi-java )
|
||||
endif
|
||||
|
||||
FLANG_FCFLAGS= $(filter '-g', $(shell dpkg-buildflags --get FCFLAGS))
|
||||
FLANG_LIBDIR= $(LIBDIR)/fortran/flang
|
||||
|
||||
FLANG_VERSION=$(shell basename $(shell readlink /usr/bin/flang))
|
||||
# GFORTRAN_VERSION:=$(shell basename $(shell readlink -f /usr/bin/gfortran))
|
||||
export GFORTRAN_VERSION=gfortran-mod-15
|
||||
|
||||
# FC set to f77 by default in make
|
||||
# Read default compiler name unless FC is actually set
|
||||
ifeq ($(FC),f77)
|
||||
FC:=$(shell basename $(shell readlink /etc/alternatives/f95))
|
||||
endif
|
||||
|
||||
# Drop '-g' flag with flang. Known failure with 2018122 version
|
||||
ifneq ($(filter flang,$(FC)),)
|
||||
FCFLAGS=$(shell dpkg-buildflags --get FCLAGS | sed -e 's/-g //')
|
||||
endif
|
||||
|
||||
|
||||
ifeq (sparc,$(DEB_HOST_GNU_CPU))
|
||||
CFLAGS += -mcpu=v9
|
||||
endif
|
||||
|
||||
# Use -O3 recommended by upstream
|
||||
CFLAGS += -O3
|
||||
CXXFLAGS += -O3
|
||||
FCFLAGS += -O3
|
||||
|
||||
# Flags for the static build: see bug #502232
|
||||
#STATIC_CONFIG_PARAMS = --enable-static
|
||||
STATIC_CONFIG_PARAMS =
|
||||
|
||||
# Do not embed build username or build system hostname, see README
|
||||
export HOSTNAME=hostname
|
||||
export USER=username
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
extra_flags = \
|
||||
--disable-silent-rules \
|
||||
--disable-wrapper-runpath \
|
||||
--with-package-string="Debian OpenMPI" \
|
||||
$(VERBS) $(FABRIC) $(PSM) $(PSM2) $(CMA) \
|
||||
$(UCX) \
|
||||
--with-pmix=$(LIBDIR)/pmix2 \
|
||||
$(ATOMICS) \
|
||||
$(JAVA) \
|
||||
$(STATIC_CONFIG_PARAMS) \
|
||||
$(BTL_TESTS) \
|
||||
--with-libevent=external \
|
||||
--with-hwloc=external \
|
||||
--disable-silent-rules \
|
||||
--enable-mpi-cxx \
|
||||
--enable-ipv6 \
|
||||
--with-devel-headers \
|
||||
--with-slurm \
|
||||
--with-sge \
|
||||
--without-tm \
|
||||
--sysconfdir=/etc/openmpi \
|
||||
--libdir=\$${prefix}/lib/${DEB_HOST_MULTIARCH}/openmpi/lib \
|
||||
--includedir=\$${prefix}/lib/${DEB_HOST_MULTIARCH}/openmpi/include
|
||||
|
||||
override_dh_auto_clean:
|
||||
dh_clean
|
||||
rm -f $(patsubst %, debian/%, ${AUTOGENERATED})
|
||||
find . -name .libs -exec rm -rf {} \; || true
|
||||
find . -name .dirstamp -delete
|
||||
find . -type l -delete
|
||||
find . -name '*.o' -delete
|
||||
|
||||
override_dh_update_autotools_config:
|
||||
(cd config && autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh)
|
||||
./autogen.pl --force
|
||||
|
||||
override_dh_auto_configure:
|
||||
for f in ${AUTOGENERATED} ; do \
|
||||
sed -e 's%@DEB_HOST_MULTIARCH@%${DEB_HOST_MULTIARCH}%g' < debian/$$f.in | \
|
||||
sed -e 's/@GFORTRAN_VERSION@/${GFORTRAN_VERSION}/' > debian/$$f ; \
|
||||
done
|
||||
dh_auto_configure --builddirectory=$(BUILDDIR_GFORTRAN) -- $(extra_flags)
|
||||
$(DO_FLANG) && dh_auto_configure --builddirectory=$(BUILDDIR_FLANG) \
|
||||
-- $(extra_flags) FC=flang FCFLAGS="$(FLANG_FCFLAGS)" || true
|
||||
|
||||
override_dh_auto_build:
|
||||
dh_auto_build --builddirectory=$(BUILDDIR_GFORTRAN)
|
||||
$(DO_FLANG) && dh_auto_build --builddirectory=$(BUILDDIR_FLANG) || true
|
||||
|
||||
override_dh_install:
|
||||
dh_auto_install --builddirectory=$(BUILDDIR_GFORTRAN)
|
||||
$(DO_FLANG) && find $(BUILDDIR_FLANG) -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; || true
|
||||
# Rename the compiler and startup wrappers.
|
||||
for f in mpic++ mpicc mpiCC mpicxx mpiexec mpif77 mpif90 mpirun mpifort ; do \
|
||||
if test -f $(DESTDIR)/usr/bin/$${f}; then \
|
||||
mv $(DESTDIR)/usr/bin/$${f} $(DESTDIR)/usr/bin/$${f}.openmpi ; \
|
||||
fi; \
|
||||
done
|
||||
# Rename some files
|
||||
mv $(DESTDIR)/usr/bin/aggregate_profile.pl $(DESTDIR)/usr/bin/aggregate_profile
|
||||
mv $(DESTDIR)/usr/bin/profile2mat.pl $(DESTDIR)/usr/bin/profile2mat
|
||||
# Strip rpath from pc,wrapper files
|
||||
for f in ompi-c.pc ompi-cxx.pc ompi-f77.pc ompi-f90.pc ompi-fort.pc ompi.pc opal.pc orte.pc ; do \
|
||||
sed -e 's/-Wl,-rpath -Wl,$${libdir}//' < $(DESTDIR)/$(LIBDIR)/openmpi/lib/pkgconfig/$${f} > debian/tmp.x ; \
|
||||
mv debian/tmp.x $(DESTDIR)/$(LIBDIR)/openmpi/lib/pkgconfig/$${f} ; \
|
||||
done
|
||||
find . -name '*wrapper-data.txt' | while read f; do \
|
||||
sed -e 's/-Wl,-rpath -Wl,@{libdir}//' < $$f | \
|
||||
sed -e 's/@COMPILER_VERSION@/${GFORTRAN_VERSION}/' > debian/tmp.x ; \
|
||||
mv debian/tmp.x $$f ; done
|
||||
# Rename the compiler wrapper man pages.
|
||||
for f in mpic++ mpicc mpicxx mpiexec mpif77 mpif90 mpirun mpifort ; do \
|
||||
if test -f $(DESTDIR)/usr/share/man/man1/$${f}.1; then \
|
||||
echo DEBUG7 $${f} ;\
|
||||
mv $(DESTDIR)/usr/share/man/man1/$${f}.1 $(DESTDIR)/usr/share/man/man1/$${f}.openmpi.1 ; \
|
||||
fi; \
|
||||
if test -f $(DESTDIR)/usr/share/man/man1/$${f}.3; then \
|
||||
echo DEBUG8 $${f} ;\
|
||||
mv $(DESTDIR)/usr/share/man/man3/$${f}.3 $(DESTDIR)/usr/share/man/man1/$${f}.openmpi.3 ; \
|
||||
fi; \
|
||||
done
|
||||
cd $(DESTDIR)/usr/share/man/man3; \
|
||||
for f in *.3; do \
|
||||
mv $$f $$(echo $$f|sed -e "s|\.3|.openmpi.3|g"); \
|
||||
done; \
|
||||
mkdir -p $(DESTDIR)/$(LIBDIR)/openmpi/lib/
|
||||
cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_mpifh.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh.so.40.30.0
|
||||
cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_usempi_ignore_tkr.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.30.0
|
||||
cp $(BUILDDIR_GFORTRAN)/ompi/mpi/fortran/*/.libs/libmpi_usempif08.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08.so.40.30.0
|
||||
gcc -shared -fPIC -Wl,-soname,libmpi_mpifh-gfortran.so.40 -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-gfortran.so.40.30.0 \
|
||||
$(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh.so.40.30.0
|
||||
gcc -shared -fPIC -Wl,-soname,libmpi_usempi_ignore_tkr-gfortran.so.40 \
|
||||
-o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-gfortran.so.40.30.0 \
|
||||
$(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so.40.30.0
|
||||
gcc -shared -fPIC -Wl,-soname,libmpi_usempif08-gfortran.so.40 -o $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-gfortran.so.40.30.0 \
|
||||
$(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08.so.40.30.0
|
||||
# Flang, if present
|
||||
$(DO_FLANG) && ( \
|
||||
mkdir -p $(DESTDIR)/$(FLANG_MODDIR) ; \
|
||||
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/mpiext/*.mod openmpi ; \
|
||||
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-ignore-tkr/*.mod openmpi ; \
|
||||
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-f08/*.mod openmpi ; \
|
||||
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/use-mpi-f08/mod/*.mod openmpi ; \
|
||||
dh_fortran_mod -p libopenmpi-dev $(BUILDDIR_FLANG)/ompi/mpi/fortran/mpiext-use-mpi/*.mod openmpi ; \
|
||||
cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_mpifh.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40.30.0 ; \
|
||||
cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_usempi_ignore_tkr.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40.30.0 ; \
|
||||
cp $(BUILDDIR_FLANG)/ompi/mpi/fortran/*/.libs/libmpi_usempif08.so.40.30.0 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40.30.0 ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_mpifh-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_mpifh-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_usempif08-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_usempif08-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_usempif08.so ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_usempi_ignore_tkr-flang.so.40.30.0 $(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_usempi_ignore_tkr-flang.so.40.30.0 $(FLANG_LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr.so ; \
|
||||
) || true
|
||||
# patchelf --set-soname libmpi_mpifh-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_mpifh-flang.so.40.30.0 ; \
|
||||
# patchelf --set-soname libmpi_usempi_ignore_tkr-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempi_ignore_tkr-flang.so.40.30.0 ; \
|
||||
# patchelf --set-soname libmpi_usempif08-flang.so.40 $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_usempif08-flang.so.40.30.0 ; \
|
||||
# Strip rpath info from all executables and libraries.
|
||||
find $(DESTDIR) -type f -perm -+x -a ! -name '*.la' -a ! -name '*.mod' -exec chrpath -d '{}' \; || true
|
||||
# Rename orte-bootproxy.sh to orte-bootproxy
|
||||
if test -f $(DESTDIR)/usr/bin/orte-bootproxy.sh; then \
|
||||
mv $(DESTDIR)/usr/bin/orte-bootproxy.sh $(DESTDIR)/usr/bin/orte-bootproxy; \
|
||||
fi
|
||||
# Remove dangling symlink(s)
|
||||
rm -f $(DESTDIR)/usr/share/man/man1/mpiCC.1
|
||||
rm -f $(DESTDIR)/usr/share/man/man1/orteCC.1
|
||||
# Remove COPYRIGHT file of ptmalloc2. It's reproduced in debian/copyright.
|
||||
rm -fr $(DESTDIR)/usr/share/openmpi/doc/
|
||||
# Remove pmi2, pmix now in separate package
|
||||
rm -rf $(DESTDIR)/usr/lib/*/openmpi/include/pmi*
|
||||
# Remove buggy ${pkgincludedir} refs from pkg-config files. #837062
|
||||
find . -name '*.pc' -type f | while read f ; do \
|
||||
cat $${f} | sed -e 's%-I$${pkgincludedir}[a-zA-Z0-9/]* %%g' > x ; \
|
||||
mv x $${f}; done
|
||||
# sanitize build paths for bit-reproducibility
|
||||
if test $(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; then \
|
||||
sed -e 's%${CURDIR}%/build/openmpi%g' < $(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h \
|
||||
> $(DESTDIR)/x ; \
|
||||
mv $(DESTDIR)/x /$(DESTDIR)/${LIBDIR}/openmpi/include/openmpi/opal_config.h ; \
|
||||
fi
|
||||
# Continue as usual
|
||||
dh_install
|
||||
# oshmem, shmem only built on Linux so do by hand or it may fail ...
|
||||
# mkdir -p debian/libopenmpi3/$(LIBDIR)/openmpi/lib
|
||||
if test -f $(DESTDIR)/usr/bin/oshmem_info ; then \
|
||||
dh_link -p openmpi-bin /usr/bin/mpirun.openmpi /usr/bin/oshrun ;\
|
||||
dh_install -p openmpi-bin /usr/bin/oshmem_info ; \
|
||||
dh_install -p openmpi-bin /usr/bin/oshcxx ;\
|
||||
dh_install -p openmpi-bin /usr/bin/oshcc ;\
|
||||
dh_install -p openmpi-bin /usr/bin/oshc++ ;\
|
||||
dh_install -p openmpi-bin /usr/bin/oshfort ; \
|
||||
dh_install -p openmpi-bin /usr/bin/oshCC ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshfort.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshrun.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshmem_info.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshcc.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshCC.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshc++.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/oshcxx.1 ; \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/liboshmem.so.40.30.2 $(LIBDIR) ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/liboshmem.so.40.30.2 $(LIBDIR)/liboshmem.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/liboshmem.so.40 $(LIBDIR)/openmpi/lib/liboshmem.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/liboshmem.so.40 $(LIBDIR)/liboshmem.so ; \
|
||||
fi
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmpi_java.so.40.30.0 ; then \
|
||||
dh_install -p openmpi-bin /usr/bin/mpijavac ; \
|
||||
dh_install -p openmpi-bin usr/bin/mpijavac.pl ; \
|
||||
dh_installman openmpi-bin $(DESTDIR)/usr/share/man/man1/mpijavac.1 ; \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmpi_java.so.40.30.0 $(LIBDIR); \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmpi_java.so.40.30.0 $(LIBDIR)/libmpi_java.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_java.so.40 $(LIBDIR)/openmpi/lib/libmpi_java.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmpi_java.so.40 $(LIBDIR)/libmpi_java.so ; \
|
||||
fi
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ucx.so.40.30.2 ; then \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ucx.so.40.30.2 $(LIBDIR); \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ucx.so.40.30.2 $(LIBDIR)/libmca_common_ucx.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ucx.so.40 $(LIBDIR)/openmpi/lib/libmca_common_ucx.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ucx.so.40 $(LIBDIR)/libmca_common_ucx.so ; \
|
||||
fi
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_monitoring.so.50.20.0 ; then \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_monitoring.so.50.20.0 $(LIBDIR) ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_monitoring.so.50.20.0 $(LIBDIR)/libmca_common_monitoring.so.50 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_monitoring.so.50 $(LIBDIR)/openmpi/lib/libmca_common_monitoring.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_monitoring.so.50 $(LIBDIR)/libmca_common_monitoring.so ; \
|
||||
fi
|
||||
# No longer needed ?
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ofi.so.10.0.2 ; then \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ofi.so.10.0.2 $(LIBDIR) ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ofi.so.10.0.2 $(LIBDIR)/libmca_common_ofi.so.10 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ofi.so.10 $(LIBDIR)/openmpi/lib/libmca_common_ofi.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ofi.so.10 $(LIBDIR)/libmca_common_ofi.so ; \
|
||||
fi
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_ompio.so.41.29.4; then \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_ompio.so.41.29.4 $(LIBDIR) ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_ompio.so.41.29.4 $(LIBDIR)/libmca_common_ompio.so.41 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ompio.so.41 $(LIBDIR)/openmpi/lib/libmca_common_ompio.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_ompio.so.41 $(LIBDIR)/libmca_common_ompio.so ; \
|
||||
fi
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_verbs.so.40.30.0 ; then \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_verbs.so.40.30.0 $(LIBDIR) ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_verbs.so.40.30.0 $(LIBDIR)/libmca_common_verbs.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_verbs.so.40 $(LIBDIR)/openmpi/lib/libmca_common_verbs.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_verbs.so.40 $(LIBDIR)/libmca_common_verbs.so ; \
|
||||
fi
|
||||
if test -f $(DESTDIR)/$(LIBDIR)/openmpi/lib/libmca_common_libfabric.so.40.30.0 ; then \
|
||||
dh_install -p libopenmpi3 $(LIBDIR)/openmpi/lib/libmca_common_libfabric.so.40.30.0 $(LIBDIR) ; \
|
||||
dh_link -p libopenmpi3 $(LIBDIR)/libmca_common_libfabric.so.40.30.0 $(LIBDIR)/libmca_common_libfabric.so.40 ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_libfabric.so.40 $(LIBDIR)/openmpi/lib/libmca_common_libfabric.so ; \
|
||||
dh_link -p libopenmpi-dev $(LIBDIR)/libmca_common_libfabric.so.40 $(LIBDIR)/libmca_common_libfabric.so ; \
|
||||
fi
|
||||
# If shmemrun exists, its a broken link so use -h to test
|
||||
if test -h $(DESTDIR)/usr/bin/shmemrun ; then \
|
||||
dh_link -p openmpi-bin /usr/bin/mpirun.openmpi /usr/bin/shmemrun ;\
|
||||
dh_install -p openmpi-bin usr/bin/shmemcc ; \
|
||||
dh_install -p openmpi-bin usr/bin/shmemcxx ; \
|
||||
dh_install -p openmpi-bin usr/bin/shmemc++ ; \
|
||||
dh_install -p openmpi-bin /usr/bin/shmemCC ; \
|
||||
dh_install -p openmpi-bin /usr/bin/shmemfort ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemcc.1 ;\
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemc++.1 ;\
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemfort.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemrun.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemCC.1 ; \
|
||||
dh_installman -p openmpi-bin $(DESTDIR)/usr/share/man/man1/shmemcxx.1 ; \
|
||||
fi
|
||||
|
||||
override_dh_fixperms-arch:
|
||||
chmod 0644 debian/libopenmpi*/$(LIBDIR)/fortran/*/openmpi/*.mod
|
||||
rm -f debian/libopenmpi-dev/usr/lib/*/openmpi/lib/ompi_monitoring_prof.so
|
||||
dh_fixperms
|
||||
|
||||
override_dh_auto_test:
|
||||
$(DO_TEST) && dh_auto_test || echo "Tests disabled on ${NO_TEST_ARCH} systems for the moment"
|
||||
|
||||
override_dh_shlibdeps:
|
||||
dh_shlibdeps -l$(DESTDIR)/$(LIBDIR)/openmpi/lib -- --ignore-missing-info
|
||||
|
||||
override_dh_installdocs:
|
||||
dh_installdocs --all NEWS README
|
||||
ifeq ($(filter nojava,$(DEB_BUILD_PROFILES)),)
|
||||
dh_installdocs -p openmpi-doc debian/tmp/usr/share/doc/openmpi/javadoc-openmpi
|
||||
dh_link -p libopenmpi-dev /usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/external/jquery/jquery.js
|
||||
dh_link -p libopenmpi-dev /usr/share/javascript/jquery/jquery.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-3.5.1.js
|
||||
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/themes/base/jquery-ui.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.css
|
||||
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.js
|
||||
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/themes/base/jquery-ui.min.css /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.css
|
||||
dh_link -p libopenmpi-dev /usr/share/javascript/jquery-ui/jquery-ui.min.js /usr/share/doc/libopenmpi-dev/javadoc-openmpi/jquery/jquery-ui.min.js
|
||||
endif
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
# Ensure all mca shared objects, etc are ok
|
||||
|
||||
ompi_info --all 2>&1 | grep "cannot open shared object file"
|
||||
|
||||
[ $? -eq 1 ]
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
Tests: hello1
|
||||
Depends: gcc, openmpi-bin, libopenmpi-dev
|
||||
|
||||
Tests: hello2
|
||||
Depends: gfortran, libopenmpi-dev, openmpi-bin
|
||||
|
||||
Tests: hello4
|
||||
Depends: gfortran, libopenmpi-dev, openmpi-bin
|
||||
|
||||
Tests: check_shared_objs
|
||||
Depends: openmpi-bin
|
|
@ -0,0 +1,28 @@
|
|||
#include <mpi.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
// Initialize the MPI environment
|
||||
MPI_Init(NULL, NULL);
|
||||
|
||||
// Get the number of processes
|
||||
int world_size;
|
||||
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
|
||||
|
||||
// Get the rank of the process
|
||||
int world_rank;
|
||||
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
|
||||
|
||||
// Get the name of the processor
|
||||
char processor_name[MPI_MAX_PROCESSOR_NAME];
|
||||
int name_len;
|
||||
MPI_Get_processor_name(processor_name, &name_len);
|
||||
|
||||
// Print off a hello world message
|
||||
printf("Hello world from processor %s, rank %d out of %d processors\n",
|
||||
processor_name, world_rank, world_size);
|
||||
|
||||
// Finalize the MPI environment.
|
||||
MPI_Finalize();
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
C Fortran example
|
||||
program hello
|
||||
include 'mpif.h'
|
||||
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
|
||||
|
||||
call MPI_INIT(ierror)
|
||||
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
|
||||
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
|
||||
print*, 'node', rank, ': Hello world'
|
||||
call MPI_FINALIZE(ierror)
|
||||
end
|
|
@ -0,0 +1,11 @@
|
|||
! Fortran example
|
||||
program hello
|
||||
use mpi
|
||||
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
|
||||
|
||||
call MPI_INIT(ierror)
|
||||
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
|
||||
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
|
||||
print*, 'node', rank, ': Hello world'
|
||||
call MPI_FINALIZE(ierror)
|
||||
end
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
### Compile and run a simple MPI application
|
||||
|
||||
cd debian/tests
|
||||
mpicc -o hello hello.c
|
||||
|
||||
mpirun -n 1 ./hello
|
||||
rm ./hello
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
cd debian/tests
|
||||
|
||||
### Compile and run a simple MPI application
|
||||
|
||||
mpif90 -o hello hello.f90
|
||||
|
||||
mpirun -n 1 ./hello
|
||||
|
||||
rm ./hello
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
### Compile and run a simple MPI application, via pkg-config
|
||||
|
||||
|
||||
cc -o hello `pkg-config mpi --libs --cflags` hello.c
|
||||
|
||||
mpirun -n 1 ./hello
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
### Compile and run a simple MPI application
|
||||
cd debian/tests
|
||||
|
||||
mpif77 -o hello hello.f
|
||||
|
||||
mpirun -n 1 ./hello
|
||||
rm ./hello
|
|
@ -0,0 +1,2 @@
|
|||
version=3
|
||||
http://www.open-mpi.org/software/ompi/ .*/.*/openmpi-([\d+\.]+)\.tar\.gz
|
Loading…
Reference in New Issue