Are all the .o files for the library compiled with -fPIC? You can
usually get away with forgetting -fPIC for i386 but not for x86_64.
Regards,
Hans
Orion Poplawski wrote:
I maintain the hdf5 library for extras. On a recent update, the FC3/4/5
x86_64 version broke (actually, don't know exactly when it broke, but
fairly recently):
*** Warning: This library needs some functionality provided by -lpthread.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lssl.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lcrypto.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lz.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** Warning: This library needs some functionality provided by -lm.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
gcc -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 H5Fmount.lo H5Fsfile.lo H5Fsuper.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 -Wl,-soname -Wl,libhdf5.so.0
-o .libs/libhdf5.so.0.0.0
As a result, the library does not bring in dependencies automatically:
$ ldd /usr/lib64/libhdf5.so.0.0.0
ldd: warning: you do not have execution permission for
`/usr/lib64/libhdf5.so.0.0.0'
libc.so.6 => /lib64/libc.so.6 (0x00002aaaaacd7000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
It works fine on i386 and ppc.
I really have no idea where to look next... This is a libtool issue,
right? On the other platforms the link line lists the libraries:
gcc -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 H5Fmount.lo H5Fsfile.lo H5Fsuper.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 -lpthread -lssl -lcrypto -lz
-lm -Wl,-soname -Wl,libhdf5.so.0 -o .libs/libhdf5.so.0.0.0