This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Steven, > When running "sudo make" > > I get this error: > > /usr/bin/ld: > /usr2/scw/TMP/udunits-1.12.9/src/perl/../lib/libudunits.a(utlib.o): > relocation R_X86_64_32 against `a local symbol' can not be used when making a > shared object; recompile with -fPIC > /usr2/scw/TMP/udunits-1.12.9/src/perl/../lib/libudunits.a: could not read > symbols: Bad value > collect2: ld returned 1 exit status > make[1]: *** [blib/arch/auto/UDUNITS/UDUNITS.so] Error 1 > make: *** [perl/dynamic] Error 1 > > Exactly the same procedure produced success on my ubuntu 8.04 32-bit system. > I was able to install udunits2 on the 64-bit machine, but unfortunately the > package "RNetCDF" will not work with udunits2. I am sandbagged... The error message means that the UDUNITS library wasn't compiled for position-independent code (PIC); consequently, it can't be used to create a UDUNITS shareable library. This is unexpected because the configure(1) script should have added the "-fPIC" option to the compilation flags. You have 2 options: 1. Cause the UDUNITS Perl module to be skipped by setting the environment variable PERL to the empty string before (re)executing the configure(1) script. Be sure to execute the command "make distclean" first. 2. Force the use of the "-fPIC" option by including it in the value of the CFLAGS environment variable before (re)executing the configure(1) script. Again, execute the "make distclean" command first. Regards, Steve Emmerson Ticket Details =================== Ticket ID: VTP-130419 Department: Support UDUNITS Priority: Normal Status: Closed