[MPICH] MPICH2, FORTRAN disabled, yields switch-case collision

Rajeev Thakur thakur at mcs.anl.gov
Fri Oct 21 17:06:08 CDT 2005


That might be a problem in the 1.0.2p1 release, but it has been fixed in our
current source code. You can disable just the collective checking library
(not all of MPE) with the option --disable-collchk.

Rajeev 

> -----Original Message-----
> From: owner-mpich-discuss at mcs.anl.gov 
> [mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of Fritz Anderson
> Sent: Friday, October 21, 2005 4:29 PM
> To: mpich-discuss at mcs.anl.gov
> Subject: [MPICH] MPICH2, FORTRAN disabled, yields switch-case 
> collision
> 
> So I'm still working on compiling MPICH2, 1.0.2p1, using the  
> configuration
> 
> CCFLAGS='-arch ppc64' LDFLAGS='-arch ppc64' CXXFLAGS='-arch ppc64' ./ 
> configure --disable-f77 --disable-f90 --prefix='/usr/local' --with- 
> pm=mpd:gforker
> 
> Note that I have both FORTRAN dialects disabled. This causes 
> mpi.h to  
> have the following #defines:
> 
> #define MPI_COMPLEX           ((MPI_Datatype)MPI_DATATYPE_NULL)
> #define MPI_DOUBLE_COMPLEX    ((MPI_Datatype)MPI_DATATYPE_NULL)
> #define MPI_LOGICAL           ((MPI_Datatype)MPI_DATATYPE_NULL)
> ...
> #define MPI_DATATYPE_NULL  ((MPI_Datatype)0x0c000000)
> ...
> 
> Now consider the function CollChk_basic_value() in same_dtype in the  
> mce2 tree:
> 
> unsigned int CollChk_basic_value(MPI_Datatype type)
> {
>      switch (type) {
>          /*
>             MPI_Datatype's that return 0x0 are as if they are being
>             skipped/ignored in the comparison of any 2 MPI_Datatypes.
>          */
>          case MPI_DATATYPE_NULL :
>          case MPI_UB :
>          case MPI_LB :
>              return 0x0;
> ...
>          case MPI_COMPLEX :
>              return 0x101;
>          case MPI_DOUBLE_COMPLEX :
>              return 0x103;
>          case MPI_LOGICAL :
>              return 0x105;
> ...
> 
> The compiler quite reasonably chokes, because the latter cases have  
> the same value as the first.
> 
> I find that suppressing the --disable-f77 and -f90 flags does no  
> good, probably because the configuration script notices that I don't  
> have a FORTRAN compiler.
> 
> Is there a way around this? Are users without FORTRAN required to do  
> without MPE? Or is there a configuration preprocessor symbol for the  
> no-FORTRAN condition so I can #if out the erring cases?
> 
>      -- F
> 
> 




More information about the mpich-discuss mailing list