mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-01-24 02:22:15 +08:00
Update openmpi
This commit is contained in:
parent
8c07d0ed31
commit
c95a7176f9
@ -1,16 +1,10 @@
|
|||||||
#
|
#
|
||||||
# Core Packages for Chakra, part of chakra-project.org
|
# Core Packages for Chakra, part of chakra-project.org
|
||||||
#
|
#
|
||||||
# maintainer (i686): Phil Miller <philm[at]chakra-project[dog]org>
|
|
||||||
# maintainer (x86_64): Drake Justice <djustice[at]chakra-project[dot]org>
|
|
||||||
|
|
||||||
# include global config
|
|
||||||
source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
|
|
||||||
|
|
||||||
|
|
||||||
pkgname=openmpi
|
pkgname=openmpi
|
||||||
pkgver=1.5.4
|
pkgver=1.5.5
|
||||||
pkgrel=2
|
pkgrel=1
|
||||||
pkgdesc="High performance message passing library (MPI)"
|
pkgdesc="High performance message passing library (MPI)"
|
||||||
arch=('i686' 'x86_64')
|
arch=('i686' 'x86_64')
|
||||||
url="http://www.open-mpi.org"
|
url="http://www.open-mpi.org"
|
||||||
@ -18,12 +12,17 @@ license=('custom')
|
|||||||
depends=('gcc' 'gcc-fortran' 'openssh' 'valgrind' 'libtool' 'hwloc')
|
depends=('gcc' 'gcc-fortran' 'openssh' 'valgrind' 'libtool' 'hwloc')
|
||||||
makedepends=('inetutils')
|
makedepends=('inetutils')
|
||||||
options=(!libtool)
|
options=(!libtool)
|
||||||
source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2)
|
source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2
|
||||||
sha1sums=('81f7736a83b2134ba20c2e5c380b4d267cfd9d9c')
|
openmpi-1.5.4-fix-fakeroot-execution.patch)
|
||||||
|
sha1sums=('206e555f6d376443f2342f721d944e67dd1a04ef'
|
||||||
|
'3161fce9870e02211dadbc0993b7805e2e811440')
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "${srcdir}/${pkgname}-${pkgver}"
|
cd "${srcdir}/${pkgname}-${pkgver}"
|
||||||
|
|
||||||
|
# Fix fakeroot
|
||||||
|
patch -p1 -i $srcdir/openmpi-1.5.4-fix-fakeroot-execution.patch
|
||||||
|
|
||||||
./configure --prefix=/usr \
|
./configure --prefix=/usr \
|
||||||
--sysconfdir=/etc/${pkgname} \
|
--sysconfdir=/etc/${pkgname} \
|
||||||
--mandir=/usr/share/man \
|
--mandir=/usr/share/man \
|
||||||
@ -36,7 +35,7 @@ build() {
|
|||||||
--enable-debug \
|
--enable-debug \
|
||||||
--enable-pretty-print-stacktrace \
|
--enable-pretty-print-stacktrace \
|
||||||
--without-slurm \
|
--without-slurm \
|
||||||
--with-hwloc=external \
|
--with-hwloc=/usr \
|
||||||
--with-libltdl=/usr \
|
--with-libltdl=/usr \
|
||||||
FC=/usr/bin/gfortran \
|
FC=/usr/bin/gfortran \
|
||||||
LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
|
LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
|
||||||
@ -48,13 +47,18 @@ package() {
|
|||||||
cd "${srcdir}/${pkgname}-${pkgver}"
|
cd "${srcdir}/${pkgname}-${pkgver}"
|
||||||
make DESTDIR="${pkgdir}" install
|
make DESTDIR="${pkgdir}" install
|
||||||
|
|
||||||
|
install -d -m 755 "${pkgdir}"/usr/lib/pkgconfig
|
||||||
|
for i in ompi-c.pc ompi-cxx.pc ompi-f77.pc ompi-f90.pc ompi.pc; do
|
||||||
|
ln -sf /usr/lib/openmpi/pkgconfig/$i "${pkgdir}"/usr/lib/pkgconfig/
|
||||||
|
done
|
||||||
|
|
||||||
# Openmpi's otfinfo conflicts with the one from texlive
|
# Openmpi's otfinfo conflicts with the one from texlive
|
||||||
mv "${pkgdir}"/usr/bin/otfinfo "${pkgdir}"/usr/bin/otfinfompi
|
mv "${pkgdir}"/usr/bin/otfinfo{,mpi}
|
||||||
|
|
||||||
# Openmpi's otfdump conflicts with the one from libotf
|
# Openmpi's otfdump conflicts with the one from libotf
|
||||||
mv "${pkgdir}"/usr/bin/otfdump "${pkgdir}"/usr/bin/otfdumpompi
|
mv "${pkgdir}"/usr/bin/otfdump{,ompi}
|
||||||
|
|
||||||
# Symlink points to non-existing ortec++.1
|
# Remove dangling symlink
|
||||||
rm "${pkgdir}"/usr/share/man/man1/orteCC.1
|
rm "${pkgdir}"/usr/share/man/man1/orteCC.1
|
||||||
|
|
||||||
install -d -m 755 "${pkgdir}"/etc/ld.so.conf.d
|
install -d -m 755 "${pkgdir}"/etc/ld.so.conf.d
|
||||||
@ -62,4 +66,3 @@ package() {
|
|||||||
|
|
||||||
install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
|
install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
42
openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch
Normal file
42
openmpi/openmpi-1.5.4-fix-fakeroot-execution.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
Description: If running under Debian fakeroot then its important
|
||||||
|
that this hook is disabled; a new stat check was introduced in
|
||||||
|
1.5.x which preceeds the FAKEROOT check resulting in a SEGFAULT.
|
||||||
|
Author: James Page <james.page@ubuntu.com>
|
||||||
|
Origin: https://svn.open-mpi.org/trac/ompi/changeset/21489
|
||||||
|
|
||||||
|
Index: openmpi-1.5.4/opal/mca/memory/linux/hooks.c
|
||||||
|
===================================================================
|
||||||
|
--- openmpi-1.5.4.orig/opal/mca/memory/linux/hooks.c 2012-02-15 12:59:39.986314651 +0000
|
||||||
|
+++ openmpi-1.5.4/opal/mca/memory/linux/hooks.c 2012-02-15 13:14:57.744722517 +0000
|
||||||
|
@@ -738,15 +738,6 @@
|
||||||
|
check_result_t r1, r2, lp, lpp;
|
||||||
|
bool want_rcache = false, found_driver = false;
|
||||||
|
|
||||||
|
- /* First, check if ummunotify is present on the system. If it is,
|
||||||
|
- then we don't need to do the following ptmalloc2 hacks.
|
||||||
|
- open/mmap on the device may fail during init, but if /dev/ummunotify
|
||||||
|
- exists, we assume that the user/administrator *wants* to use
|
||||||
|
- ummunotify. */
|
||||||
|
- if (stat("/dev/ummunotify", &st) == 0) {
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
/* Yes, checking for an MPI MCA parameter here is an abstraction
|
||||||
|
violation. Cope. Yes, even checking for *any* MCA parameter
|
||||||
|
here (without going through the MCA param API) is an
|
||||||
|
@@ -769,6 +760,15 @@
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* Next, check if ummunotify is present on the system. If it is,
|
||||||
|
+ then we don't need to do the following ptmalloc2 hacks.
|
||||||
|
+ open/mmap on the device may fail during init, but if /dev/ummunotify
|
||||||
|
+ exists, we assume that the user/administrator *wants* to use
|
||||||
|
+ ummunotify. */
|
||||||
|
+ if (stat("/dev/ummunotify", &st) == 0) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Look for sentinel files (directories) to see if various network
|
||||||
|
drivers are loaded (yes, I know, further abstraction
|
||||||
|
violations...).
|
Loading…
Reference in New Issue
Block a user