Error building PNetCDF 1.12.2 with NVHPC 22.1 under CentOS 8

Carl Ponder cponder at nvidia.com
Thu Jan 27 15:42:38 CST 2022


I'm getting this error:

    /bin/gcc -I../../../src/utils/ncvalidator -o cdfdiff cdfdiff.c
    In file included from /usr/include/stdlib.h:55,
                      from
    /home/cponder/WRF/PGI/100.NVHPC/Linux_x86_64/21.11/compilers/include/stdlib.h:13,
                      from cdfdiff.c:19:
    /home/cponder/WRF/PGI/100.NVHPC/Linux_x86_64/21.11/compilers/include/bits/floatn.h:60:17:
    error: two or more data types in declaration specifiers
        typedef float _Float32;
                      ^~~~~~~~
    /home/cponder/WRF/PGI/100.NVHPC/Linux_x86_64/21.11/compilers/include/bits/floatn.h:63:18:
    error: two or more data types in declaration specifiers
        typedef double _Float64;
                       ^~~~~~~~
    /home/cponder/WRF/PGI/100.NVHPC/Linux_x86_64/21.11/compilers/include/bits/floatn.h:74:18:
    error: two or more data types in declaration specifiers
        typedef double _Float32x;
                       ^~~~~~~~~
    /home/cponder/WRF/PGI/100.NVHPC/Linux_x86_64/21.11/compilers/include/bits/floatn.h:78:25:
    error: two or more data types in declaration specifiers
          typedef long double _Float64x;
                              ^~~~~~~~~
    make[3]: *** [Makefile:847: cdfdiff] Error 1
    make[3]: Leaving directory
    '/home/cponder/WRF/PGI/A.106.PNetCDF/distro/src/utils/ncmpidiff'
    make[2]: *** [Makefile:545: all-recursive] Error 1
    make[2]: Leaving directory
    '/home/cponder/WRF/PGI/A.106.PNetCDF/distro/src/utils'
    make[1]: *** [Makefile:476: all-recursive] Error 1
    make[1]: Leaving directory
    '/home/cponder/WRF/PGI/A.106.PNetCDF/distro/src'
    make: *** [Makefile:533: all-recursive] Error 1

I believe the problem is that it's trying to use the system-default 
*gcc* here

    checking for mpiexec... /home/cponder/WRF/PGI/105.OpenMPI/bin/mpiexec
    *checking for gcc... /bin/gcc**
    **checking C compiler for serial utility programs... /bin/gcc*

which is incompatible with all the NVHPC_specific paths that I'm setting 
for the overall build:

    export CC=`which pgcc`
    export CXX=`which pgc++`
    export F77=`which pgf77`
    export F90=`which pgf90`
    export FC=`which pgfortran`

    export MPICC=`which mpicc`
    export MPICXX=`which mpicxx`
    export MPIF77=`which mpif77`
    export MPIF90=`which mpif90`

    export   CFLAGS="-fPIC -m64 -tp=px"
    export CXXFLAGS="-fPIC -m64 -tp=px"
    export  FCFLAGS="-fPIC -m64 -tp=px"

    export LDFLAGS+=" -L$PGI/cuda/lib64 -lnvidia-ml"

I'm guessing that the old compilers & old OS levels didn't enable these 
types so there was no collision during the compilation.
Is there a way to override the *gcc* default for the utilities? I don't 
see any such setting in the configure --help output.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/parallel-netcdf/attachments/20220127/5c0ce392/attachment.html>


More information about the parallel-netcdf mailing list