Message ID | 20230606110147.1797218-1-zboszor@gmail.com |
---|---|
State | Under Review |
Headers | show |
Series | [meta-oe] mpich: Upgrade to 4.1.1 | expand |
its failing to configure for qemumips/clang https://errors.yoctoproject.org/Errors/Details/707724/ On Tue, Jun 6, 2023 at 4:01 AM Zoltán Böszörményi <zboszor@gmail.com> wrote: > > 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. > > 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 | 61 +++++++++++++++++++ > 2 files changed, 61 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..990400f5c > --- /dev/null > +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb > @@ -0,0 +1,61 @@ > +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 \ > + --with-cross=${WORKDIR}/cross_values.txt \ > +" > + > +PACKAGECONFIG ??= "" > + > +PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx" > +PACKAGECONFIG[fortran] = "--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() { > + 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 > + > + 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 > +} > -- > 2.40.1 >
Since it absolutely wants to use gfortran, is it acceptable to set TOOLCHAIN="gcc"? 2023. 06. 07. 8:01 keltezéssel, Khem Raj írta: > its failing to configure for qemumips/clang > > https://errors.yoctoproject.org/Errors/Details/707724/ > > On Tue, Jun 6, 2023 at 4:01 AM Zoltán Böszörményi <zboszor@gmail.com> wrote: >> 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. >> >> 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 | 61 +++++++++++++++++++ >> 2 files changed, 61 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..990400f5c >> --- /dev/null >> +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb >> @@ -0,0 +1,61 @@ >> +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 \ >> + --with-cross=${WORKDIR}/cross_values.txt \ >> +" >> + >> +PACKAGECONFIG ??= "" >> + >> +PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx" >> +PACKAGECONFIG[fortran] = "--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() { >> + 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 >> + >> + 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 >> +} >> -- >> 2.40.1 >>
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..990400f5c --- /dev/null +++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.1.bb @@ -0,0 +1,61 @@ +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 \ + --with-cross=${WORKDIR}/cross_values.txt \ +" + +PACKAGECONFIG ??= "" + +PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx" +PACKAGECONFIG[fortran] = "--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() { + 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 + + 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 +}
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. 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 | 61 +++++++++++++++++++ 2 files changed, 61 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