[MOAB-dev] Make check failure (5143)
Xiabing Xu
xbxu at mcs.anl.gov
Thu Sep 1 14:04:41 CDT 2011
On Sep 1, 2011, at 1:42 PM, Jason Kraftcheck wrote:
> On 09/01/2011 01:30 PM, Xiabing Xu wrote:
>> Yes, this is on fusion.
>>
>> By delving into the problem, I found that the code in iBase_f.h is looking
>> for the user predefined macro PTRSIZE. If this macros is not found, then for
>> different compilers, define the different size for IMESH_HANDLE_T. In the
>> case for searching gfortran compiler, it is looking for predefined
>> macro __SIZEOF_SIZE_T__. However, this macro is not defined by gfortran
>> compiler on fusion.
>>
>> The default mpi used on fusion is compiled with intel compiler, in this case
>> a different code path is chosen, intel's fortran compiler is used. That
>> explains why it works for Rajeev.
>>
>> The __SIZEOF_SIZE_T__ is defined by gfortran compiler on mcs machines, I
>> guess that's why the nightly tests are not complaining.
>>
>> For greater portability, I think the assumption for the predefined macro
>> __SIZEOF_SIZE_T__ in gfortran compiler should be removed.
>>
>
> The code does not assume __SIZEOF_SIZE_T__ nor gfortran, but that isn't
> important here. If you are using the intel compiler and the header is not
> working, then presumably something is wrong with the section of that header
> corresponding to the intel compiler. That would be the part beginning with
> the line:
>
> #elif defined(__INTEL_COMPILER)
>
> - jason
Intel compiler works fine. It is the gfortran compiler that doesn't compile.
Here is the code that fails the search for gfortran compiler:
#elif defined(__SIZEOF_SIZE_T__)
c gfortran
# define IMESH_HANDLE_T integer*__SIZEOF_SIZE_T__
The reason is that gfortran compiler does not define __SIZEOF_SIZE_T__ on fusion, resulting the error "Unknown compiler".
Xiabing
More information about the moab-dev
mailing list