gcc / icc confliict with pnetcdf 1.7.0

Carl Ponder cponder at nvidia.com
Sun Apr 17 15:30:20 CDT 2016


I'm building pnetcdf 1.7.0 using the Intel 15.0 compiler and ran into 
this error:

    make -w -C ncoffsets
    make[3]: Entering directory
    `/cm/extra/apps/PNetCDF/1.7.0/Intel-15.0_OpenMPI-1.10.2_CUDA-7.5/distro/src/utils/ncoffsets'
    */usr/bin/gcc -o ncoffsets ncoffsets.c*
    In file included from /usr/include/inttypes.h:27:0,
                      from ncoffsets.c:16:
    /cm/shared/apps/intel/composer_xe/2015.5.223/compiler/include/stdint.h:43:54:
    error: missing binary operator before token "("
          defined(__has_include_next) && __has_include_next(<stdint.h>)
                                                           ^
    /cm/shared/apps/intel/composer_xe/2015.5.223/compiler/include/stdint.h:292:1:
    error: unknown type name ‘uint__INTPTR_WIDTH___t’
      typedef __uintn_t(__INTPTR_WIDTH__) uintptr_t;
      ^
    make[3]: *** [ncoffsets] Error 1
    make[3]: Leaving directory
    `/cm/extra/apps/PNetCDF/1.7.0/Intel-15.0_OpenMPI-1.10.2_CUDA-7.5/distro/src/utils/ncoffsets'

I think the problem is that gcc is trying to use the Intel versions of 
the header-files, but the question is "why?".
My workaround is to use

    unset CPATH

after I've loaded all my environment modules.
But a key question is why gcc is being invoked when I've made these settings

    export CC=/cm/shared/apps/intel/composer_xe/2015.5.223/bin/intel64/icc
    export CXX=/cm/shared/apps/intel/composer_xe/2015.5.223/bin/intel64/icpc
    export
    F77=/cm/shared/apps/intel/composer_xe/2015.5.223/bin/intel64/ifort
    export
    F90=/cm/shared/apps/intel/composer_xe/2015.5.223/bin/intel64/ifort
    export FC=/cm/shared/apps/intel/composer_xe/2015.5.223/bin/intel64/ifort

    export
    MPICC=/cm/extra/apps/OpenMPI/1.10.2/Intel-15.0_CUDA-7.5_HWLoc-1.11.2/bin/mpicc
    export
    MPICXX=/cm/extra/apps/OpenMPI/1.10.2/Intel-15.0_CUDA-7.5_HWLoc-1.11.2/bin/mpicxx
    export
    MPIF77=/cm/extra/apps/OpenMPI/1.10.2/Intel-15.0_CUDA-7.5_HWLoc-1.11.2/bin/mpif77
    export
    MPIF90=/cm/extra/apps/OpenMPI/1.10.2/Intel-15.0_CUDA-7.5_HWLoc-1.11.2/bin/mpif90

During the configure phase I see these messages (excerpted):

    checking for gcc...
    /cm/extra/apps/OpenMPI/1.10.2/Intel-15.0_CUDA-7.5_HWLoc-1.11.2/bin/mpicc
    checking whether the C compiler works... yes
    *checking whether we are using the GNU C compiler... yes*
    checking whether we are using the GNU C++ compiler... yes
    checking whether we are using the GNU Fortran 77 compiler... no

The OpenMPI in this case had been built on top of the Intel compilers.
I've seen messages like this when I've built other utilities, so either

 1. I really am falling through to the GCC compilers, or
 2. Both icc & gcc look identical to the version of autotools on the
    system I'm using. Do the tests really make them look identical?

On the flipside, I don't get these messages when I use the PGI compilers.
But gcc is used to build the ncoffsets in this case as well, it just 
doesn't fail.
Thanks,

                       Carl Ponder


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/parallel-netcdf/attachments/20160417/df4c5894/attachment.html>


More information about the parallel-netcdf mailing list