[mvapich-discuss] Missing make dependencies in 1.8 latest

Craig Tierney craig.tierney at noaa.gov
Tue Jul 17 17:47:52 EDT 2012


I am trying to build mvapich2 1.8-latest with make -j12 (because I am tired of waiting while debugging
other problems).  However, when building this way, the make process fails because some dependencies
are not handled correctly.

In particular it is in src/bindings/f90 where using -j causes a problem.

------------
make[3]: Entering directory `/misc/whome/admin/software/mvapich2/mvapich2-1.8/src/binding/f90'
rm -f mpifnoext.h
sed -e 's/^C/\!/g' -e '/EXTERNAL/d' \
                -e '/REAL\*8/d' \
		-e '/DOUBLE PRECISION/d' \
		-e '/MPI_WTICK/d' ../f77/mpif.h > mpifnoext.h
ifort -O2 -I. -c mpi_base.f90
  CC              create_f90_int.c
  CC              create_f90_real.c
  CC              create_f90_complex.c
  CC              typef90cmplxf.c
  CC              typef90realf.c
  CC              typef90intf.c
  CC              create_f90_util.c
  FC              mpi.f90
  FC              mpi_constants.f90
  FC              mpi_sizeofs.f90
  FC              mpi_base.f90
mpi.f90(5): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [MPI_CONSTANTS]
       USE MPI_CONSTANTS
-----------^
mpi_base.f90(18): error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [MPI_CONSTANTS]
       USE MPI_CONSTANTS,ONLY:MPI_ADDRESS_KIND
-----------^
mpi_base.f90(20): error #6683: A kind type parameter must be a compile-time constant.   [MPI_ADDRESS_KIND]
       INTEGER(KIND=MPI_ADDRESS_KIND) v1
---------------

The error can vary, it depends on order of builds finishing.  In this case, the compile
of mpi_constants.f90 wasn't complete before mpi_base.f90 started.

I see that at least this patch is missing:

--- Makefile.orig	2012-07-17 21:40:47.825313000 +0000
+++ Makefile	2012-07-17 21:46:14.357988000 +0000
@@ -399,7 +399,7 @@
 	        rm -f mpi_sizeofs.$(FCEXT) ; \
 	    fi ; \
 	fi
-$(MPIBASEMOD).$(MOD): mpi_base.f90
+$(MPIBASEMOD).$(MOD): $(MPICONSTMOD).$(MOD) mpi_base.f90
 	@if [ -n "" ] ; then \
 	    rm -f mpimod.pc mpimod.pcl ; \
 	    echo "mpimod.pc" > mpimod.pcl ; \

However, I cannot see why the dependencies are missing for the build of mpi.f90.  It looks like they are there:

$(MPIMOD).$(MOD): $(MPICONSTMOD).$(MOD) $(MPISIZEOFMOD).$(MOD) \
                  $(MPIBASEMOD).$(MOD) $(srcdir)/mpi.f90 mpifnoext.h

But they are not being honored for some reason.  Someone more experienced with gmake than I should be able to
figure this out.

Craig


More information about the mvapich-discuss mailing list