Bug 107161 - hdf5-1.6.4 can't compile if MPI support is enabled
Bug#: 107161 Product:  Gentoo Linux Version: unspecified Platform: AMD64
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: sci@gentoo.org Reported By: rmihael@ukr.net
Component: Applications
URL: 
Summary: hdf5-1.6.4 can't compile if MPI support is enabled
Keywords:  
Status Whiteboard: 
Opened: 2005-09-25 04:13 0000
Description:   Opened: 2005-09-25 04:13 0000
Tried both with LamMPI and MPICH. The same error message.

...........................
(cd . && ln -s H5Tvlen.lo H5Tvlen.o)
(cd . && ln -s H5TS.lo H5TS.o)
(cd . && ln -s H5V.lo H5V.o)
(cd . && ln -s H5Z.lo H5Z.o)
(cd . && ln -s H5Zdeflate.lo H5Zdeflate.o)
(cd . && ln -s H5Zfletcher32.lo H5Zfletcher32.o)
(cd . && ln -s H5Zshuffle.lo H5Zshuffle.o)
(cd . && ln -s H5Zszip.lo H5Zszip.o)
/usr/bin/mpicc -shared  H5.lo H5A.lo H5AC.lo H5B.lo H5C.lo H5D.lo H5Dcontig.lo
H5Dcompact.lo H5Defl.lo H5Dio.lo H5Distore.lo H5Dmpio.lo H5Dselect.lo H5Dtest.lo
H5E.lo H5F.lo H5Fdbg.lo H5FD.lo H5FDcore.lo H5FDfamily.lo H5FDgass.lo H5FDlog.lo
H5FDmpi.lo H5FDmpio.lo H5FDmpiposix.lo H5FDmulti.lo H5FDsec2.lo H5FDsrb.lo
H5FDstdio.lo H5FDstream.lo H5FL.lo H5FO.lo H5FS.lo H5G.lo H5Gent.lo H5Gnode.lo
H5Gstab.lo H5HG.lo H5HGdbg.lo H5HL.lo H5HLdbg.lo H5HP.lo H5I.lo H5MF.lo H5MM.lo
H5O.lo H5Oattr.lo H5Obogus.lo H5Ocont.lo H5Odtype.lo H5Oefl.lo H5Ofill.lo
H5Olayout.lo H5Omtime.lo H5Oname.lo H5Onull.lo H5Opline.lo H5Osdspace.lo
H5Oshared.lo H5Ostab.lo H5P.lo H5Pdcpl.lo H5Pdxpl.lo H5Pfapl.lo H5Pfcpl.lo
H5Ptest.lo H5R.lo H5RC.lo H5RS.lo H5S.lo H5Sall.lo H5Shyper.lo H5Smpio.lo
H5Snone.lo H5Spoint.lo H5Sselect.lo H5Stest.lo H5SL.lo H5ST.lo H5T.lo
H5Tarray.lo H5Tbit.lo H5Tcommit.lo H5Tcompound.lo H5Tconv.lo H5Tcset.lo
H5Tenum.lo H5Tfields.lo H5Tfixed.lo H5Tfloat.lo H5Tinit.lo H5Tnative.lo
H5Toffset.lo H5Topaque.lo H5Torder.lo H5Tpad.lo H5Tprecis.lo H5Tstrpad.lo
H5Tvlen.lo H5TS.lo H5V.lo H5Z.lo H5Zdeflate.lo H5Zfletcher32.lo H5Zshuffle.lo
H5Zszip.lo  -lssl -lcrypto -lz -lm  -Wl,-soname -Wl,libhdf5.so.0 -o
.libs/libhdf5.so.0.0.0
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/../../../../x86_64-pc-linux-gnu/bin/ld:
/usr/lib/libmpich.a(type_commit.o): relocation R_X86_64_32 against `a local
symbol' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libmpich.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libhdf5.la] Error 1
make[2]: Leaving directory `/var/tmp/portage/hdf5-1.6.4/work/hdf5-1.6.4/src'
make[1]: *** [lib] Error 1
make[1]: Leaving directory `/var/tmp/portage/hdf5-1.6.4/work/hdf5-1.6.4'
make: *** [all] Error 2

!!! ERROR: sci-libs/hdf5-1.6.4 failed.
!!! Function src_compile, Line 48, Exitcode 2
!!! emake failed
!!! If you need support, post the topmost build error, NOT this status message.


Reproducible: Always
Steps to Reproduce:
1. echo sci-libs/hdf5 >> /etc/portage/package.keywords
2. USE="mpi" emerge hdf5




Portage 2.0.51.22-r2 (default-linux/amd64/2005.0, gcc-3.4.3, glibc-2.3.5-r0,
2.6.12-gentoo-r10 x86_64)
=================================================================
System uname: 2.6.12-gentoo-r10 x86_64 AMD Athlon(tm) 64 Processor 3200+
Gentoo Base System version 1.6.13
dev-lang/python:     2.3.5-r2
sys-apps/sandbox:    1.2.12
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=k8 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config
/usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/
/usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/
/usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=k8 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="ftp://ftp.linux.kiev.ua/pub/Linux/Gentoo"
LANG="ru_RU.KOI8-R"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://ftp.linux.kiev.ua/gentoo-portage"
USE="amd64 7zip X aac acpi alsa amarok apache2 apm arts asterisk audiofile avi
bash-completion bitmap-fonts blas bluetooth bzlib cdr crypt dga dvd dvdr emacs
emul-linux-x86 esd ffmpeg fftw firefox flac foomaticdb fortran ftp gif gnutls
gpm gtk gtk2 gtkhtml hal hdf hdf5 iconv icq imagemagick jabber java javascript
jikes jpeg kde kdeenablefinal lapack ldap lm_sensors mad md5sum mikmod mp3 mpeg
mpi mysql nas ncurses netcdf nls nntp nptl oggvorbis opengl pcre pda pdflib png
postgres ppds qt quicktime readline ruby samba socks5 spell ssl subversion svg
tcltk tcpd threads tiff truetype truetype-fonts type1-fonts unicode usb vhosts
vorbis wifi xml xml2 xmms xv xvid zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS

------- Comment #1 From Steve Arnold 2006-05-21 12:51:13 0000 -------
The workaround would be to sync up and emerge the new mpich2-1.0.3 ebuild
first.  Then you can emerge hdf5 successfully.  I'm working on getting some of
this stuff stablized, but it's a long chain of deps, portage is getting
pickier, and many of these sci-codes don't seem to do shared libs quite
right...

------- Comment #2 From Steve Arnold 2006-06-27 19:35:49 0000 -------
The latest HDF5 (1.6.5-r1) has working tests now, and most of the MPI tests
pass (using the provided mpd.conf in the portage build tree, but only using the
local build host and no virtual filesystem).  It also has fortran 9x support,
both detection and a USE flag to enable it; I'm open to suggestions on
improvements (but we currently only have ebuild support for gfortran (gcc4) and
ifc).

I haven't worked on any other MPI packages, so the above only applies to
mpich2-1.0.3-r1, which must also be built with f90 support for the HDF5 f90
stuff to build against it correctly (and possibly 1.0.3 if it correctly
detected your f90 compiler).

Please try the updated ebuilds (both hdf5-1.6.5-r1 and mpich2-1.0.3-r1) and
file any new bugs accordingly; you can avoid the "virtual/mpi" pulling in other
packages by just emerging mpich2 with the desired USE flags prior to emerging
hdf5.

Note: the mpich2 internal tests are not yet enabled (feel free to work on it
tho :)