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

[netCDF #TRL-392354]: netcdf-4 build fails



Hello,

> Hi!
> 
> Per Jansson, PhD student, physical oceanography at UiT, Norway, here.
> 
> (On a brand new workstation with ubuntu 14.04 LTS.)
> 
> I'm trying to build netcdf-4.3.2 C-libraries with support for parallel and 
> netcdf-4, but ran into problems;
> 
> I have successfully installed hdf5 (1.8.13) (make check install-->ok). like 
> this;
> export LD_LIBRARYS_PATH="/home/per/local/lib /usr/local/lib"
> export CPPFLAGS="-I/home/per/local/include"

I don't know if it is relevant, but LD_LIBRARYS_PATH should, I believe, be:

LD_LIBRARY_PATH="/home/per/local/lib:/usr/local/lib"

I have not seen 'LD_LIBRARYS_PATH' before, and a google search is not showing 
me any information about it.  Section 3.3.1 of the following document describes 
how to use LD_LIBRARY_PATH.

http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

> export LDFLAGS="-L/home/per/local/lib"
> export LIBS="-lz -ldl"
> export CC=mpicc
> ./configure --prefix=/home/per/local/ -with-zlib=/home/per/local 
> -enable-parallel

Unless this is a typo in the email, I believe you should use 
'--enable-parallel', with two dashes, not '-enable-parallel', as you have 
above.  What is happening is that configure is not finding parallel symbols in 
libhdf5, and so 'USE_PARALLEL' is not being defined.  As a result, MPI_Comm is 
being defined in ncdispatch.h; this is guarded by an "#ifndef USE_PARALLEL" 
block.  Looking at the config.log file you provided, it confirms that no 
parallel symbols are found.

Can you confirm that libhdf5 actually built with parallel functionality?

Thanks,

-Ward

> make check
> make install
> 
> Then I try to build the netcdf-4.3.2 C-libraries like this;
> export LD_LIBRARYS_PATH="/home/per/local/lib /usr/local/lib"

Again, I'm not sure if it is relevant, but this should be changed as described 
above.

> export CPPFLAGS="-I/home/per/local/include"
> export LDFLAGS="-L/home/per/local/lib"
> export LIBS="-lz -ldl"
> export CC=mpicc
> ./configure --prefix=/home/per/local --enable-netcdf-4 
> --enable-parallel-tests --disable-shared --disable-dap


> so far ok
> make check
> produces; (this is end-bit of the output...)
> ============================================================================
> Testsuite summary for netCDF 4.3.2
> ============================================================================
> # TOTAL: 26
> # PASS:  26
> # SKIP:  0
> # XFAIL: 0
> # FAIL:  0
> # XPASS: 0
> # ERROR: 0
> ============================================================================
> make[3]: Leaving directory `/home/per/software/netcdf-4.3.2/h5_test'
> make[2]: Leaving directory `/home/per/software/netcdf-4.3.2/h5_test'
> make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/h5_test'
> Making check in libdispatch
> make[1]: Entering directory `/home/per/software/netcdf-4.3.2/libdispatch'
> make[1]: Nothing to be done for `check'.
> make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/libdispatch'
> Making check in libsrc
> make[1]: Entering directory `/home/per/software/netcdf-4.3.2/libsrc'
> make[1]: Nothing to be done for `check'.
> make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/libsrc'
> Making check in libsrc4
> make[1]: Entering directory `/home/per/software/netcdf-4.3.2/libsrc4'
> /bin/bash ../libtool  --tag=CC   --mode=compile mpicc -DHAVE_CONFIG_H -I. 
> -I..  -I../include    -I/home/per/local/include  -g -O2 -MT 
> libnetcdf4_la-nc4attr.lo -MD -MP -MF .deps/libnetcdf4_la-nc4attr.Tpo -c -o 
> libnetcdf4_la-nc4attr.lo `test -f 'nc4attr.c' || echo './'`nc4attr.c
> libtool: compile:  mpicc -DHAVE_CONFIG_H -I. -I.. -I../include 
> -I/home/per/local/include -g -O2 -MT libnetcdf4_la-nc4attr.lo -MD -MP -MF 
> .deps/libnetcdf4_la-nc4attr.Tpo -c nc4attr.c -o libnetcdf4_la-nc4attr.o
> In file included from nc4dispatch.h:15:0,
> from nc4attr.c:17:
> ../include/ncdispatch.h:90:13: error: conflicting types for 'MPI_Comm'
> typedef int MPI_Comm;
> ^
> In file included from /home/per/local/include/H5public.h:61:0,
> from /home/per/local/include/hdf5.h:24,
> from ../include/nc4internal.h:18,
> from nc4attr.c:15:
> /home/per/local/include/mpi.h:324:37: note: previous declaration of 
> 'MPI_Comm' was here
> typedef struct ompi_communicator_t *MPI_Comm;
> ^
> In file included from nc4dispatch.h:15:0,
> from nc4attr.c:17:
> ../include/ncdispatch.h:91:13: error: conflicting types for 'MPI_Info'
> typedef int MPI_Info;
> ^
> In file included from /home/per/local/include/H5public.h:61:0,
> from /home/per/local/include/hdf5.h:24,
> from ../include/nc4internal.h:18,
> from nc4attr.c:15:
> /home/per/local/include/mpi.h:331:29: note: previous declaration of 
> 'MPI_Info' was here
> typedef struct ompi_info_t *MPI_Info;
> ^
> In file included from nc4dispatch.h:15:0,
> from nc4attr.c:17:
> ../include/ncdispatch.h:92:0: warning: "MPI_COMM_WORLD" redefined [enabled by 
> default]
> #define MPI_COMM_WORLD 0
> ^
> In file included from /home/per/local/include/H5public.h:61:0,
> from /home/per/local/include/hdf5.h:24,
> from ../include/nc4internal.h:18,
> from nc4attr.c:15:
> /home/per/local/include/mpi.h:1016:0: note: this is the location of the 
> previous definition
> #define MPI_COMM_WORLD OMPI_PREDEFINED_GLOBAL( MPI_Comm, ompi_mpi_comm_world)
> ^
> In file included from nc4dispatch.h:15:0,
> from nc4attr.c:17:
> ../include/ncdispatch.h:93:0: warning: "MPI_INFO_NULL" redefined [enabled by 
> default]
> #define MPI_INFO_NULL 0
> ^
> In file included from /home/per/local/include/H5public.h:61:0,
> from /home/per/local/include/hdf5.h:24,
> from ../include/nc4internal.h:18,
> from nc4attr.c:15:
> /home/per/local/include/mpi.h:743:0: note: this is the location of the 
> previous definition
> #define MPI_INFO_NULL OMPI_PREDEFINED_GLOBAL(MPI_Info, ompi_mpi_info_null)
> ^
> make[1]: *** [libnetcdf4_la-nc4attr.lo] Error 1
> make[1]: Leaving directory `/home/per/software/netcdf-4.3.2/libsrc4'
> make: *** [check-recursive] Error 1
> address@hidden:~/software/netcdf-4.3.2$
> 
> What is happening? If it's any help, I have attached the config.log file...
> I need the netcdf-4 to be able to install netcdf-fortran-4.4.0, which I need 
> to install ROMS (regional Ocean Model System).
> 
> 
> Best regards!
> Per
> 
> 

Ticket Details
===================
Ticket ID: TRL-392354
Department: Support netCDF
Priority: Normal
Status: Closed


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.