[mpich-discuss] Build failure on macOS Big Sur arm64

Blaise A Bourdin bourdin at lsu.edu
Sun Mar 7 07:14:35 CST 2021


Hi,

As far as I understand, the Big Sur arm64 port of gcc/gfortran 10.2 doesn’t know about float128 hence real128 and complex128 yet.

This leads to the following failure when trying to build mpich-3.4.1 compiled with

./configure --prefix=$MPICH_HOME        \
            --enable-fast=all,O3        \
            --enable-g=dbg              \
            --enable-romio              \
            --enable-shared             \
            --enable-sharedlibs=gcc-osx \
            --with-pm=hydra             \
            CC=gcc-10 CXX=g++-10 FC=gfortran-10 F77=gfortran-10 \
            CFLAGS="-fgnu89-inline -Wno-deprecated" \
            CXXFLAGS="-Wno-deprecated" \
            FFLAGS=-fallow-argument-mismatch


SiMini:mpich-3.4.1 $ make
if test ! -h ./src/include/mpio.h ; then \
            rm -f ./src/include/mpio.h ; \
            ( cd ./src/include &&       \
                ln -s ../mpi/romio/include/mpio.h ) ; \
        fi
  MOD      src/binding/fortran/use_mpi_f08/mpi_c_interface_types.stamp
  MOD      src/binding/fortran/use_mpi_f08/mpi_f08_types.stamp
src/binding/fortran/use_mpi_f08/mpi_f08_types.f90:355:17:

  355 |     real(real128),dimension(..) :: x
      |                 1
Error: Kind -1 not supported for type REAL at (1)
src/binding/fortran/use_mpi_f08/mpi_f08_types.f90:385:20:

  385 |     complex(real128),dimension(..) :: x
      |                    1
Error: Kind -1 not supported for type COMPLEX at (1)
src/binding/fortran/use_mpi_f08/mpi_f08_types.f90:383:36:

  383 | subroutine MPI_Sizeof_xcomplex128 (x, size, ierror)
      |                                    1
Error: Symbol 'x' at (1) has no IMPLICIT type
src/binding/fortran/use_mpi_f08/mpi_f08_types.f90:353:33:

  353 | subroutine MPI_Sizeof_xreal128 (x, size, ierror)
      |                                 1
Error: Symbol 'x' at (1) has no IMPLICIT type
src/binding/fortran/use_mpi_f08/mpi_f08_types.f90:353:30:

  353 | subroutine MPI_Sizeof_xreal128 (x, size, ierror)
      |                              1
......
  383 | subroutine MPI_Sizeof_xcomplex128 (x, size, ierror)
      |                                 2
Error: Ambiguous interfaces in generic interface 'mpi_sizeof' for 'mpi_sizeof_xreal128' at (1) and 'mpi_sizeof_xcomplex128' at (2)
make: *** [src/binding/fortran/use_mpi_f08/mpi_f08_types.stamp] Error 1

After communicating with him, I got the following reply rom FX Coudert who was involved in the port of gcc-10 to arm64:

1. The Fortran 2008 standard states:

----
13.8.2.21 REAL32, REAL64, and REAL128

The values of these default integer scalar named constants shall be those of the kind type parameters that specify a REAL type whose storage size expressed in bits is 32, 64, and 128 respectively. If, for any of these constants, the processor supports more than one kind of that size, it is processor dependent which kind value is provided. If the processor supports no kind of a particular size, that constant shall be equal to -2 if the processor supports kinds of a larger size and -1 otherwise.
----

From your error message it is clear that REAL128 is correctly defined as -1.


2. Your configure output shows "checking size of __float128: 0” and "checking whether real*16 is supported: no”, so it seems the build has all the information it needs to avoid using REAL128 unconditionally.


So it looks like in this case, the f08 bindings for real128 and complex128 are created even though they shouldn’t. I was not able to figure out how to disable their creation during the configure stage. Can somebody help? My config.log is attached.

Regards,
Blaise

--
A.K. & Shirley Barton Professor of  Mathematics
Adjunct Professor of Mechanical Engineering
Adjunct of the Center for Computation & Technology
Louisiana State University, Lockett Hall Room 344, Baton Rouge, LA 70803, USA<x-apple-data-detectors://0/1>
Tel. +1 (225) 578 1612<tel:+1%20(225)%20578%201612>, Fax  +1 (225) 578 4276<tel:+1%20(225)%20578%204276> Web http://www.math.lsu.edu/~bourdin



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20210307/82b6cbb8/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.log
Type: application/octet-stream
Size: 1080346 bytes
Desc: config.log
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20210307/82b6cbb8/attachment-0001.obj>


More information about the discuss mailing list