[mpich-devel] build broken on 'master': 'mpitypedefs.h' file not found

Rob Latham robl at mcs.anl.gov
Sun Jan 5 22:54:02 CST 2014

On Sat, Jan 04, 2014 at 08:08:16PM -0600, Jed Brown wrote:
> Rob, this commit does not build, at least not if you configure out of
> source.

Jenkins did not find a problem with this commit, so I'd like to
understand what's different in your environment.

> commit 3146e104017114b0e9a7e04824cfeb7383155d12
> Author: Rob Latham <robl at mcs.anl.gov>
> Date:   Fri Jan 3 12:35:21 2014 -0600
>     bring back include file needed for MPI_AINT_CAST_TO_VOID_PTR
>     In romio-standalone fixes, I zapped the inclusion of mpitypedefs.h, but
>     the "ensure this large value fits into pointer without overflowing"
>     check relied on some MPICH-internal macros/routines.  Only Blue Gene
>     driver uses those routines, so nightly tests didn't flag it.
>     No reviewer.
> diff --git a/src/mpi/romio/adio/include/adioi.h b/src/mpi/romio/adio/include/adioi.h
> index ea07491..0553dfb 100644
> --- a/src/mpi/romio/adio/include/adioi.h
> +++ b/src/mpi/romio/adio/include/adioi.h
> @@ -824,6 +824,7 @@ int  ADIOI_MPE_iwrite_b;
>    /* Use MPID_Ensure_Aint_fits_in_pointer from mpiutil.h and 
>           MPI_AINT_CAST_TO_VOID_PTR from configure (mpi.h) */
>    #include "glue_romio.h"
> +  #include "mpitypedefs.h"  /* for MPI_AINT_CAST_TO_VOID_PTR */
>    #define ADIOI_AINT_CAST_TO_VOID_PTR (void*)(MPIR_Pint)
>    /* The next two casts are only used when you don't want sign extension
> /bin/sh ./libtool  --tag=CC   --mode=compile clang -DHAVE_CONFIG_H -I. -I../../../../src/mpi/romio -I./adio/include  -I/home/jed/src/mpich/build-clang/src/include -I./include -I../../../../src/mpi/romio/include -I./mpi-io -I../../../../src/mpi/romio/mpi-io -I./adio/include -I../../../../src/mpi/romio/adio/include   -I/home/jed/src/mpich/build-clang/src/mpl/include -I/home/jed/src/mpich/src/mpl/include -I/home/jed/src/mpich/src/openpa/src -I/home/jed/src/mpich/build-clang/src/openpa/src -I/home/jed/src/mpich/build-clang/src/mpi/romio/include  -O2  -DFORTRANUNDERSCORE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_ROMIOCONF_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -MT mpi-io/close.lo -MD -MP -MF $depbase.Tpo -c -o mpi-io/close.lo ../../../../src/mpi/romio/mpi-io/close.c &&\
> mv -f $depbase.Tpo $depbase.Plo
> libtool: compile:  clang -DHAVE_CONFIG_H -I. -I../../../../src/mpi/romio -I./adio/include -I/home/jed/src/mpich/build-clang/src/include -I./include -I../../../../src/mpi/romio/include -I./mpi-io -I../../../../src/mpi/romio/mpi-io -I./adio/include -I../../../../src/mpi/romio/adio/include -I/home/jed/src/mpich/build-clang/src/mpl/include -I/home/jed/src/mpich/src/mpl/include -I/home/jed/src/mpich/src/openpa/src -I/home/jed/src/mpich/build-clang/src/openpa/src -I/home/jed/src/mpich/build-clang/src/mpi/romio/include -O2 -DFORTRANUNDERSCORE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_ROMIOCONF_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -MT mpi-io/close.lo -MD -MP -MF mpi-io/.deps/close.Tpo -c ../../../../src/mpi/romio/mpi-io/close.c  -fPIC -DPIC -o mpi-io/.libs/close.o
> In file included from ../../../../src/mpi/romio/mpi-io/close.c:8:
> In file included from ../../../../src/mpi/romio/mpi-io/mpioimpl.h:15:
> In file included from ../../../../src/mpi/romio/adio/include/adio.h:440:
> ../../../../src/mpi/romio/adio/include/adioi.h:827:12: fatal error: 'mpitypedefs.h' file not found
>   #include "mpitypedefs.h"  /* for MPI_AINT_CAST_TO_VOID_PTR */
>            ^
> 1 error generated.
> Now my understanding is that ROMIO is still supposed to be buildable
> outside the MPI source tree, in which case src/include/mpitypedefs.h
> will not be available.  I don't know how you want to fix this.

Yeah, in the standalone ROMIO case I do not include that
mpich-specific header, and MPI_AINT_CAST_TO_VOID_PTR becomes nothing
thanks to macro magic.


Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA

More information about the devel mailing list