[FLASH-USERS] Undefined symbol in FLASH 3.0beta

Dan Sheeler sheeler at flash.uchicago.edu
Mon Nov 5 16:49:25 EST 2007


My guess is the hdf5 library was built for only serial io, but you are 
using the flash parallel io unit.  Try resetting up the problem, but 
explicitly choose the serial io unit.  Also, maybe your runtime hdf5 
library is different from the compile time, and the compile time has 
parallel support but the runtime doesn't.  In that case, you'd set 
LD_LIBRARY_PATH to point to the compile time hdf5 library.

  --
Dan Sheeler
ASC Flash Center
sheeler at flash.uchicago.edu
(773) 834-3236

On Mon, 5 Nov 2007, Cole Miller wrote:

>
> Hi all,
>
> I've downloaded FLASH 3.0beta, and although it compiles I have not
> been able to get the HDF5 version to run (the system details are
> below).  I've compiled this on a single processor, but when I run
> it I get:
>> mpirun -np 1 flash3
> flash3: symbol lookup error: flash3: undefined symbol: H5P_CLS_DATASET_XFER_g
>
> I got a similar error when I tried to run FLASH 2.5 (although the
> undefined symbol in that case was H5P_CLS_DATASET_CREATE_g).  Oddly
> enough, when I built FLASH 2.5 with HDF4, it ran without complaint,
> but of course the development is in the direction of HDF5 and so I'd
> really like to get that working.
>
> When I go into the /lib directory of my HDF5 build and type
>> nm * | grep H5P_CLS_DATASET_XFER_g
> I get
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
> 0000002c D H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
>         U H5P_CLS_DATASET_XFER_g
> which suggests that the symbol isn't recognized there either, but
> I don't know how to make it define the symbol or to allow FLASH to
> bypass this.  I see that Tomek Plewa had a similar question a few
> years ago, but when I contacted him he didn't recall the details of
> how he resolved it.
>
> Any suggestions for what I should try?  I'm kind of inexperienced at
> this sort of installation...
>
> Thanks!
> Cole Miller
> miller at astro.umd.edu
>
>
> System details:
>
>
>> uname -a
> Linux nstar.astro.umd.edu 2.6.11-12mdkcustom-amd #1 SMP
> Tue Oct 18 16:06:53 EDT 2005 i686 AMD Athlon(tm) MP 2000+ unknown GNU/Linux
>
>> mpif90 -V
> Intel(R) Fortran Compiler for 32-bit applications, Version 9.1
> Build 20060927Z Package ID: l_fc_c_9.1.039
> Copyright (C) 1985-2006 Intel Corporation.  All rights reserved.
> FOR NON-COMMERCIAL USE ONLY
>
>> mpicc -V
> Intel(R) C Compiler for 32-bit applications, Version 9.1
> Build 20060816Z Package ID: l_cc_c_9.1.043
> Copyright (C) 1985-2006 Intel Corporation.  All rights reserved.
> FOR NON-COMMERCIAL USE ONLY
>
>> mpich2version
> MPICH2 Version:         1.0.6
> MPICH2 Release date:    Unknown, built on Thu Oct 25 08:14:05 EDT 2007
> MPICH2 Device:          ch3:sock
> MPICH2 configure:       --prefix=/home/cmiller/mpich2-install
>    --enable-fast --enable-f77 --enable-f90 --enable-cxx --with-pm=mpd
> MPICH2 CC:      icc -O2  -O2
> MPICH2 CXX:     icc  -O2
> MPICH2 F77:     ifort  -O2
> MPICH2 F90:     ifort  -O2
> MPICH2 Patch level:      none
>
>> cat /astromake/opt/hdf5/1.6.6/lib/libhdf5.settings
> SUMMARY OF THE HDF5 CONFIGURATION
> =================================
>
> HDF5 Version:           1.6.6
> Configured on:          Fri Oct 26 13:23:22 EDT 2007
> Configured by:          vernaleo at thales.astro.umd.edu
> Configure mode:         production
> Host system:            i686-pc-linux-gnu
> Byte sex:               little-endian
> Libraries:              static, shared
> Parallel support:       no
> Installation point:     /astromake/opt/hdf5/1.6.6
> Compiler:               /astromake/opt/intel/cc/9.1.043/bin/icc (icc-9.1)
> Compiler switches:       -std=c99 -O3 -Wl,-s -UH5_DEBUG_API -DNDEBUG 
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 
> -D_POSIX_SOURCE -D_BSD_SOURCE
> Extra libraries:         -lz -lm
> Archiver:               ar
> Ranlib:                 ranlib
> Debugged Packages:
> API Tracing:            no
> File addresses:         large
>
> Configure Summary
> Compiling Options:
>               Compilation Mode:  Production
>                     C Compiler:  icc
>                         CFLAGS:   -std=c99 -O3 -Wl,-s
>                       CPPFLAGS:  -UH5_DEBUG_API -DNDEBUG -D_LARGEFILE_SOURCE 
> -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_POSIX_SOURCE -D_BSD_SOURCE
>                        LDFLAGS:
>                     Debug Mode:  None
>               Shared Libraries:  Yes
>               Static Libraries:  Yes
>  Statically Linked Executables:  No
>                        Tracing:  No
>   Optimization Instrumentation:  No
>
> Languages:
> ----------
>                            C++:  No
>                        Fortran:  Yes
>               Fortran Compiler:  ifort
>                         FFLAGS:  -I.  -O3 -I.
>                     C Compiler:  icc
>                         CFLAGS:   -std=c99 -O3
>                       CPPFLAGS:  -D_BSD_SOURCE -D_POSIX_SOURCE 
> -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE
>                        LDFLAGS:
>
>
> Features:
> ---------
>                        dmalloc:  No
>         Function Stack Tracing:  Disabled
>                           GASS:  No
>                           GPFS:  No
>        HDF5 v1.4 Compatibility:  No
>                        hsize_t:  Large
>         I/O filters (external):  deflate
>         I/O filters (internal):  shuffle,fletcher32
> Linux Large File Support (LFS):  Enabled
>                            MPE:  No
>                  Parallel HDF5:  No
>                            SRB:  No
>                     Stream VFD:  Enabled
>                   Threadsafety:  Disabled
>             High Level library:  Enabled
>
>
>> cat object/Makefile.h
>
> # FLASH makefile definitions for the 64 bit Intel icc/ifort compiler on Linux
> #
> # Fedora Core 3
> # Intel Linux Fortran 9.0
> # hdf5-1.6.6 (icc90)
> # mpich-1.2.7 (icc90)
>
> #----------------------------------------------------------------------------
> # Set the HDF/HDF5 library paths -- these need to be updated for your system
> #----------------------------------------------------------------------------
>
> #MPI_PATH   = /usr/local/mpich-intel
> MPI_PATH   = /home/cmiller/mpich2-install
> HDF4_PATH  = /astromake/opt/hdf4/4.2r1
> #HDF5_PATH  = /usr/local/hdf5-icc
> HDF5_PATH  = /astromake/opt/hdf5/1.6.6
>
> ZLIB_PATH  =
>
> PAPI_PATH  =
> PAPI_FLAGS =
>
> #NCMPI_PATH = /usr/local/pnetcdf-icc
> NCMPI_PATH =
> MPE_PATH   =
>
> TOTALVIEW_PATH = /usr/local/totalview/linux-x86-64
>
> #----------------------------------------------------------------------------
> # Compiler and linker commands
> #
> #  We use the f90 compiler as the linker, so some C libraries may explicitly
> #  need to be added into the link line.
> #----------------------------------------------------------------------------
>
> FCOMP   = ${MPI_PATH}/bin/mpif90
> CCOMP   = ${MPI_PATH}/bin/mpicc
> #CPPCOMP = ${MPI_PATH}/bin/mpiCC
> CPPCOMP = ${MPI_PATH}/bin/mpicc
> LINK    = ${MPI_PATH}/bin/mpif90
>
> # pre-processor flag
>
> PP     = -D
>
> #-----------------------------------------------------------------------------
> # Compilation flags
> #
> #  Three sets of compilation/linking flags are defined: one for optimized 
> code
> #  code ("-opt"), one for debugging ("-debug"), and one for testing 
> ("-test").
> #  Passing these flags to the setup script will cause the value associated 
> with
> #  the corresponding keys (i.e. those ending in "_OPT", "_DEBUG", or "_TEST") 
> to
> #  be incorporated into the final Makefile. For example, passing "-opt" to 
> the
> #  setup script will cause the flags following "FFLAGS_OPT" to be assigned to
> #  "FFLAGS" in the final Makefile. If none of these flags are passed, the 
> default
> #  behavior will match that of the "-opt" flag.
> #  In general, "-opt" is meant to optimize compilation and linking. "-debug"
> #  should enable runtime bounds checking, debugger symbols, and other 
> compiler-
> #  specific debugging options. "-test" is useful for testing different
> #  combinations of compiler flags particular to your individual system.
> #----------------------------------------------------------------------------
>
> FFLAGS_OPT   = -c -r8 -i4 -O3 -real_size 64# -unroll -align -prefetch -pad 
> -ip
> #FFLAGS_DEBUG = -c -g -r8 -i4 -check all -warn all -real_size 64
> FFLAGS_DEBUG = -c -g -r8 -i4 -check bounds -warn all -real_size 64
> FFLAGS_TEST  = -c -r8 -i4 -O2 -real_size 64
>
> CFLAGS_OPT   = -c -O3 -D_LARGEFILE64_SOURCE
> CFLAGS_DEBUG = -c -g -debug extended -D_LARGEFILE64_SOURCE
> CFLAGS_TEST  = -c -O2 -D_LARGEFILE64_SOURCE
>
> CFLAGS_HDF5  = -I $(HDF5_PATH)/include
> CFLAGS_NCMPI = -I $(NCMPI_PATH)/include
> CFLAGS_MPI   = -I$(MPI_PATH)/include
>
> #----------------------------------------------------------------------------
> # Linker flags
> #
> #  There is a seperate version of the linker flags for each of the _OPT,
> #  _DEBUG, and _TEST cases.
> #----------------------------------------------------------------------------
>
> LFLAGS_OPT   = -r8 -i4 -Vaxlib -lsvml -Ur -o
> LFLAGS_DEBUG = -r8 -i4 -Vaxlib -g -o
> LFLAGS_TEST  = -r8 -i4 -Vaxlib -o
>
> #----------------------------------------------------------------------------
> # Library specific linking
> #
> #  If a FLASH module has a 'LIBRARY xxx' line in its Config file, we need to
> #  create a macro in this Makefile.h for LIB_xxx, which will be added to the
> #  link line when FLASH is built.  This allows us to switch between different
> #  (incompatible) libraries.  We also create a _OPT, _DEBUG, and _TEST
> #  library macro to add any performance-minded libraries (like fast math),
> #  depending on how FLASH was setup.
> #----------------------------------------------------------------------------
> LIB_OPT     =
> LIB_DEBUG   = -L$(TOTALVIEW_PATH)/lib -ltvheap_64 
> -Wl,-rpath,$(TOTALVIEW_PATH)/lib
> LIB_TEST    =
>
> LIB_HDF4 = -L $(HDF4_PATH)/lib -lmfhdf -ldf -lz -ljpeg
> LIB_HDF5 = -L $(HDF5_PATH)/lib -lhdf5 -lz
> LIB_PNG  = -lpng
>
> LIB_MPI     = -L$(MPI_PATH)/lib -lfmpich -lmpich
> #LIB_NCMPI = -L$(NCMPI_PATH)/lib -lpnetcdf
> LIB_MPE   =
>
>
> #----------------------------------------------------------------------------
> # Additional machine-dependent object files
> #
> #  Add any machine specific files here -- they will be compiled and linked
> #  when FLASH is built.
> #----------------------------------------------------------------------------
>
> MACHOBJ =
>
> #----------------------------------------------------------------------------
> # Additional commands
> #----------------------------------------------------------------------------
>
> MV = mv -f
> AR = ar -r
> RM = rm -f
> CD = cd
> RL = ranlib
> ECHO = echo
>



More information about the flash-users mailing list