mpich: Upgrade to 4.1.1

mpich 4.1+ has its own official way to allow cross-compiling,
use it.

Remove the old PACKAGECONFIG[x11], the configuration option
does not exist anymore.

Add PACKAGECONFIG knobs to allow building the C++ and FORTRAN
parts. Both are needed by intel-oneapi-mkl in meta-intel. Don't
enable either by default to keep the current minimalistic build.

Remove configuration options that don't exist in the new version.

Fix TMPDIR being emitted into binaries and scripts like mpicc and mpicxx

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Zoltán Böszörményi 2023-06-07 09:27:07 +02:00 committed by Khem Raj
parent deaa4c111f
commit aceaf2bfda
2 changed files with 67 additions and 58 deletions

View File

@ -1,58 +0,0 @@
SUMMARY = "Message Passing Interface (MPI) implementation"
HOMEPAGE = "http://www.mpich.org/"
SECTION = "devel"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=bd4d7ab13df98988b1ca2a4e01c8c163"
SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
SRC_URI[sha256sum] = "17406ea90a6ed4ecd5be39c9ddcbfac9343e6ab4f77ac4e8c5ebe4a3e3b6c501"
RDEPENDS:${PN} += "bash perl libxml2"
EXTRA_OECONF = "--enable-debuginfo \
--enable-fast \
--enable-shared \
--with-pm=gforker \
--disable-rpath \
--disable-f77 \
--disable-fc \
--disable-fortran \
--disable-cxx \
BASH_SHELL='${USRBINPATH}/env bash' \
PERL='${USRBINPATH}/env perl' \
--with-device=ch3:nemesis \
--with-rdmacm=no \
--disable-numa \
"
PACKAGECONFIG += " \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
"
PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
# libmpi.so needs symbols like __multf3 and somehow it does not respect --rtlib option passed by clang
LDFLAGS:append:x86-64 = " -lgcc"
LDFLAGS:append:x86 = " -lgcc"
inherit autotools gettext pkgconfig
do_configure() {
for d in confdb test/mpi test/mpi/confdb src/pm/hydra/confdb \
src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/confdb \
modules/yaksa/m4 modules/json-c modules/ucx modules/hwloc/config \
test/mpi/dtpools/confdb src/mpl/confdb src/mpi/romio/confdb; do
install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/$d
install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/$d
done
# cd ${S}
# autoupdate
# autoreconf --verbose --install --force
# cd ${B}
oe_runconf
}
do_install:append() {
sed -i 's,${S}/,,g' ${D}/${libdir}/libmpi.la
sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}/${libdir}/pkgconfig/mpich.pc
}

View File

@ -0,0 +1,67 @@
SUMMARY = "Message Passing Interface (MPI) implementation"
HOMEPAGE = "http://www.mpich.org/"
SECTION = "devel"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f1804c45b8b4e816e53eb1f175d810f3"
SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
SRC_URI[sha256sum] = "ee30471b35ef87f4c88f871a5e2ad3811cd9c4df32fd4f138443072ff4284ca2"
RDEPENDS:${PN} += "bash perl libxml2"
EXTRA_OECONF = "--enable-debuginfo \
--enable-fast \
--enable-shared \
--with-pm=gforker \
BASH_SHELL='${USRBINPATH}/env bash' \
PERL='${USRBINPATH}/env perl' \
--with-device=ch3:nemesis \
"
PACKAGECONFIG ??= ""
PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx"
PACKAGECONFIG[fortran] = "--with-cross=${WORKDIR}/cross_values.txt --enable-fortran,--disable-f77 --disable-fortran,libgfortran"
# libmpi.so needs symbols like __multf3 and somehow it does not respect --rtlib option passed by clang
LDFLAGS:append:x86-64 = " -lgcc"
LDFLAGS:append:x86 = " -lgcc"
inherit autotools gettext pkgconfig qemu
DEPENDS += "qemu-native"
do_configure() {
if [ "${@bb.utils.contains('PACKAGECONFIG', 'fortran', '1', '', d)}" = "1" ]; then
qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
cat > ${WORKDIR}/qemuwrapper << EOF
#!/bin/sh
$qemu_binary "\$@"
EOF
chmod +x ${WORKDIR}/qemuwrapper
sed -i 's:my \(.*\) ./t`;:my \1 ${WORKDIR}/qemuwrapper ${WORKDIR}/t`;:' ${S}/maint/gen_cross.pl
cd ${WORKDIR}
perl ${S}/maint/gen_cross.pl
sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
fi
cd ${S}
./autogen.sh
cd ${B}
oe_runconf
sed -i -e 's,${WORKDIR},,g' ${B}/src/include/mpichinfo.h
}
do_install:append() {
sed -i 's,${S}/,,g' ${D}/${libdir}/libmpi.la
sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}${bindir}/mpicxx
sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}${bindir}/mpicc
sed -i 's,${DEBUG_PREFIX_MAP},,g' ${D}/${libdir}/pkgconfig/mpich.pc
sed -i 's,${RECIPE_SYSROOT},/,g' ${D}${bindir}/mpicc
sed -i 's,${RECIPE_SYSROOT},/,g' ${D}${bindir}/mpicxx
}