mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-05 12:38:09 -07:00
dev-python/h5py: Backport support for mpi4py-2
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=563890 Package-Manager: portage-2.2.23 Signed-off-by: Justin Lecher <jlec@gentoo.org>
This commit is contained in:
55
dev-python/h5py/files/h5py-2.5.0-mpi4py2.backport
Normal file
55
dev-python/h5py/files/h5py-2.5.0-mpi4py2.backport
Normal file
@@ -0,0 +1,55 @@
|
||||
commit 364a77403199087168786234554f459e7d985063
|
||||
Author: Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk>
|
||||
Date: Tue Nov 3 14:18:48 2015 +0000
|
||||
|
||||
setup: Support building with current mpi4py version
|
||||
|
||||
mpi4py migrated the mpi4py.mpi_c module to mpi4py.libmpi in April 2014.
|
||||
After the release of v1.3.1 but before v2. Sniff this in setup
|
||||
configure and import MPI types from the appropriate module in h5p.pyx,
|
||||
to allow building with MPI on and modern mpi4py versions.
|
||||
|
||||
diff --git a/h5py/h5p.pyx b/h5py/h5p.pyx
|
||||
index da175dd..8a1cbb0 100644
|
||||
--- a/h5py/h5p.pyx
|
||||
+++ b/h5py/h5p.pyx
|
||||
@@ -25,7 +25,11 @@ from h5py import _objects
|
||||
from ._objects import phil, with_phil
|
||||
|
||||
if MPI:
|
||||
- from mpi4py.mpi_c cimport MPI_Comm, MPI_Info, MPI_Comm_dup, MPI_Info_dup, \
|
||||
+ if MPI4PY_V2:
|
||||
+ from mpi4py.libmpi cimport MPI_Comm, MPI_Info, MPI_Comm_dup, MPI_Info_dup, \
|
||||
+ MPI_Comm_free, MPI_Info_free
|
||||
+ else:
|
||||
+ from mpi4py.mpi_c cimport MPI_Comm, MPI_Info, MPI_Comm_dup, MPI_Info_dup, \
|
||||
MPI_Comm_free, MPI_Info_free
|
||||
|
||||
# Initialization
|
||||
diff --git a/setup_build.py b/setup_build.py
|
||||
index ccc0f27..e49a4e8 100644
|
||||
--- a/setup_build.py
|
||||
+++ b/setup_build.py
|
||||
@@ -162,14 +162,22 @@ class h5py_build_ext(build_ext):
|
||||
# Rewrite config.pxi file if needed
|
||||
if not op.isfile(config_file) or config.rebuild_required:
|
||||
with open(config_file, 'wb') as f:
|
||||
+ if config.mpi:
|
||||
+ import mpi4py
|
||||
+ from distutils.version import StrictVersion
|
||||
+ v2 = StrictVersion(mpi4py.__version__) > StrictVersion("1.3.1")
|
||||
+ else:
|
||||
+ v2 = False
|
||||
s = """\
|
||||
# This file is automatically generated by the h5py setup script. Don't modify.
|
||||
|
||||
DEF MPI = %(mpi)s
|
||||
+DEF MPI4PY_V2 = %(mpi4py_v2)s
|
||||
DEF HDF5_VERSION = %(version)s
|
||||
DEF SWMR_MIN_HDF5_VERSION = (1,9,178)
|
||||
"""
|
||||
s %= {'mpi': bool(config.mpi),
|
||||
+ 'mpi4py_v2': bool(v2),
|
||||
'version': tuple(int(x) for x in config.hdf5_version.split('.'))}
|
||||
s = s.encode('utf-8')
|
||||
f.write(s)
|
||||
@@ -31,6 +31,10 @@ DEPEND="${RDEPEND}
|
||||
)
|
||||
mpi? ( dev-python/mpi4py[${PYTHON_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-mpi4py2.backport
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use mpi && export CC=mpicc
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user