Linking error while building OpenSeesMP

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
bramesh
Posts: 20
Joined: Thu Sep 10, 2009 7:26 am
Location: Blacksburg, VA

Linking error while building OpenSeesMP

Post by bramesh »

I am trying to build OpenSeesMP for a PPC Linux cluster. I didnt have any issues while building OpenSeesSP. I used the same Makefile.def that I used for OpenSeesSP except I changed PROGRAMMING_MODE to PARALLEL_INTERPRETERS from PARALLEL. Then did a make wipe followed by make. Any help on this linking error is appreciated.

/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o: In function `domainChange(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x114a): undefined reference to `theDomain'
commands.cpp:(.text+0x114e): undefined reference to `theDomain'
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o: In function `OpenSees Exit(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x177a): undefined reference to `theDomain'
commands.cpp:(.text+0x177e): undefined reference to `theDomain'
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o: In function `getParamValue(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x2e7e): undefined reference to `theDomain'
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text+0x2e86): more undefined references to `theDomain' follow
bramesh
Posts: 20
Joined: Thu Sep 10, 2009 7:26 am
Location: Blacksburg, VA

Post by bramesh »

sorry forgot to paste the Makefile.def in the previous post.

Makefile.def:

############################################################################
#
# Program: OpenSees
#
# Purpose: A Top-level Makefile to create the libraries needed
# to use the OpenSees framework.
#
# version created for Redhat 8.0 LINUX distribution
#
# Written: fmk
# Created: 01/2003
#
#
############################################################################

# %---------------------------------%
# | SECTION 1: PROGRAM |
# %---------------------------------%
#
# Specify the location and name of the OpenSees interpreter program
# that will be created (if this all works

HOME = $(HOME)/ARC/OpenSees
OpenSees_PROGRAM = $(HOME)/bin/OpenSees
OpenSees_PROGRAM_MPI = $(HOME)/bin/OpenSeesMPI

# %---------------------------------%
# | SECTION 2: MAKEFILE CONSTANTS |
# %---------------------------------%
#
# Specify the constants the are used as control structure variables in the Makefiles.

OPERATING_SYSTEM = LINUX
PROGRAMMING_MODE = PARALLEL_INTERPRETERS
RELIABILITY = NO_RELIABILITY
GRAPHICS = NONE
DEBUG_MODE = NO_DEBUG


#PROGRAMMING_MODE = PARALLEL, SEQUENTIAL
#GRAPHICS = NONE, UsingOpenGL
#RELIABILITY = YES_RELIABILITY, NO_RELIABILITY
#DEBUG_MODE = DEBUG, NO_DEBUG


# %---------------------------------%
# | SECTION 3: PATHS |
# %---------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries or if you have
# any of the libraries already leave the directory location blank AND
# remove the directory from DIRS.
BASE =
# PUT YOUR HOME DIRECTOREY HERE
HOME = /home/bramesh/ARC/Ozgur_Atlayan
FE = $(HOME)/OpenSees/SRC
BLASdir = $(HOME)/OpenSees/OTHER/BLAS
CBLASdir = $(HOME)/OpenSees/OTHER/CBLAS
LAPACKdir = $(HOME)/OpenSees/OTHER/LAPACK
ARPACKdir = $(HOME)/OpenSees/OTHER/ARPACK
UMFPACKdir = $(HOME)/OpenSees/OTHER/UMFPACK
METISdir = $(HOME)/OpenSees/OTHER/METIS
SRCdir = $(HOME)/OpenSees/SRC
SUPERLUdir = $(HOME)/OpenSees/OTHER/SuperLU_3.0/SRC

SUPERLU_DISTdir = $(HOME)/OpenSees/OTHER/SuperLU_DIST_2.0/SRC

DIRS = $(BLASdir) \
$(CBLASdir) \
$(SUPERLUdir) \
$(LAPACKdir) \
$(ARPACKdir) \
$(UMFPACKdir) \
$(METISdir) \
$(SUPERLU_DISTdir) \
$(SRCdir)

# %-------------------------------------------------------%
# | SECTION 4: LIBRARIES |
# | |
# | The following section defines the libraries that will |
# | be created and/or linked with when the libraries are |# | being created or linked with. |
# %-------------------------------------------------------%
#
# Note: if vendor supplied BLAS and LAPACK libraries leave the
# libraries blank. You have to get your own copy of the tcl/tk
# library!!
#
# Note: For libraries that will be created (any in DIRS above)
# make sure the directory exsists where you want the library to go!

FE_LIBRARY = $(HOME)/lib/libOpenSees.a
NDARRAY_LIBRARY = $(HOME)/lib/libndarray.a # BJ_UCD jeremic@ucdavis.edu
MATMOD_LIBRARY = $(HOME)/lib/libmatmod.a # BJ_UCD jeremic@ucdavis.edu
BJMISC_LIBRARY = $(HOME)/lib/libBJmisc.a # BJ_UCD jeremic@ucdavis.edu
LAPACK_LIBRARY = $(HOME)/lib/libLapack.a
BLAS_LIBRARY = $(HOME)/lib/libBlas.a
SUPERLU_LIBRARY = $(HOME)/lib/libSuperLU.a
CBLAS_LIBRARY = $(HOME)/lib/libCBlas.a
ARPACK_LIBRARY = $(HOME)/lib/libArpack.a
UMFPACK_LIBRARY = $(HOME)/lib/libUmfpack.a
METIS_LIBRARY = $(HOME)/lib/libMetis.a
DISTRIBUTED_SUPERLU_LIBRARY = $(HOME)/lib/libDistributedSuperLU.a

TCL_LIBRARY = /usr/lib/libtk8.4.so /usr/lib/libtcl8.4.so

ifeq ($(RELIABILITY), YES_RELIABILITY)
RELIABILITY_LIBRARY = $(HOME)/lib/libReliability.a
else
RELIABILITY_LIBRARY =
endif

# WATCH OUT .. These libraries are removed when 'make wipe' is invoked.

WIPE_LIBS = $(FE_LIBRARY) \
$(NDARRAY_LIBRARY) \
$(MATMOD_LIBRARY) \
$(DISTRIBUTED_SUPERLU_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(ARPACK_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(METIS_LIBRARY) \
$(LAPACK_LIBRARY) \
$(BLAS_LIBRARY) \
$(CBLAS_LIBRARY) \
$(RELIABILITY_LIBRARY)

# %---------------------------------------------------------%
# | SECTION 5: COMPILERS |
# | |
# | The following macros specify compilers, linker/loaders, |
# | the archiver, and their options. You need to make sure |
# | these are correct for your system. |
# %---------------------------------------------------------%

# ###################################################
# # Compilers
# ###################################################

CC++ = /local/bin/g++
CC = /local/bin/gcc
FC = /local/bin/gfortran
FORTRAN = /local/bin/gfortran
F90 =
LINKER = /local/bin/mpicxx

AR = ar
ARFLAGS = cqls
ARCH = ar
ARCHFLAGS = cqls
RANLIB = ranlib
RANLIBFLAGS =

PROGRAMMING_FLAG =

ifeq ($(GRAPHICS), UsinOpenGl)
GRAPHIC_FLAG = -D_GLX
GRAPHIC_LIBRARY = -L/usr/X11/R6/lib -lGL -lGLU
else
GRAPHIC_FLAG = -D_NOGRAPHICS
GRAPHIC_LIBRARY =
endif

ifeq ($(RELIABILITY), YES_RELIABILITY)
RELIABILITY_FLAG = -D_RELIABILITY
else
RELIABILITY_FLAG =
endif

ifeq ($(DEBUG_MODE), DEBUG)
DEBUG_FLAG = -D_G3DEBUG
else
DEBUG_FLAG =
endif

ifeq ($(DEBUG_MODE), DEBUG)

C++FLAGS = -Wall -g -pg -D_LINUX -D_UNIX $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) -D_PARALLEL_PROCESSING -D_TCL84
CFLAGS = -Wall -g -pg $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG)
FFLAGS = -Wall
LINKFLAGS = -rdynamic -g -pg

else

C++FLAGS = -Wall -O2 -D_LINUX -D_UNIX -D_TCL84 -Wall $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(DEBUG_FLAG) $(PROGRAMMING_FLAG) -D_PARALLEL_PROCESSING -ffloat-store

CFLAGS = -Wall $(GRAPHIC_FLAG) $(RELIABILITY_FLAG) $(PROGRAMMING_FLAG)
FFLAGS = -Wall
LINKFLAGS = -rdynamic

endif

# Misc
MAKE = make
CD = cd
ECHO = echo
RM = rm
RMFLAGS = -f
SHELL = /bin/sh

# %---------------------------------------------------------%
# | SECTION 6: COMPILATION |
# | |
# | The following macros specify the macros used in |
# | to compile the source code into object code. |
# %---------------------------------------------------------%

.SUFFIXES:
.SUFFIXES: .C .c .f .f90 .cpp .o .cpp

#
# %------------------%
# | Default command. |
# %------------------%
#
.DEFAULT:
@$(ECHO) "Unknown target $@, try: make help"
#
# %-----------------------------------------------%
# | Command to build .o files from source files. |
# %-----------------------------------------------%
#

.cpp.o: @$(ECHO) Making $@ from $<
$(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@
.C.o:
@$(ECHO) Making $@ from $<
$(CC++) $(C++FLAGS) $(INCLUDES) -c $< -o $@

.c.o:
@$(ECHO) Making $@ from $< $(CC) $(CFLAGS) -c $<
.f.o:
@$(ECHO) Making $@ from $< $(FC) $(FFLAGS) -c $< -o $@

.f77.o:
@$(ECHO) Making $@ from $<
$(FC) $(FFLAGS) -c $< -o $@

.f90.o:
@$(ECHO) Making $@ from $<
$(FC90) $(FFLAGS) -c $< -o $@

# %---------------------------------------------------------%
# | SECTION 7: OTHER LIBRARIES |
# | |
# | The following macros specify other libraries that must |
# | be linked with when creating executables. These are |
# | platform specific and typically order does matter!! |
# %---------------------------------------------------------%
MACHINE_LINKLIBS = -L$(BASE)/lib \
-L$(HOME)/lib \




MACHINE_NUMERICAL_LIBS = -lm \
$(ARPACK_LIBRARY) \
$(DISTRIBUTED_SUPERLU_LIBRARY) \
$(SUPERLU_LIBRARY) \
$(UMFPACK_LIBRARY) \
$(LAPACK_LIBRARY) \
$(BLAS_LIBRARY) \
$(CBLAS_LIBRARY) \
$(GRAPHIC_LIBRARY)\
$(METIS_LIBRARY)\
$(RELIABILITY_LIBRARY)\
$(PETSC_LIB)\
-lgfortran -ldl
# -lg2c -ldl

MPICC = mpicc
MPIINC = -I/local/packages/openmpi-1.2.3-32/include
MPILIB = -L/local/packages/openmpi-1.2.3-32/lib -lmpi

PARALLEL_LIB = $(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSuperLU.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/DistributedSparseGenColLinSOE.o \
$(FE)/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o \
$(DISTRIBUTED_SUPERLU_LIBRARY)

#PETSC_INC = -I/scratch/fmckenna/petsc-2.2.1 \
# -I/scratch/fmckenna/petsc-2.2.1/bmake/linux-gnu \
# -I/scratch/fmckenna/petsc-2.2.1/include \
# -I/scratch/fmckenna/petsc-2.2.1/include/mpiuni \
# -DPETSC_USE_BOPT_g -DPETSC_USE_EXTERN_CXX


#PETSCINC = -I/scratch/fmckenna/OpenSees/SRC/system_of_eqn/linear/petsc/petsc-2.2.1 -I/scratch/fmckenna/OpenSees/SRC/system_of_eqn/linear/petsc/petsc-2.2.1/bmake/linux-gnu -I/scratch/fmckenna/OpenSees/SRC/system_of_eqn/linear/petsc/petsc-2.2.1/include \
# -I/scratch/fmckenna/petsc-2.2.1/include/mpiuni -DPETSC_USE_BOPT_g -DPETSC_USE_EXTERN_CXX


# $(FE)/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o \


#PETSC_LIB = $(FE)/system_of_eqn/linearSOE/petsc/PetscSOE.o \
# $(FE)/system_of_eqn/linearSOE/petsc/PetscSolver.o \
# $(FE)/system_of_eqn/linearSOE/petsc/PetscSparseSeqSolver.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dgebak.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dgebal.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dgeev.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dgehd2.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dgehrd.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dhseqr.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dlahrd.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dorg2r.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dorghr.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dorgqr.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dpotrf.o \
# $(HOME)/OpenSees/OTHER/LAPACK/dpotrs.o \
# /scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/libpetscsnes.a \
# /scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/libpetscksp.a \
# /scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/libpetscdm.a \
# /scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/libpetscmat.a \
# /scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/libpetscvec.a \
# /scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/libpetsc.a

# -L/scratch/fmckenna/petsc-2.2.1/lib/libg/linux-gnu/
# -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc
ifeq ($(PROGRAMMING_MODE), THREADS)
MACHINE_SPECIFIC_LIBS = -lpthread
else
#MACHINE_SPECIFIC_LIBS = -ldl -lieee -lm -lc -lg2c -Wl,-rpath,/usr/lib -lpng $(MPILIB)
MACHINE_SPECIFIC_LIBS = -ldl -lieee -lm -lc -lgfortran -Wl,-rpath,/local/lib -lpng $(MPILIB)
endif


# %---------------------------------------------------------%
# | SECTION 8: INCLUDE FILES |# | |# | The following macros specify include files needed for |# | compilation. |
# %---------------------------------------------------------%
MACHINE_INCLUDES = $(MPIINC) \
-I/usr/local/BerkeleyDB.4.0/include \
-I/usr/include/mysql \
-I$(HOME)/include \
-I$(UMFPACKdir) \
-I$(SUPERLUdir) \
-I$(SUPERLU_DISTdir) $(PETSCINC)


# this file contains all the OpenSees/SRC includes
include $(FE)/Makefile.incl

#TCL_INCLUDES = -I/home/fmk/tcl8.3.3/generic

INCLUDES = $(MACHINE_INCLUDES) $(TCL_INCLUDES) $(FE_INCLUDES)
bramesh
Posts: 20
Joined: Thu Sep 10, 2009 7:26 am
Location: Blacksburg, VA

Post by bramesh »

I tried building OpenSeesMP using TCL/TK 8.5.7 I still get the same error during linking.

/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o: In function `domainChange(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x114a): undefined reference to `theDomain'
commands.cpp:(.text+0x114e): undefined reference to `theDomain'
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o: In function `OpenSees Exit(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x177a): undefined reference to `theDomain'
commands.cpp:(.text+0x177e): undefined reference to `theDomain'
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o: In function `getParamValue(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x2e3e): undefined reference to `theDomain'
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text+0x2e46): more undefined references to `theDomain' follow
collect2: ld returned 1 exit status
make[1]: *** [tcl] Error 1
make[1]: Leaving directory `/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/modelbuilder/tcl'
make: *** [all] Error 2
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

sorry about the delay, i have been on holidays .. it has nothing to do with tcl .. can you tell me what version number has the file OpenSees/SRC/tcl/commnads.cpp have?
bramesh
Posts: 20
Joined: Thu Sep 10, 2009 7:26 am
Location: Blacksburg, VA

Post by bramesh »

The version for commands.cpp is 1.141, hope this helps in fixing the problem as building OpenSeesSP works fine, only OpenSeesMP doesnt work.

// $Revision: 1.141 $
// $Date: 2009/01/15 00:12:11 $
// $Source: /usr/local/cvs/OpenSees/SRC/tcl/commands.cpp,v $
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

i don't think the programming flag is getting set correctly in the c++ flags.

for the MP interpreter we need a -D_PARALLEL_INTERPRETERS in the c++ flags, for SP we need a -D_PARALLEL_PROCESSING

i would add something like this to the Makefile.def (and sorry about the Makefile.def as we never got autoconfig working)

[code]
OpenSees_PROGRAM = $(HOME)/bin/OpenSees
PROGRAMMING_FLAG =


ifeq ($(PROGRAMMING_MODE), PARALLEL)
OpenSees_PROGRAM = $(HOME)/bin/OpenSeesSP
PROGRAMMING_FLAG = -D_PARALLEL_PROCESSING
endif
ifeq ($(PROGRAMMING_MODE), PARALLEL_INTERPRETERS)
OpenSees_PROGRAM = $(HOME)/bin/OpenSeesMP
PROGRAMMING_FLAG = -D_PARALLEL_INTERPRETERS
endif

[/code]


ALSO in the current C++ flags take out the -D_PARALLEL_PROCESSING after the $(PROGRAMMING_FLAG)
bramesh
Posts: 20
Joined: Thu Sep 10, 2009 7:26 am
Location: Blacksburg, VA

Post by bramesh »

I modified the Makefile.def as instructed and then did a make wipe followed by make. Now I am getting new errors of multiple definitions, errors are as follows:

/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::getNumEqn() const':
SparseGenColLinSOE.cpp:(.text+0x0): multiple definition of `SparseGenColLinSOE::getNumEqn() const'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::zeroA()':
SparseGenColLinSOE.cpp:(.text+0x10): multiple definition of `SparseGenColLinSOE::zeroA()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x10): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::zeroB()':
SparseGenColLinSOE.cpp:(.text+0x50): multiple definition of `SparseGenColLinSOE::zeroB()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x50): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::setX(int, double)':
SparseGenColLinSOE.cpp:(.text+0x80): multiple definition of `SparseGenColLinSOE::setX(int, double)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x80): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::sendSelf(int, Channel&)':
SparseGenColLinSOE.cpp:(.text+0xc0): multiple definition of `SparseGenColLinSOE::sendSelf(int, Channel&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xc0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)':
SparseGenColLinSOE.cpp:(.text+0xd0): multiple definition of `SparseGenColLinSOE::recvSelf(int, Channel&, FEM_ObjectBroker&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xd0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::setSparseGenColSolver(SparseGenColLinSolver&)':
SparseGenColLinSOE.cpp:(.text+0xe0): multiple definition of `SparseGenColLinSOE::setSparseGenColSolver(SparseGenColLinSolver&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xe0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::normRHS()':
SparseGenColLinSOE.cpp:(.text+0x1b0): multiple definition of `SparseGenColLinSOE::normRHS()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x1b0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::getB()':
SparseGenColLinSOE.cpp:(.text+0x260): multiple definition of `SparseGenColLinSOE::getB()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x260): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::getX()':
SparseGenColLinSOE.cpp:(.text+0x2b0): multiple definition of `SparseGenColLinSOE::getX()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x2b0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::~SparseGenColLinSOE()':
SparseGenColLinSOE.cpp:(.text+0x300): multiple definition of `SparseGenColLinSOE::~SparseGenColLinSOE()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x300): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::~SparseGenColLinSOE()':
SparseGenColLinSOE.cpp:(.text+0x3f0): multiple definition of `SparseGenColLinSOE::~SparseGenColLinSOE()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x3f0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::~SparseGenColLinSOE()':
SparseGenColLinSOE.cpp:(.text+0x4d0): multiple definition of `SparseGenColLinSOE::~SparseGenColLinSOE()'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x4d0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::SparseGenColLinSOE(int, int, int*, int*, SparseGenColLinSolver&)':
SparseGenColLinSOE.cpp:(.text+0x5b0): multiple definition of `SparseGenColLinSOE::SparseGenColLinSOE(int, int, int*, int*, SparseGenColLinSolver&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x5b0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::SparseGenColLinSOE(int, int, int*, int*, SparseGenColLinSolver&)':
SparseGenColLinSOE.cpp:(.text+0x910): multiple definition of `SparseGenColLinSOE::SparseGenColLinSOE(int, int, int*, int*, SparseGenColLinSolver&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x910): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&, int)':
SparseGenColLinSOE.cpp:(.text+0xc70): multiple definition of `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&, int)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xc70): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&, int)':
SparseGenColLinSOE.cpp:(.text+0xcf0): multiple definition of `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&, int)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xcf0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&)':
SparseGenColLinSOE.cpp:(.text+0xd70): multiple definition of `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xd70): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&)':
SparseGenColLinSOE.cpp:(.text+0xe20): multiple definition of `SparseGenColLinSOE::SparseGenColLinSOE(SparseGenColLinSolver&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xe20): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::setSize(Graph&)':
SparseGenColLinSOE.cpp:(.text+0xed0): multiple definition of `SparseGenColLinSOE::setSize(Graph&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0xed0): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::setX(Vector const&)':
SparseGenColLinSOE.cpp:(.text+0x1510): multiple definition of `SparseGenColLinSOE::setX(Vector const&)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x1510): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::setB(Vector const&, double)':
SparseGenColLinSOE.cpp:(.text+0x1560): multiple definition of `SparseGenColLinSOE::setB(Vector const&, double)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x1560): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::addB(Vector const&, ID const&, double)':
SparseGenColLinSOE.cpp:(.text+0x1780): multiple definition of `SparseGenColLinSOE::addB(Vector const&, ID const&, double)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x1780): first defined here
/home/bramesh/ARC/Ozgur_Atlayan/OpenSees/SRC/system_of_eqn/linearSOE/sparseGEN/SparseGenColLinSOE.o: In function `SparseGenColLinSOE::addA(Matrix const&, ID const&, double)':
SparseGenColLinSOE.cpp:(.text+0x19c0): multiple definition of `SparseGenColLinSOE::addA(Matrix const&, ID const&, double)'
/home/bramesh/ARC/Ozgur_Atlayan/lib/libOpenSees.a(SparseGenColLinSOE.o):SparseGenColLinSOE.cpp:(.text+0x19c0): first defined here
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk »

take the SParseGenColLinSOE out of the PARALLEL_LIB in the Makefile.def .. some versions of gcc miss it in the main lib and some don't!
bramesh
Posts: 20
Joined: Thu Sep 10, 2009 7:26 am
Location: Blacksburg, VA

Post by bramesh »

This worked :), I have built version of OpenSeesMP.
Post Reply