[FLASH-USERS] Undefined symbol in FLASH 3.0beta

Cole Miller miller at astro.umd.edu
Mon Nov 5 16:13:20 EST 2007


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