Hi Petr, > I have just a few spots from todays installation of NetCDF Fortran Source > Code Stable Release (4.2) compilation and also from previous NetCDF > installation. I don't need any help, just pointing out the wholes in > install docs and configure scripts. Thanks for taking the time to write us about possible problems in our documentation and configure scripts/ > We use for our grid environment the MPICH2 libraries to enable parallel > execution of several programs. Currently it is version 1.4.1, but maybe > it is not relevant. I tried to compile NetCDF (220.127.116.11) with mpich2 > compiled by intel compiler (intelcdk-12). > > I would like to say that it would be great if I can read somewhere in > the documentation, that when compiling supporting libraries like zlib > or hdf5 I should use the -fPIC C and CPP flags. Originally I compiled > all the required libraries without this flag and I receved an error: > "relocation R_X86_64_32 against `a local symbol' can not be used when > making a shared object; recompile with -fPIC" while linking almost default > NetCDF configuration with them. Please let others know in install docs, > that this parameter should be used even for the compiler itself, in my > case for MPICH2. Thanks, I didn't know about that. We build hdf5 and zlib without specifying -fPIC (although maybe the configure script determines it's needed) and netCDF-4 builds using gcc without errors. Do you know if this problem only shows up when using mpich2 and an Intel compiler? We currently don't test with that combination. There is no mention of using -fPIC on the Intel article about building netCDF with Intel compilers, but it also makes no mention of enabling parallel I/O: http://software.intel.com/en-us/articles/performance-tools-for-software-developers-building-netcdf-with-the-intel-compilers > The other thing is little bit difficult because it should be ideally > fixed by you in the code. The configure scripts do not count with mpich > compiler, specially with mpich fortran compiler (mpif77 and mpif90 > compiled itself by ifort). When building NetCDF fortran libraries I had > to add mpif77 and mpif90 to every line in configure script containing > 'ifort', otherwise I got an error: Did you set the environment variables before running configure (or as arguments to configure): export CC=mpicc export CXX=mpicxx export FC=mpif90 export F77=mpif77 export F90=mpif90 export CPP='icpc -E' export CXXCPP='icpc -E' I would have thought that would make the configure script use those compilers. From your description, I'm not sure if you're saying this is a problem we can fix by changing our configure.in, or a problem with the autoconf software (developed and maintained elsewhere) in creating the configure script from our configure.in and environment variable settings ... > libtool: link: mpif90 -shared .libs/fort-attio.o .libs/fort-control.o > .libs/fort-dim.o .libs/fort-genatt.o .libs/fort-geninq.o .libs/fort-genvar.o > .libs/fort-lib.o .libs/fort-misc.o .libs/fort-v2compat.o .libs/fort-vario.o > .libs/fort-var1io.o .libs/fort-varaio.o .libs/fort-varmio.o > .libs/fort-varsio.o .libs/fort-nc4.o --whole-archive > ../f90/.libs/libnetcdff90.a --no-whole-archive -rpath > /storage/plzen1/home/hanousek/prg/nco_project/netcdf-18.104.22.168/lib -rpath > /storage/plzen1/home/hanousek/prg/nco_project/curl-7.29.0/lib -rpath > /storage/plzen1/home/hanousek/prg/nco_project/netcdf-22.214.171.124/lib -rpath > /storage/plzen1/home/hanousek/prg/nco_project/curl-7.29.0/lib > -L/storage/plzen1/home/hanousek/prg/nco_project/netcdf-126.96.36.199/lib > -L/storage/plzen1/home/hanousek/prg/nco_project/curl-7.29.0/lib > -L/storage/plzen1/home/hanousek/prg/nco_project/hdf5-1.8.9/lib > -L/storage/plzen1/home/hanousek/prg/nco_project/zlib-1.2.7/lib > -L/storage/plzen1/home/hanousek/prg/nco_project/pnetcdf-1.3.1/lib /storage/plzen1/home/hanousek/prg/nco_project/netcdf-188.8.131.52/lib/libnetcdff.so -L/usr/lib /storage/plzen1/home/hanousek/prg/nco_project/netcdf-184.108.40.206/lib/libnetcdf.so -lpnetcdf /storage/plzen1/home/hanousek/prg/nco_project/curl-7.29.0/lib/libcurl.so /usr/lib/libidn.so -lssh2 -lssl -lcrypto -lldap -lrt /storage/plzen1/home/hanousek/prg/nco_project/hdf5-1.8.9/lib/libhdf5_hl.a /storage/plzen1/home/hanousek/prg/nco_project/hdf5-1.8.9/lib/libhdf5.a -lz -lm -soname libnetcdff.so.5 -o .libs/libnetcdff.so.5.3.1 > ifort: command line warning #10006: ignoring unknown option '-fwhole-archive' > ifort: command line warning #10006: ignoring unknown option > '-fno-whole-archive' > ifort: command line warning #10006: ignoring unknown option '-rpath' > ifort: command line warning #10006: ignoring unknown option '-rpath' > ifort: command line warning #10006: ignoring unknown option '-rpath' > ifort: command line warning #10006: ignoring unknown option '-rpath' > ifort: command line warning #10006: ignoring unknown option '-soname' > ifort: error #10236: File not found: 'libnetcdff.so.5' > make: *** [libnetcdff.la] Error 1 > > Regardless of used LDFLAGS or LD_LIBRARY_PATH or lt_cv_ld_force_load=no > option. I am afraid that mpif fortran compiler is not recognized in > all of netcdf libraries because if I run for example nc-config --all, > I get the as the FC program gfortran. > > Anyway thank you for the good work with docs, it is quite comprehensive > and worth for use. I've been able to solve many problems using it. Thanks again for reporting the problems you encountered. It sounds like we need to add a test case that uses mpich with Intel compilers. Any fixes won't be in the upcoming 4.3.0 release, as that's getting pretty close ... > Sincerely Petr Hanousek --Russ Russ Rew UCAR Unidata Program address@hidden http://www.unidata.ucar.edu Ticket Details =================== Ticket ID: XNT-421372 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.