I'm trying to compile HDF5-1.8.5 from source tarball. I've successfully done this on other systems, however those systems have slightly newer operating systems and software. I'm at a loss on where to proceed next in trying to fix this. I've tried to provide all the relevant (and likely quite a bit irrelevant) information below.
Info on the system that the compile is failing on, and the compilation process:
···
---------------------------
System & software specifics:
---------------------------
OS: CentOS/Scyld Clusterware
# cat /etc/redhat-release
CentOS release 4.8 (Final)
# cat /etc/scyld-release
Scyld Beowulf release 43 (43-431g0010 200910051451)
szip: 2.1 (from source)
zlib: 1.2.1.2-1.2 (from vendor RPM yum repository)
f77: Intel Fortran 11.1.073 ifort
gcc: version 3.4.6 20060404 (Red Hat 3.4.6-11)
gcc specs:
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
-------------------
Compilation process:
-------------------
source /usr/local/intel/Compiler/11.1/073/bin/ifortvars.sh intel64
export F77=ifort ; export F9X=ifort ; export FFLAGS="-mcmodel=medium" ; export CFLAGS="-mcmodel=medium -O" ; export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}/usr/local/szip/lib ; export LDFLAGS="-lm"
./configure --prefix=/usr/local/HDF5-1.8.5 --enable-fortran --enable-cxx --with-szlib=/usr/local/szip/include,/usr/local/szip/lib > configure.out.log 2>&1
make > make.out.log 2>&1
------------------------------------
Error Message from make.out.log file:
------------------------------------
/usr/bin/ld: .libs/H5checksum.o: relocation R_X86_64_32S against `a local symbol' can not be used when m
aking a shared object; recompile with -fPIC
.libs/H5checksum.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libhdf5.la] Error 1
make[2]: Leaving directory `/usr/local/src/hdf5-1.8.5/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/local/src/hdf5-1.8.5/src'
make: *** [all-recursive] Error 1
I've searched the HDF forums and found similar relocation R_X86_64_32S messages regarding the zlib (20090902 dated post) and mpich (20100224 dated post.) However I haven't found any reference to this issue in regards to the H5checksum, so I'm not sure which dependent program needs to be recompiled with -fPIC, which seems to be the underlying problem. I looked further up in the output file for any relevant information regarding H5checksum's compilation but it all looks normal to me:
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I/usr/local/szip/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE -DNDEBUG -UH5_DEBUG_API -std=c99 -pedantic -Wall -Wextra -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wno-long-long -Wfloat-equal -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wendif-labels -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch -O3 -fomit-frame-pointer -finline-functions -mcmodel=medium -O -MT H5checksum.lo -MD -MP -MF .deps/H5checksum.Tpo -c H5checksum.c -o .libs/H5checksum.o
I use the same compilation process on CentOS/Clusterware 5.x systems successfully. These systems have slightly newer software in some cases. Where s/w differs from that listed above, I've listed below. The compilation process, including options and export statements is identical.
Information on the systems where compilation seems to work fine:
OS: CentOS/Scyld Clusterware
# cat /etc/redhat-release ; cat /etc/scyld-release
CentOS release 5.5 (Final)
Scyld ClusterWare release 5.5.0 (5.5.0-550g0007 201010111426)
zlib: 1.2.3-3 (from vendor RPM yum repository)
gcc: version 4.1.2 20080704 (Red Hat 4.1.2-48)
gcc specs:
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
So I'm a bit at a loss on what to do next. The compilation process I've been using on our newer systems is failing on an older one, which unfortunately cannot be upgraded any time soon yet which needs the same version of HDF 5 on it.
Any advice or suggestions? I appreciate it.
-Tony
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.