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.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org