[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