[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #JIL-655966]: compile netcdf with pgi



Hi,

By choosing "config.log" as the name of the file in which to put
the output from the configure script, you had the bad luck of
choosing the same file name as configure uses to log its detailed
internal tests.  So the result is both kinds of information got
written into the same file, but it looks like your configure script
completed, because it ended with:

  configure: exit 0

Most of the other error messages you see in there occur while configure
is testing the environment, and are expected.  However, this is not, and
indicates a problem in your PGI compilation environment, such as not
installing the header files correctly:

  configure:26581: checking for IEEE floating point format
 ...
  configure:26639: ./conftest
  configure:26643: $? = 1
  configure: program exited with status 1
  configure: failed program was:
 ...
  configure:26659: result: no

This probably means the /usr/include/float.h header file which is a
required C Standard Library header either doesn't have the required
macro definitions or defines some floating-point properties that do
not conform to the IEEE floating point standard or any other floating
point standard that netCDF can handle.  Your 64-bit x86 platform ought
to use IEEE floating point arithmetic, so until you can successfully
compile (with pgcc) and run the small C program attached to produce some
output other than "not IEEE", your compilation environment can't be used
for building and installing netCDF.

I hope this helps ...

--Russ



Russ Rew                                         UCAR Unidata Program
address@hidden                     http://www.unidata.ucar.edu



Ticket Details
===================
Ticket ID: JIL-655966
Department: Support netCDF
Priority: Normal
Status: Closed
/* confdefs.h.  */
#define PACKAGE_NAME "netCDF"
#define PACKAGE_TARNAME "netcdf"
#define PACKAGE_VERSION "4.0"
#define PACKAGE_STRING "netCDF 4.0"
#define PACKAGE_BUGREPORT "address@hidden"
#define PACKAGE "netcdf"
#define VERSION "4.0"
#define USE_EXTREME_NUMBERS 1
#define TEMP_LARGE "."
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define NF_INT1_T byte
#define NF_INT2_T integer*2
#define NF_INT1_IS_C_SIGNED_CHAR 1
#define NF_INT2_IS_C_SHORT 1
#define NF_INT_IS_C_INT 1
#define NF_REAL_IS_C_FLOAT 1
#define NF_DOUBLEPRECISION_IS_C_DOUBLE 1
#define NCBYTE_T byte
#define NCSHORT_T integer*2
#define HAVE__BOOL 1
#define HAVE_STRERROR 1
#define HAVE_ALLOCA_H 1
#define HAVE_ALLOCA 1
#define HAVE_DECL_ISNAN 1
#define HAVE_DECL_ISINF 1
#define HAVE_DECL_ISFINITE 0
#define HAVE_DECL_SIGNBIT 0
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
#define HAVE_ST_BLKSIZE 1
/* end confdefs.h.  */
#include <stdio.h>
#ifndef NO_FLOAT_H
#include <float.h>
#endif

#define EXIT_NOTIEEE    1
#define EXIT_MAYBEIEEE  0

int
main()
{
#if     defined(FLT_RADIX)      && FLT_RADIX != 2
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};
#elif   defined(DBL_MAX_EXP)    && DBL_MAX_EXP != 1024
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};
#elif   defined(DBL_MANT_DIG)   && DBL_MANT_DIG != 53
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};
#elif   defined(FLT_MAX_EXP)    && !(FLT_MAX_EXP == 1024 || FLT_MAX_EXP == 128)
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};
#elif   defined(FLT_MANT_DIG)   && !(FLT_MANT_DIG == 53 || FLT_MANT_DIG == 24)
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};
#else
        /* (assuming eight bit char) */
        if(sizeof(double) != 8)
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};
        if(!(sizeof(float) == 4 || sizeof(float) == 8))
                {printf("not IEEE\n"); return EXIT_NOTIEEE;};

        printf("maybe IEEE\n"); return EXIT_MAYBEIEEE;
#endif
}