diff mbox series

[meta-oe,v3] mpich: Upgrade to 4.1.1

Message ID 20230607072321.589315-1-zboszor@gmail.com
State New
Headers show
Series [meta-oe,v3] mpich: Upgrade to 4.1.1 | expand

Commit Message

Böszörményi Zoltán June 7, 2023, 7:23 a.m. UTC
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.

Set TOOLCHAIN = "gcc".

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
---
 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb | 58 -----------------
 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb | 64 +++++++++++++++++++
 2 files changed, 64 insertions(+), 58 deletions(-)
 delete mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
 create mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb

Comments

Böszörményi Zoltán June 7, 2023, 7:28 a.m. UTC | #1
2023. 06. 07. 9:23 keltezéssel, Zoltán Böszörményi írta:
> 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.
>
> Set TOOLCHAIN = "gcc".
>
> Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
> ---
>   meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb | 58 -----------------
>   meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb | 64 +++++++++++++++++++
>   2 files changed, 64 insertions(+), 58 deletions(-)
>   delete mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
>   create mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
>
> diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> deleted file mode 100644
> index 000f73981..000000000
> --- a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> +++ /dev/null
> @@ -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
> -}
> diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> new file mode 100644
> index 000000000..cb9c0f1dd
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> @@ -0,0 +1,64 @@
> +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"
> +
> +TOOLCHAIN = "gcc"
> +
> +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-fc --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
> +    fi
> +
> +    sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt

This must be in the if [] above. Just sent v4 with this fix.

> +
> +    cd ${S}
> +    ./autogen.sh
> +
> +    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
> +}
Khem Raj June 8, 2023, 4:41 p.m. UTC | #2
still seeing issues

https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2802

On Wed, Jun 7, 2023 at 12:28 AM Böszörményi Zoltán <zboszor@gmail.com> wrote:
>
> 2023. 06. 07. 9:23 keltezéssel, Zoltán Böszörményi írta:
> > 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.
> >
> > Set TOOLCHAIN = "gcc".
> >
> > Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
> > ---
> >   meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb | 58 -----------------
> >   meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb | 64 +++++++++++++++++++
> >   2 files changed, 64 insertions(+), 58 deletions(-)
> >   delete mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> >   create mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> >
> > diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > deleted file mode 100644
> > index 000f73981..000000000
> > --- a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > +++ /dev/null
> > @@ -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
> > -}
> > diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > new file mode 100644
> > index 000000000..cb9c0f1dd
> > --- /dev/null
> > +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > @@ -0,0 +1,64 @@
> > +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"
> > +
> > +TOOLCHAIN = "gcc"
> > +
> > +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-fc --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
> > +    fi
> > +
> > +    sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
>
> This must be in the if [] above. Just sent v4 with this fix.
>
> > +
> > +    cd ${S}
> > +    ./autogen.sh
> > +
> > +    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
> > +}
>
Khem Raj June 8, 2023, 5:23 p.m. UTC | #3
On Thu, Jun 8, 2023 at 9:41 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> still seeing issues
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2802
>

I dropped the unknown option and it went further which is good,
however I am seeing

WARNING: mpich-4.1.1-r0 do_package_qa: QA Issue: File
/usr/lib/libmpi.so.12.3.0 in package mpich contains reference to
TMPDIR
File /usr/bin/mpicc in package mpich contains reference to TMPDIR
File /usr/bin/mpicxx in package mpich contains reference to TMPDIR [buildpaths]

So it will be good to look into this problem as well, why do we see
these QA warnings.

> On Wed, Jun 7, 2023 at 12:28 AM Böszörményi Zoltán <zboszor@gmail.com> wrote:
> >
> > 2023. 06. 07. 9:23 keltezéssel, Zoltán Böszörményi írta:
> > > 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.
> > >
> > > Set TOOLCHAIN = "gcc".
> > >
> > > Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
> > > ---
> > >   meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb | 58 -----------------
> > >   meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb | 64 +++++++++++++++++++
> > >   2 files changed, 64 insertions(+), 58 deletions(-)
> > >   delete mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > >   create mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > >
> > > diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > > deleted file mode 100644
> > > index 000f73981..000000000
> > > --- a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > > +++ /dev/null
> > > @@ -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
> > > -}
> > > diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > > new file mode 100644
> > > index 000000000..cb9c0f1dd
> > > --- /dev/null
> > > +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > > @@ -0,0 +1,64 @@
> > > +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"
> > > +
> > > +TOOLCHAIN = "gcc"
> > > +
> > > +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-fc --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
> > > +    fi
> > > +
> > > +    sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
> >
> > This must be in the if [] above. Just sent v4 with this fix.
> >
> > > +
> > > +    cd ${S}
> > > +    ./autogen.sh
> > > +
> > > +    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
> > > +}
> >
Khem Raj June 8, 2023, 9:10 p.m. UTC | #4
I have added fixes for the issues I have seen, Please take a look at
the updated patch in master-next

On Thu, Jun 8, 2023 at 10:23 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Thu, Jun 8, 2023 at 9:41 AM Khem Raj <raj.khem@gmail.com> wrote:
> >
> > still seeing issues
> >
> > https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2802
> >
>
> I dropped the unknown option and it went further which is good,
> however I am seeing
>
> WARNING: mpich-4.1.1-r0 do_package_qa: QA Issue: File
> /usr/lib/libmpi.so.12.3.0 in package mpich contains reference to
> TMPDIR
> File /usr/bin/mpicc in package mpich contains reference to TMPDIR
> File /usr/bin/mpicxx in package mpich contains reference to TMPDIR [buildpaths]
>
> So it will be good to look into this problem as well, why do we see
> these QA warnings.
>
> > On Wed, Jun 7, 2023 at 12:28 AM Böszörményi Zoltán <zboszor@gmail.com> wrote:
> > >
> > > 2023. 06. 07. 9:23 keltezéssel, Zoltán Böszörményi írta:
> > > > 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.
> > > >
> > > > Set TOOLCHAIN = "gcc".
> > > >
> > > > Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
> > > > ---
> > > >   meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb | 58 -----------------
> > > >   meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb | 64 +++++++++++++++++++
> > > >   2 files changed, 64 insertions(+), 58 deletions(-)
> > > >   delete mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > > >   create mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > > >
> > > > diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > > > deleted file mode 100644
> > > > index 000f73981..000000000
> > > > --- a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
> > > > +++ /dev/null
> > > > @@ -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
> > > > -}
> > > > diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > > > new file mode 100644
> > > > index 000000000..cb9c0f1dd
> > > > --- /dev/null
> > > > +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
> > > > @@ -0,0 +1,64 @@
> > > > +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"
> > > > +
> > > > +TOOLCHAIN = "gcc"
> > > > +
> > > > +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-fc --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
> > > > +    fi
> > > > +
> > > > +    sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
> > >
> > > This must be in the if [] above. Just sent v4 with this fix.
> > >
> > > > +
> > > > +    cd ${S}
> > > > +    ./autogen.sh
> > > > +
> > > > +    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
> > > > +}
> > >
Böszörményi Zoltán June 9, 2023, 4:15 a.m. UTC | #5
2023. 06. 08. 23:10 keltezéssel, Khem Raj írta:
> I have added fixes for the issues I have seen, Please take a look at
> the updated patch in master-next

Thanks, it looks good.

>
> On Thu, Jun 8, 2023 at 10:23 AM Khem Raj <raj.khem@gmail.com> wrote:
>> On Thu, Jun 8, 2023 at 9:41 AM Khem Raj <raj.khem@gmail.com> wrote:
>>> still seeing issues
>>>
>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2802
>>>
>> I dropped the unknown option and it went further which is good,
>> however I am seeing
>>
>> WARNING: mpich-4.1.1-r0 do_package_qa: QA Issue: File
>> /usr/lib/libmpi.so.12.3.0 in package mpich contains reference to
>> TMPDIR
>> File /usr/bin/mpicc in package mpich contains reference to TMPDIR
>> File /usr/bin/mpicxx in package mpich contains reference to TMPDIR [buildpaths]
>>
>> So it will be good to look into this problem as well, why do we see
>> these QA warnings.
>>
>>> On Wed, Jun 7, 2023 at 12:28 AM Böszörményi Zoltán <zboszor@gmail.com> wrote:
>>>> 2023. 06. 07. 9:23 keltezéssel, Zoltán Böszörményi írta:
>>>>> 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.
>>>>>
>>>>> Set TOOLCHAIN = "gcc".
>>>>>
>>>>> Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
>>>>> ---
>>>>>    meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb | 58 -----------------
>>>>>    meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb | 64 +++++++++++++++++++
>>>>>    2 files changed, 64 insertions(+), 58 deletions(-)
>>>>>    delete mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
>>>>>    create mode 100644 meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
>>>>>
>>>>> diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
>>>>> deleted file mode 100644
>>>>> index 000f73981..000000000
>>>>> --- a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
>>>>> +++ /dev/null
>>>>> @@ -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
>>>>> -}
>>>>> diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
>>>>> new file mode 100644
>>>>> index 000000000..cb9c0f1dd
>>>>> --- /dev/null
>>>>> +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
>>>>> @@ -0,0 +1,64 @@
>>>>> +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"
>>>>> +
>>>>> +TOOLCHAIN = "gcc"
>>>>> +
>>>>> +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-fc --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
>>>>> +    fi
>>>>> +
>>>>> +    sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
>>>> This must be in the if [] above. Just sent v4 with this fix.
>>>>
>>>>> +
>>>>> +    cd ${S}
>>>>> +    ./autogen.sh
>>>>> +
>>>>> +    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
>>>>> +}
diff mbox series

Patch

diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb b/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
deleted file mode 100644
index 000f73981..000000000
--- a/meta-oe/recipes-devtools/mpich/mpich_4.0.3.bb
+++ /dev/null
@@ -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
-}
diff --git a/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
new file mode 100644
index 000000000..cb9c0f1dd
--- /dev/null
+++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb
@@ -0,0 +1,64 @@ 
+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"
+
+TOOLCHAIN = "gcc"
+
+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-fc --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
+    fi
+
+    sed -i 's:\(CROSS_F90_INTEGER_MODEL_MAP=.*\) }"$:\1 }, ":' ${WORKDIR}/cross_values.txt
+
+    cd ${S}
+    ./autogen.sh
+
+    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
+}