[FLASH-USERS] Solved [Re: problem building flash (libhdf5)]
Terry Gaetz
gaetz at cfa.harvard.edu
Thu Jul 18 16:31:56 EDT 2013
Hi everyone
With further effort I tracked it down. I was expecting the build script
to be setting the rpaths, and it wasn't. (I thought setting up
HDF5_path and MPI_PATH would be enough.) In the Makefile.h I changed
the LIB_HDF5 and LIB_MPI definitions to:
LIB_HDF5 = -L ${HDF5_PATH}/lib -Wl,-rpath,${HDF5_PATH}/lib -lhdf5 -lz
and
LIB_MPI = -L ${MPI_PATH}/lib -Wl,-rpath,${MPI_PATH}/lib -lmpi -lz
to pass the appropriate rpath informtion to ld. This adds the
appropriate runtime paths to the executable. (I avoid LD_LIBRARY_PATH
whereever possible.)
Thanks.
Terry
On 07/18/2013 03:54 PM, Terry Gaetz wrote:
>
> This is with FLASH4.0.1 on a linux machine running CentOS 5.9.
>
> I set up for a Sedov test run:
> ./setup -auto Sedov 2>&1 | tee log.setup_sedov
> pushd object
> make 2>&1 | tee log.make
>
> This ends with "SUCCESS".
>
> When I try to run it, though:
>
> geri% ./flash4
> ./flash4: error while loading shared libraries: libhdf5.so.8: cannot
> open shared object file: No such file or directory
>
> ldd shows:
> geri% ldd flash4
> linux-vdso.so.1 => (0x00007fff24fac000)
> libhdf5.so.8 => not found
> libz.so.1 => /lib64/libz.so.1 (0x00000034ae800000)
> libmpi_f90.so.1 => not found
> libmpi_f77.so.1 => not found
> libmpi.so.1 => not found
> libdl.so.2 => /lib64/libdl.so.2 (0x00000034aec00000)
> libgfortran.so.1 => /usr/lib64/libgfortran.so.1
> (0x00000034b2200000)
> libm.so.6 => /lib64/libm.so.6 (0x00000034ae400000)
> librt.so.1 => /lib64/librt.so.1 (0x00000034b2800000)
> libnsl.so.1 => /lib64/libnsl.so.1 (0x00000034b7e00000)
> libutil.so.1 => /lib64/libutil.so.1 (0x00000034bca00000)
> libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000034b4400000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x00000034af000000)
> libc.so.6 => /lib64/libc.so.6 (0x00000034ae000000)
> /lib64/ld-linux-x86-64.so.2 (0x00000034adc00000)
>
> so indeed the library is not found. However, the make log shows:
>
> Linking in Units and Libraries
> /data/havi0/soft/ots/pkgs/openmpi-1.6.5/x86_64-linux_CentOS-5/bin/mpif90
> -ggdb -o flash4 Burn.o
> [...]
> ut_sysMemSummaryStats.o ut_sys_mem_usage.o workspace.o -L
> /data/havi0/soft/ots/pkgs/hdf5-1.8.11/x86_64-linux_CentOS-5/lib -lhdf5
> -lz
>
> and the library does exist at the location given to the -L option:
>
> geri% file
> /data/havi0/soft/ots/pkgs/hdf5-1.8.11/x86_64-linux_CentOS-5/lib/libhdf5.so.8
>
> /data/havi0/soft/ots/pkgs/hdf5-1.8.11/x86_64-linux_CentOS-5/lib/libhdf5.so.8:
>
> symbolic link to `libhdf5.so.8.0.0'
> geri% file
> /data/havi0/soft/ots/pkgs/hdf5-1.8.11/x86_64-linux_CentOS-5/lib/libhdf5.so.8.0.0
>
> /data/havi0/soft/ots/pkgs/hdf5-1.8.11/x86_64-linux_CentOS-5/lib/libhdf5.so.8.0.0:
>
> ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
>
> Any ideas as to where I am going wrong? Is there another version of
> hdf5 which should be used?
>
> Thanks,
> Terry Gaetz
More information about the flash-users
mailing list