NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
We have CentOS5x x86_64 machines here. Our recipe for compiling netcdf and PDL-NetCDF is in the attached file.
Regards, Doug dhunt@xxxxxxxx Software Engineer IV UCAR - COSMIC, Tel. (303) 497-2611 On Mon, 23 Mar 2009, Tyler Cruickshank wrote:
Hi Doug. I've run into a problem installing PDL-NetCDF on my CentOS5x x86_64 machine. I can create a makefile ok, but make is producing the error pasted below. Following the advice in PROBLEMS, I edited my Makefile.PL to reflect 'CCFLAGS' => "-Dbool=int -g3". I see that the error messages wants me to recompile using -fPIC, but I am not quite sure what to do with that. Can you direct me? Thanks. -tyler ------------------------------------------------------------------------------ [root@avalanche PDL-NetCDF-0.94]# make /usr/bin/perl -I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi "-MPDL::PP qw/PDL::NetCDF PDL::NetCDF NetCDF/" netcdf.pd cp NetCDF.pm blib/lib/PDL/NetCDF.pm /usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/PDL/Core/typemap.pdl -typemap typemap NetCDF.xs > NetCDF.xsc && mv NetCDF.xsc NetCDF.c gcc -c -I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/PDL/Core -I/usr/local/include -Dbool=int -g3 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"0.94\" -DXS_VERSION=\"0.94\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" NetCDF.c In file included from /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/perl.h:2120, from NetCDF.xs:6: /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE/handy.h:85:1: warning: "bool" redefined <command line>:1:1: warning: this is the location of the previous definition NetCDF.xs: In function 'XS_PDL__NetCDF_nc_put_att_schar': NetCDF.xs:634: warning: pointer targets in passing argument 6 of 'nc_put_att_schar' differ in signedness NetCDF.xs: In function 'XS_PDL__NetCDF_nc_get_att_schar': NetCDF.xs:652: warning: pointer targets in passing argument 4 of 'nc_get_att_schar' differ in signedness NetCDF.xs: In function 'XS_PDL__NetCDF_nc_put_vara_schar': NetCDF.xs:1144: warning: pointer targets in passing argument 5 of 'nc_put_vara_schar' differ in signedness NetCDF.xs: In function 'XS_PDL__NetCDF_nc_get_vara_schar': NetCDF.xs:1166: warning: pointer targets in passing argument 5 of 'nc_get_vara_schar' differ in signedness NetCDF.xs: In function 'XS_PDL__NetCDF_nc_put_var_schar': NetCDF.xs:1476: warning: pointer targets in passing argument 3 of 'nc_put_var_schar' differ in signedness NetCDF.xs: In function 'XS_PDL__NetCDF_nc_get_var_schar': NetCDF.xs:1493: warning: pointer targets in passing argument 3 of 'nc_get_var_schar' differ in signedness Running Mkbootstrap for PDL::NetCDF () chmod 644 NetCDF.bs rm -f blib/arch/auto/PDL/NetCDF/NetCDF.so gcc -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic NetCDF.o -o blib/arch/auto/PDL/NetCDF/NetCDF.so \ -L/usr/local/lib -lnetcdf \ /usr/bin/ld: /usr/local/lib/libnetcdf.a(attr.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libnetcdf.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [blib/arch/auto/PDL/NetCDF/NetCDF.so] Error 1
For netcdf-3.6.3 and PDL-NetCDF-0.93, installing netcdf into /ops/tools/[lib|include] using the Portland group F90 compiler. If you want to install to the normal netcdf location, do not specify: -I/ops/tools/include --prefix=/ops/tools and export NETCDF_LIBDIR and NETCDF_INCDIR appropriately (should not be necessary for a default netcdf install). If you do not need FORTRAN, then you should not worry about FC, F90 or the -DpgiFortran flag. tar -xzf netcdf-3.6.3.tar.gz cd netcdf-3.6.3 export FC=pgf90 # we use portland group FORTRAN 90 export F90=pgf90 export CC=gcc export CFLAGS='-fPIC' export CPPFLAGS='-DNDEBUG -DpgiFortran -fPIC' export CXX='g++' export FFLAGS='-I/usr/include -I/ops/tools/include' ./configure --prefix=/ops/tools make make install cp f90/netcdf.mod /ops/tools/include cp f90/typesizes.mod /ops/tools/include tar -xzf PDL-NetCDF-0.93.tar.gz cd PDL-NetCDF-0.93 export NETCDF_LIBDIR='/ops/tools/lib' export NETCDF_INCDIR='/ops/tools/include' perl Makefile.PL make make test make install
netcdfgroup
archives: