[mpich-discuss] Cross-compile mpich-3.2 with Intel compilers collection

yurij lnkgyv at gmail.com
Wed Jun 26 07:35:50 CDT 2019


The problem has been solved by appending to /root/fort.types the 
following variables:

CROSS_F90_OFFSET_KIND=8
CROSS_F90_REAL_MODEL=6,37
CROSS_F90_DOUBLE_MODEL=15,307
CROSS_F90_INTEGER_MODEL=9
CROSS_F90_ALL_INTEGER_MODELS=2,1,4,2,9,4,18,8,
CROSS_F90_INTEGER_MODEL_MAP={2,1,1},{4,2,2},{9,4,4},{18,8,8},

It seems configure from MPICH-3.2 isn't ready jet to build cross compile 
version without little "magic".

On 6/26/19 8:15 AM, Yurij Goncharuk wrote:
> Hello!
> 
> I'm using Intel compilers collection from Parallel Studio 2019 and trying to build MPICH-3.2 against it for the recent CPU. My configure scenario:
> 
> MPICHLIB_CFLAGS="-xCORE-AVX512" \
> MPICHLIB_CXXFLAGS="-xCORE-AVX512" \
> MPICHLIB_FCFLAGS="-xCORE-AVX512" \
> MPICHLIB_FFLAGS="-xCORE-AVX512" \
> LDFLAGS="-Wl,--disable-new-dtags" \
> ./configure \
> CC="/opt/intel/bin/icc" \
> CXX="/opt/intel/bin/icpc" \
> FC="/opt/intel/bin/ifort" \
> F77="/opt/intel/bin/ifort" \
> --with-pic \
> --enable-shared \
> AR="ar" \
> RANLIB="ranlib" \
> --enable-f77 \
> --enable-fc \
> --enable-cxx \
> --enable-fast=all,nompit \
> --prefix=/usr \
> --host=x86_64-pc-linux-gnu \
> --with-cross=/root/fort.types
> 
> /root/fort.types contains:
> 
> CROSS_F77_SIZEOF_INTEGER=4
> CROSS_F77_SIZEOF_REAL=4
> CROSS_F77_SIZEOF_DOUBLE_PRECISION=8
> CROSS_F77_TRUE_VALUE=1
> CROSS_F77_FALSE_VALUE=0
> CROSS_F90_ADDRESS_KIND=8
> CROSS_F90_INTEGER_KIND=4
> 
> configure completes successfully but build fails with the following error:
> 
> CC       src/glue/romio/lib_libmpi_la-all_romio_symbols.lo
> src/binding/fortran/use_mpi/create_f90_real.c(75): error: expected an expression
>      { MPIR_F90_REAL_MODEL, MPI_REAL},
>                           ^
> 
> src/binding/fortran/use_mpi/create_f90_real.c(76): error: expected an expression
>      { MPIR_F90_DOUBLE_MODEL, MPI_DOUBLE_PRECISION } };
>                             ^
> 
> compilation aborted for src/binding/fortran/use_mpi/create_f90_real.c (code 2)
> make[2]: *** [src/binding/fortran/use_mpi/lib_libmpi_la-create_f90_real.lo] Error 1
> make[2]: *** Waiting for unfinished jobs....
> src/binding/fortran/use_mpi/create_f90_complex.c(76): error: expected an expression
>      { MPIR_F90_REAL_MODEL, MPI_COMPLEX},
>                           ^
> 
> src/binding/fortran/use_mpi/create_f90_complex.c(77): error: expected an expression
>      { MPIR_F90_DOUBLE_MODEL, MPI_DOUBLE_COMPLEX } };
>                             ^
> 
> compilation aborted for src/binding/fortran/use_mpi/create_f90_complex.c (code 2)
> make[2]: *** [src/binding/fortran/use_mpi/lib_libmpi_la-create_f90_complex.lo] Error 1
> make[2]: Leaving directory `/root/mpich-3.2'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/root/mpich-3.2'
> make: *** [all] Error 2
> 
> I google about this and have founded that mpif90model.h isn't initialized and therefore macros MPIR_F90_* is undefined. Also there was mentioned that:
> 
> "More specifically, the binaries that are supposed to run and tell configure what it wants to know fail to link because configure tries to set rpath."
> 
> How can I done cross compile MPICH-3.2 against Intel compilers without disabling fortran libraries?
> 
> I compile MPICH-3.2 in Docker environment with SLES 11 SP4 as container OS
> 
> Thank’s to all for any help!
> 
> /*-----------------------*
> Best regards!
> Yurij Goncharuk
> lnkgyv at gmail.com
> /*-----------------------*
> 

/*-----------------------*
Best regards!
Yurij Goncharuk
lnkgyv at gmail.com
/*-----------------------*


More information about the discuss mailing list