[Buildroot] [PATCH v2 1/2] openmpi: add Fortran support for MIPS32

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri Jul 8 08:56:24 UTC 2016


Hello,

On Thu, 7 Jul 2016 16:47:33 +0100, Vicente Olivert Riera wrote:
> We include a file containing cached values for Fortran tests that are
> performed at the configure step. These tests fail when cross-compiling
> and this is known upstream. See:
> 
> https://www.open-mpi.org/community/lists/users/2013/01/21186.php
> 
> In that thread the upstream maintainer admits that "cross compiling
> OpenMPI is a known issue" and the way to workaround this is to
> "pre-populate configure's answers to the Fortran tests (so that it
> doesn't actually have to run anything)"
> 
> Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>

After discussing with Yann, we have changed your solution to use the
"config cache" mechanism of autoconf, which allows to preseed in a file
a number of configuration variables. It makes the whole thing a little
bit cleaner. It looks like this:

# Enabling Fortran support requires pre-seeding the configure script
# with various values that cannot be guessed, so we provide cache
# files for various architectures.

ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
ifeq ($(BR2_mips)$(BR2_mipsel),y)
OPENMPI_FORTRAN_CONF_CACHE = package/openmpi/openmpi-mips32-fortran.cache
else ifeq ($(BR2_mips64)$(BR2_mips64el),y)
OPENMPI_FORTRAN_CONF_CACHE = package/openmpi/openmpi-mips64-fortran.cache
endif
endif

ifneq ($(OPENMPI_FORTRAN_CONF_CACHE),)
define OPENMPI_COPY_FORTRAN_CACHE
        cp $(OPENMPI_FORTRAN_CONF_CACHE) $(@D)/openmpi-config.cache
endef

OPENMPI_POST_PATCH_HOOKS += OPENMPI_COPY_FORTRAN_CACHE
OPENMPI_CONF_OPTS += \
        --enable-mpi-fortran=yes \
        --cache-file=$(@D)/openmpi-config.cache
else
OPENMPI_CONF_OPTS += --enable-mpi-fortran=no
endif

And the openmpi-mips*-fortran.cache simply contain the list of
variables.

I've adjusted your two commits to this mechanism, and applied.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list