[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #MLF-697840]: Parallel NetCDF 4.1.3 compile error finding HDFflush
- Subject: [netCDF #MLF-697840]: Parallel NetCDF 4.1.3 compile error finding HDFflush
- Date: Tue, 30 Jul 2013 15:05:54 -0600
> Ok. Added the export statements back in, and the resulting output from
> the "configure" script is the same:
>
> Script:
> #!/bin/bash
> # Proper header for a Bash script.
>
> set -x
>
> export H5DIR=/u/home/eylandej/hdf5
> export CC=/site/intel/impi/4.1.0.024/intel64/bin/mpicc
> echo $LD_LIBRARY_PATH
> export LD_LIBRARY_PATH=${H5DIR}/lib:$LD_LIBRARY_PATH
> export CPPFLAGS="-I${H5DIR}/include -I/u/home/eylandej/zlib-1.2.7/include
> -I/u/home/eylandej/szip-2.1/include"
> export LDFLAGS="-L${H5DIR}/lib -L/u/home/eylandej/zlib-1.2.7/lib
> -L/u/home/eylandej/szip-2.1/lib"
> export LIBS=-ldl
> ./configure --prefix=/u/home/eylandej/netcdf-4.3.0 --enable-parallel-tests
> --disable-shared
>
> exit
From the config.log file you sent, it looks like you compiled HDF5
with --disable-shared, so all libraries that HDF5 depends on need to
be expicitly specified when linking. But there's no "-lsz" for the
szip library, so that has to be added to LIBS, which should be:
LIBS="-lsz -ldl"
If that doesn't work, keep sending the config.log and we should be able to
figure out if anything else is needed.
--Russ
> Screen output from configure:
>
>
> checking whether isinf is declared... yes
> checking whether isfinite is declared... yes
> checking whether signbit is declared... yes
> checking for struct stat.st_blksize... yes
> checking for IEEE floating point format... yes
> checking for size_t... (cached) yes
> checking for off_t... yes
> checking for ssize_t... yes
> checking for ptrdiff_t... yes
> checking for uchar... no
> checking for longlong... no
> checking whether char is unsigned... no
> checking whether byte ordering is bigendian... no
> checking size of short... 2
> checking size of int... 4
> checking size of long... 8
> checking size of long long... 8
> checking size of float... 4
> checking size of double... 8
> checking size of off_t... 8
> checking size of size_t... 8
> checking for library containing deflate... none required
> checking for floor in -lm... yes
> checking for library containing H5Fflush... no
> configure: error: Can't find or link to the hdf5 library. Use
> --disable-netcdf-4, or see config.log for errors.
> + exit
>
> While the above is identical to all results I've seen from each attempt to
> configure, I notice different errors in the config.log (see attached).
> The compile commands do have the hdf5 libs and include files corrected
> referenced, but still can't link to the Hdf5 library:
>
> /* end confdefs.h. */
> |
> | /* Override any GCC internal prototype to avoid an error.
> | Use char because int might match the return type of a GCC
> | builtin and then its argument prototype would still apply. */
> | #ifdef __cplusplus
> | extern "C"
> | #endif
> | char H5Fflush ();
> | int
> | main ()
> | {
> | return H5Fflush ();
> | ;
> | return 0;
> | }
> configure:16246: result: no
> configure:16253: error: Can't find or link to the hdf5 library. Use
> --disable-netcdf-4, or see config.log for errors.
>
>
>
> NOTE: I'm using Intel MPI compiler...just in case you didn't see that. I
> tried using OpenMPI, but had the same result as using IntelMPI.
>
> John
>
>
>
>
>
> --
>
>
> ________________________________________
>
> John B. Eylander
> Cold Regions Research and Engineering Lab
> U.S. Army Engineer Research and Development Center
> 72 Lyme Road
> Hanover, NH 03755
>
> PH: 603-646-4188 BB: 603-359-9717
>
> Unclass: address@hidden
> SIPR: address@hidden
> JWICS: address@hidden
> ________________________________________
>
>
>
>
>
>
>
> On 7/30/13 3:33 PM, "Unidata netCDF Support"
> <address@hidden> wrote:
>
> >John,
> >
> >> I am not running as root or sudo. I don't have those privileges on the
> >> system.
> >>
> >> Also understand...the --with statements are ignored; however, I also
> >>have
> >> included the libraries in my LDFLAGS and CPPFLAGS environmental
> >>variables
> >> that I included in the --with statements. I will clean up my configure
> >> script to remove the --with statements though.
> >>
> >> My config.log is attached.
> >
> >Are you exporting the environment variables LDFLAGS and CPPFLAGS? One
> >way of doing this is preceding the invocation of configure but on the
> >same line, or you can also
> >give them as arguments to configure. However, if you just define them in
> >the shell
> >in which configure is invoked, I don't think they get inherited by
> >configure's
> >subshell.
> >
> >I'm asking, because of these lines in the config.log you sent:
> >
> > CC='/site/intel/impi/4.1.0.024/intel64/bin/mpicc'
> > ...
> > CPPFLAGS=''
> > ...
> > LDFLAGS=''
> >
> >and the compile lines that don't have the "-L" or "-I" flags needed to
> >find the
> >HDF5 libraries:
> >
> > /site/intel/impi/4.1.0.024/intel64/bin/mpicc -o conftest -g -O2
> >conftest.c -lhdf5 -lm -lcurl >&5
> > /usr/bin/ld: cannot find -lhdf5
> > collect2: ld returned 1 exit status
> >
> >Different shells have different syntax for exporting environment
> >variables, but
> >I think you only need to use
> >
> > export CPPFLAGS="-I${H5DIR}/include
> >-I/u/home/eylandej/zlib-1.2.7/include -I/u/home/eylandej/szip-2.1/include"
> >
> >and similarly for LDFLAGS ...
> >
> >--Russ
> >
> >> On 7/30/13 2:43 PM, "Unidata netCDF Support"
> >> <address@hidden> wrote:
> >>
> >> >> Ok. Thanks so far. I am now transitioning to go with your
> >>suggestion of
> >> >> compiling netcdf 4.3.0 first then compiling NetCDF 4.2 fortran.
> >> >>
> >> >> However...trying to compile NetCDF4.3.0 I get the exact same error as
> >> >>when
> >> >> I was trying to compile netcdf 4.1.3.
> >> >>
> >> >> My configure script (sets up the enviro variables, etc)
> >> >>
> >> >> In directory /u/home/eylandej/netcdf-4.3.0
> >> >>
> >> >> #!/bin/bash
> >> >> # Proper header for a Bash script.
> >> >>
> >> >> set -x
> >> >
> >> >Are you running configure using sudo or as root? There can be
> >> >problems with inheriting environment variables with sudo, due to
> >> >security policies. We recommend running configure and make check as a
> >> >normal user, and only using sudo for "make install".
> >> >
> >> >If that's not it, can you attach or otherwise make available the whole
> >> >config.log file created by the configure script. Also, note that the
> >> >"--with-zlib=" and "--with-szip=" option syntax hasn't been supported
> >> >by the netCDF configure script for a while. Instead, all the
> >> >information about libraries and header file locations is supposed to
> >> >be conveyed in the LDFLAGS and CPPFLAGS, and LD_LIBRARY_PATH
> >>environment
> >> >variables. The configure script just ignores flags it doesn't
> >> >process, such as --with-zlib= ... It also ignores CXX, as the
> >> >netcdf-4.3.0 distribution is only for the C libraries and utilities.
> >> >
> >> >--Russ
> >> >
> >> >> export H5DIR=/u/home/eylandej/hdf5
> >> >> CC=/site/intel/impi/4.1.0.024/intel64/bin/mpicc
> >> >> CXX=/site/intel/impi/4.1.0.024/intel64/bin/mpicxx
> >> >> echo $LD_LIBRARY_PATH
> >> >> LD_LIBRARY_PATH=${H5DIR}/lib:$LD_LIBRARY_PATH
> >> >> CPPFLAGS="-I${H5DIR}/include -I/u/home/eylandej/zlib-1.2.7/include
> >> >> -I/u/home/eylandej/szip-2.1/include"
> >> >> LDFLAGS="-L${H5DIR}/lib -L/u/home/eylandej/zlib-1.2.7/lib
> >> >> -L/u/home/eylandej/szip-2.1/lib"
> >> >> LIBS=-ldl
> >> >> ./configure --prefix=/u/home/eylandej/netcdf-4.3.0
> >> >> --with-zlib=/u/home/eylandej/zlib-1.2.7
> >> >> --with-szip=/u/home/eylandej/szip-2.1 \
> >> >> --enable-parallel-tests --disable-shared
> >> >>
> >> >> exit
> >> >>
> >> >>
> >> >>
> >> >> Here is the output of the ./configure script:
> >> >>
> >> >> checking for ssize_t... yes
> >> >> checking for ptrdiff_t... yes
> >> >> checking for uchar... no
> >> >> checking for longlong... no
> >> >> checking whether char is unsigned... no
> >> >> checking whether byte ordering is bigendian... no
> >> >> checking size of short... 2
> >> >> checking size of int... 4
> >> >> checking size of long... 8
> >> >> checking size of long long... 8
> >> >> checking size of float... 4
> >> >> checking size of double... 8
> >> >> checking size of off_t... 8
> >> >> checking size of size_t... 8
> >> >> checking for library containing deflate... none required
> >> >> checking for floor in -lm... yes
> >> >> checking for library containing H5Fflush... no
> >> >> configure: error: Can't find or link to the hdf5 library. Use
> >> >> --disable-netcdf-4, or see config.log for errors.
> >> >>
> >> >> I looked through the config.log file, but nothing seems obvious.
> >> >>
> >> >> I KNOW that H5Fflush is in the HDF libraries. I ran a nm on the HDF5
> >> >> libs, and H5Fflush is in there. I don't know why netcdf won't see
> >>that.
> >> >>
> >> >> John
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >>
> >> >>
> >> >> ________________________________________
> >> >>
> >> >> John B. Eylander
> >> >> Cold Regions Research and Engineering Lab
> >> >> U.S. Army Engineer Research and Development Center
> >> >> 72 Lyme Road
> >> >> Hanover, NH 03755
> >> >>
> >> >> PH: 603-646-4188 BB: 603-359-9717
> >> >>
> >> >> Unclass: address@hidden
> >> >> SIPR: address@hidden
> >> >> JWICS: address@hidden
> >> >> ________________________________________
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> On 7/30/13 1:28 PM, "Unidata netCDF Support"
> >> >> <address@hidden> wrote:
> >> >>
> >> >> >Hi John,
> >> >> >
> >> >> >We recommend this way to build with parallel I/O support:
> >> >> >
> >> >> > http://www.unidata.ucar.edu/netcdf/docs/build_parallel.html
> >> >> >
> >> >> >This works for netCDF version 4.3.0, but I don't know for sure
> >> >> >whether it works for the older 4.1.3 release. Is there some reason
> >> >> >you have to use version 4.1.3? I notice you're building a separate
> >> >> >netCDF-Fortran library anyway, which is what you would do if you
> >> >> >first build and install netCDF-C library version 4.3.0, then build
> >> >> >and install netCDF-Fortran version 4.2 according to these
> >>instructions:
> >> >> >
> >> >> >
> >>http://www.unidata.ucar.edu/netcdf/docs/netcdf-fortran-install.html
> >> >> >
> >> >> >paying attention to the parallel I/O instructions in step 4, under
> >>the
> >> >> >"Using Static Libraries" section, if that's what you want to
> >>install.
> >> >> >
> >> >> >--Russ
> >> >> >
> >> >> >> Full Name: John Eylander
> >> >> >> Email Address: address@hidden
> >> >> >> Organization: Army Cold Regions Research & Eng. Lab
> >> >> >> Package Version: 4.1.3
> >> >> >> Operating System: RHEL 6.2 64-bit OS
> >> >> >> Hardware: 64-Bit
> >> >> >> Description of problem: I'm having extreme troubles compiling
> >>NetCDF
> >> >> >>4.1.3 (with parallel I/O support enabled). I have HDF5 1.8.6
> >> >>installed
> >> >> >>and successfully compiled and installed. I have searched all the
> >> >>google
> >> >> >>sources I know to try to find the right flag or option to turn
> >>off/on
> >> >> >>with no luck. Here is my NetCDF compile script:
> >> >> >>
> >> >> >> HDF_DIR=/u/home/eylandej/hdf5
> >> >> >> export CC=/site/intel/impi/4.1.0.024/intel64/bin/mpicc
> >> >> >> export F77=/site/intel/impi/4.1.0.024/intel64/bin/mpif77
> >> >> >> export CXX=/site/intel/impi/4.1.0.024/intel64/bin/mpicxx
> >> >> >> export FC=/site/intel/impi/4.1.0.024/intel64/bin/mpif90
> >> >> >> echo $LD_LIBRARY_PATH
> >> >> >> export
> >> >>LD_LIBRARY_PATH=/u/home/eylandej/hdf5-1.8.6/lib:$LD_LIBRARY_PATH
> >> >> >> export FCFLAGS="-I/u/home/eylandej/hdf5/include
> >> >> >>-I/u/home/eylandej/zlib-1.2.7/include
> >> >> >>-I/u/home/eylandej/szip-2.1/include -m64"
> >> >> >> export CPPFLAGS="-I/u/home/eylandej/hdf5/include
> >> >> >>-I/u/home/eylandej/zlib-1.2.7/include
> >> >> >>-I/u/home/eylandej/szip-2.1/include -DpgiFortran"
> >> >> >> export FFLAGS="-I/u/home/eylandej/hdf5/include
> >> >> >>-I/u/home/eylandej/zlib-1.2.7/include
> >> >> >>-I/u/home/eylandej/szip-2.1/include -m64"
> >> >> >> export LDFLAGS="-L${HDF_DIR}/lib -L/u/home/eylandej/zlib-1.2.7/lib
> >> >> >>-L/u/home/eylandej/szip-2.1/lib"
> >> >> >> LIBS="-ldl -lz -lm -lhdf5 -lhdf5_hl -lhdf5_fortran
> >>-lhdf5hl_fortran"
> >> >> >> ./configure --prefix=/u/home/eylandej/netcdf-4.1.3
> >> >> >>--with-zlib=/u/home/eylandej/zlib-1.2.7
> >> >> >>--with-szip=/u/home/eylandej/szip-2.1 \
> >> >> >> --enable-netcdf-4 --enable-pnetcdf4 --disable-dap --disable-shared
> >> >> >>--enable-static \
> >> >> >> --enable-separate-fortran --enable-f90 --with-udunits
> >>--with-libcf
> >> >> >>--enable-large-file-tests --enable-parallel-tests
> >> >> >>
> >> >> >> This is the error I get during the "configure" stage of compiling
> >> >> >>NetCDF:
> >> >> >>
> >> >> >> checking for ptrdiff_t... yes
> >> >> >> checking for uchar... no
> >> >> >> checking for longlong... no
> >> >> >> checking whether char is unsigned... no
> >> >> >> checking whether byte ordering is bigendian... no
> >> >> >> checking size of short... 2
> >> >> >> checking size of int... 4
> >> >> >> checking size of long... 8
> >> >> >> checking size of float... 4
> >> >> >> checking size of double... 8
> >> >> >> checking size of off_t... 8
> >> >> >> checking size of size_t... 8
> >> >> >> checking for library containing deflate... none required
> >> >> >> checking for floor in -lm... yes
> >> >> >> checking for library containing H5Fflush... no
> >> >> >> configure: error: Can't find or link to the hdf5 library. Use
> >> >> >>--disable-netcdf-4, or see config.log for errors.
> >> >> >> + exit
> >> >> >>
> >> >> >> I need to compile NetCDF 4 with parallel I/O support for WRF
> >>version
> >> >> >>3.4.1. Any ideas on what I have done wrong with my flags/options?
> >> >>I've
> >> >> >>been struggling with this for a couple of weeks... Thanks in
> >>adance!
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >Russ Rew UCAR Unidata
> >>Program
> >> >> >address@hidden
> >>http://www.unidata.ucar.edu
> >> >> >
> >> >> >
> >> >> >
> >> >> >Ticket Details
> >> >> >===================
> >> >> >Ticket ID: MLF-697840
> >> >> >Department: Support netCDF
> >> >> >Priority: Normal
> >> >> >Status: Closed
> >> >> >
> >> >>
> >> >>
> >> >
> >> >Russ Rew UCAR Unidata Program
> >> >address@hidden http://www.unidata.ucar.edu
> >> >
> >> >
> >> >
> >> >Ticket Details
> >> >===================
> >> >Ticket ID: MLF-697840
> >> >Department: Support netCDF
> >> >Priority: Normal
> >> >Status: Closed
> >> >
> >>
> >>
> >>
> >Russ Rew UCAR Unidata Program
> >address@hidden http://www.unidata.ucar.edu
> >
> >
> >
> >Ticket Details
> >===================
> >Ticket ID: MLF-697840
> >Department: Support netCDF
> >Priority: Normal
> >Status: Closed
> >
>
>
>
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: MLF-697840
Department: Support netCDF
Priority: Normal
Status: Closed