Problem compiling HDF5-1.8.5 with relocation R_X86_64_32S error

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.

Tony,

It looks like you system is really old. Will Intel 11 work with such old version of gcc?

Anyway... I would try to add -fPIC to the gcc compilation flags first, and then if it doesn't work, I would use --disable-shared and try to build just HDF5 static libraries.

And I assume szip is shared, right? If not, you will need to build static szip using -fPIC flag too.

Elena

···

On Feb 7, 2011, at 7:55 AM, Tony Stocker wrote:

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.

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org