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