Page 2 of 2

Re: OpenSeesSP Build error

Posted: Tue Jun 07, 2011 2:22 pm
by hjmangalam
Thank you, hsafti,

I see you used tcl/tk 8.5 - I was using 8.4 (but have access to 8.55). I'll try that. I went in and edited some include lines to point them to the include files (in the distribution!) and got further, but am now failing with what looks like an internal compiler error(!)
=====
commands.cpp:6712: warning: deprecated conversion from string constant to ‘char*’
commands.cpp: In function ‘int sectionForce(void*, Tcl_Interp*, int, const char**)’:
commands.cpp:6661: error: unable to find a register to spill in class ‘AREG’
commands.cpp:6661: error: this is the insn:
(insn 151 154 147 12 commands.cpp:6631 (parallel [
(set (reg:DI 2 cx [140])
(const_int 0 [0x0]))
(set (reg:DI 3 bx [138])
(plus:DI (ashift:DI (reg:DI 2 cx [140])
(const_int 3 [0x3]))
(reg:DI 3 bx [138])))
(set (mem/s/c:BLK (reg:DI 3 bx [138]) [0 a+8 S72 A64])
(const_int 0 [0x0]))
(use (reg:DI 6 bp [139]))
(use (reg:DI 2 cx [140]))
]) 858 {*rep_stosdi_rex64} (expr_list:REG_DEAD (reg:DI 6 bp [139])
(expr_list:REG_UNUSED (reg:DI 2 cx [140])
(expr_list:REG_UNUSED (reg:DI 3 bx [138])
(nil)))))
commands.cpp:6661: confused by earlier errors, bailing out
=====

Is there a recommended or required gcc/g++ version? I'm using 4.4 (CentOS 5.5)

I do have some Ubuntu machines on which I can try to compile, but this is getting ridiculous.. autoconf may be ugly, but it works.

Re: OpenSeesSP Build error

Posted: Wed Jun 08, 2011 1:17 am
by hsafti
Sorry .. can't really help you ... but a Cmake (or a similar) approach to produce make files for OpenSees would be extremely fruitful from my point of view as well ....

Re: OpenSeesSP Build error

Posted: Wed Jun 08, 2011 7:03 am
by hjmangalam
My apologies if you took this as a criticism of you - it certainly wasn't - it was just an puff of steam from an overheated sysadmin. This is not my area of expertise or interest so I have no particular interest in it - I'm just trying to help a user get the program compiled but it's looking like that's not going to happen. I've compiled thousands of src packages over the course of 25 years of geekhood and this one wins as being the most troublesome.

Again, thanks for the help you've given.

hjm

Re: OpenSeesSP Build error

Posted: Wed Jun 08, 2011 8:37 am
by hsafti
Not at all pal .... I wish for many geeks like you to help :) ... This is actually my first time to build ... so I have no clue whatsoever .... The OpenSees team seems to be more interested in Windows and Mac .... Although most workstations and Supercomputers run Linux .... I wish you take a look at this post and maybe you can help (had you the time):
http://opensees.berkeley.edu/community/ ... =7&t=30840

This is the most recent message I get now on an Ubuntu 10.10 64bit machine as I try to build OpenSeesSP .. (the libraries are built successfully):
The Makefile.def: https://docs.google.com/document/d/12Sz ... y=CKfmta8O


The Error message:

Building OpenSees Program ..
make[1]: Entering directory `/home/numubuntu/OpenSees/SRC/tcl'
make[1]: Nothing to be done for `tcl'.
make[1]: Leaving directory `/home/numubuntu/OpenSees/SRC/tcl'
make[1]: Entering directory `/home/numubuntu/OpenSees/SRC/modelbuilder/tcl'
Makefile:30: warning: overriding commands for target `tcl'
Makefile:13: warning: ignoring old commands for target `tcl'
Makefile:41: warning: overriding commands for target `tk'
Makefile:21: warning: ignoring old commands for target `tk'
make[2]: Entering directory `/home/numubuntu/OpenSees/SRC/tcl'
make[2]: Nothing to be done for `tk'.
make[2]: Leaving directory `/home/numubuntu/OpenSees/SRC/tcl'
/home/numubuntu/OpenSees/SRC/tcl/tkMain.o: In function `Tk_MainOpenSees(int, char**, int (*)(Tcl_Interp*), Tcl_Interp*)':
tkMain.cpp:(.text+0x468): undefined reference to `Tk_MainLoop'
tkMain.cpp:(.text+0x4f1): undefined reference to `TkpDisplayWarning'
tkMain.cpp:(.text+0x578): undefined reference to `TkpDisplayWarning'
/home/numubuntu/OpenSees/SRC/tcl/tkAppInit.o: In function `Tcl_AppInit':
tkAppInit.cpp:(.text+0x12): undefined reference to `Tk_Init'
tkAppInit.cpp:(.text+0x1c): undefined reference to `Tk_SafeInit'
tkAppInit.cpp:(.text+0x21): undefined reference to `Tk_Init'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getNP(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xc03): undefined reference to `theMachineBroker'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getPID(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xc43): undefined reference to `theMachineBroker'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `record(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x1465): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `domainChange(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x1485): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `OpenSeesExit(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x1912): undefined reference to `theDomain'
commands.cpp:(.text+0x193c): undefined reference to `theMachineBroker'
commands.cpp:(.text+0x1966): undefined reference to `theMachineBroker'
commands.cpp:(.text+0x1978): undefined reference to `theMachineBroker'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getParamValue(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x2e4c): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getParamTags(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x2f13): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getNodeTags(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x2fa3): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getEleTags(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x3033): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `addRegion(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x31b2): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text+0x35a7): more undefined references to `theDomain' follow
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `eigenAnalysis(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x67c2): undefined reference to `DistributedSuperLU::DistributedSuperLU(int, int)'
commands.cpp:(.text+0x67da): undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
commands.cpp:(.text+0x682c): undefined reference to `theDomain'
commands.cpp:(.text+0x6902): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `addDatabase(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x6f18): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `addAlgoRecorder(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x6f3e): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `addRecorder(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x6f62): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text+0x6fa6): more undefined references to `theDomain' follow
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `specifySOE(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xd937): undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE(SparseGenColLinSolver&)'
commands.cpp:(.text+0xdaaa): undefined reference to `DistributedSuperLU::DistributedSuperLU(int, int)'
commands.cpp:(.text+0xdd59): undefined reference to `theDomain'
commands.cpp:(.text+0xddb1): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `specifyAnalysis(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xdfe0): undefined reference to `theDomain'
commands.cpp:(.text+0xe011): undefined reference to `OPS_PARTITIONED'
commands.cpp:(.text+0xe025): undefined reference to `OPS_NUM_SUBDOMAINS'
commands.cpp:(.text+0xe031): undefined reference to `theDomain'
commands.cpp:(.text+0xe1e1): undefined reference to `theDomain'
commands.cpp:(.text+0xe212): undefined reference to `OPS_PARTITIONED'
commands.cpp:(.text+0xe321): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `printElement(void*, Tcl_Interp*, int, char const**, OPS_Stream&)':
commands.cpp:(.text+0xed71): undefined reference to `theDomain'
commands.cpp:(.text+0xedb1): undefined reference to `theDomain'
commands.cpp:(.text+0xee26): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `printNode(void*, Tcl_Interp*, int, char const**, OPS_Stream&)':
commands.cpp:(.text+0xf019): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text+0xf061): more undefined references to `theDomain' follow
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `partitionModel()':
commands.cpp:(.text+0xfd0f): undefined reference to `OPS_theChannels'
commands.cpp:(.text+0xfd20): undefined reference to `OPS_NUM_SUBDOMAINS'
commands.cpp:(.text+0xfd30): undefined reference to `OPS_NUM_SUBDOMAINS'
commands.cpp:(.text+0xfd37): undefined reference to `OPS_theChannels'
commands.cpp:(.text+0xfd52): undefined reference to `OPS_MAIN_DOMAIN_PARTITION_ID'
commands.cpp:(.text+0xfd65): undefined reference to `OPS_OBJECT_BROKER'
commands.cpp:(.text+0xfd6c): undefined reference to `OPS_MACHINE'
commands.cpp:(.text+0xfd85): undefined reference to `theDomain'
commands.cpp:(.text+0xfd98): undefined reference to `OPS_theChannels'
commands.cpp:(.text+0xfdb0): undefined reference to `OPS_NUM_SUBDOMAINS'
commands.cpp:(.text+0xfdb9): undefined reference to `OPS_DOMAIN_PARTITIONER'
commands.cpp:(.text+0xfdc7): undefined reference to `OPS_USING_MAIN_DOMAIN'
commands.cpp:(.text+0xfdcd): undefined reference to `OPS_MAIN_DOMAIN_PARTITION_ID'
commands.cpp:(.text+0xfdd2): undefined reference to `theDomain'
commands.cpp:(.text+0xfdd8): undefined reference to `OPS_NUM_SUBDOMAINS'
commands.cpp:(.text+0xfded): undefined reference to `theDomain'
commands.cpp:(.text+0xfdf3): undefined reference to `OPS_PARTITIONED'
commands.cpp:(.text+0xff32): undefined reference to `OPS_GRAPH_PARTITIONER'
commands.cpp:(.text+0xff3e): undefined reference to `OPS_GRAPH_PARTITIONER'
commands.cpp:(.text+0xff51): undefined reference to `theDomain'
commands.cpp:(.text+0xff58): undefined reference to `OPS_DOMAIN_PARTITIONER'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `analyzeModel(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xffcd): undefined reference to `OPS_PARTITIONED'
commands.cpp:(.text+0xffde): undefined reference to `OPS_NUM_SUBDOMAINS'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getLoadFactor(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x102bb): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getTime(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x10382): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `setTime(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x103d5): undefined reference to `theDomain'
commands.cpp:(.text+0x103e5): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `setLoadConst(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x1044b): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text+0x104b6): more undefined references to `theDomain' follow
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `wipeAnalysis(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x10582): undefined reference to `OPS_PARTITIONED'
commands.cpp:(.text+0x1058c): undefined reference to `OPS_NUM_SUBDOMAINS'
commands.cpp:(.text+0x10594): undefined reference to `theDomain'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `wipeModel(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0x106ac): undefined reference to `theDomain'
commands.cpp:(.text+0x106b7): undefined reference to `OPS_PARTITIONED'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Cartcomm::Sub(bool const*)':
commands.cpp:(.text._ZN3MPI8Cartcomm3SubEPKb[MPI::Cartcomm::Sub(bool const*)]+0x83): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Intracomm::Create_graph(int, int const*, int const*, bool) const':
commands.cpp:(.text._ZNK3MPI9Intracomm12Create_graphEiPKiS2_b[MPI::Intracomm::Create_graph(int, int const*, int const*, bool) const]+0x27): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Intracomm::Create(MPI::Group const&) const':
commands.cpp:(.text._ZNK3MPI9Intracomm6CreateERKNS_5GroupE[MPI::Intracomm::Create(MPI::Group const&) const]+0x27): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Op::Init(void (*)(void const*, void*, int, MPI::Datatype const&), bool)':
commands.cpp:(.text._ZN3MPI2Op4InitEPFvPKvPviRKNS_8DatatypeEEb[MPI::Op::Init(void (*)(void const*, void*, int, MPI::Datatype const&), bool)]+0x1f): undefined reference to `ompi_mpi_cxx_op_intercept'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Graphcomm::Clone() const':
commands.cpp:(.text._ZNK3MPI9Graphcomm5CloneEv[MPI::Graphcomm::Clone() const]+0x24): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Cartcomm::Clone() const':
commands.cpp:(.text._ZNK3MPI8Cartcomm5CloneEv[MPI::Cartcomm::Clone() const]+0x24): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Intracomm::Create_cart(int, int const*, bool const*, bool) const':
commands.cpp:(.text._ZNK3MPI9Intracomm11Create_cartEiPKiPKbb[MPI::Intracomm::Create_cart(int, int const*, bool const*, bool) const]+0x87): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Intercomm::Merge(bool)':
commands.cpp:(.text._ZN3MPI9Intercomm5MergeEb[MPI::Intercomm::Merge(bool)]+0x26): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `MPI::Intracomm::Clone() const':
commands.cpp:(.text._ZNK3MPI9Intracomm5CloneEv[MPI::Intracomm::Clone() const]+0x27): undefined reference to `MPI::Comm::Comm()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o:commands.cpp:(.text._ZNK3MPI9Intracomm5SplitEii[MPI::Intracomm::Split(int, int) const]+0x24): more undefined references to `MPI::Comm::Comm()' follow
/home/numubuntu/OpenSees/SRC/tcl/commands.o:(.rodata._ZTVN3MPI3WinE[vtable for MPI::Win]+0x48): undefined reference to `MPI::Win::Free()'
/home/numubuntu/OpenSees/SRC/tcl/commands.o:(.rodata._ZTVN3MPI8DatatypeE[vtable for MPI::Datatype]+0x78): undefined reference to `MPI::Datatype::Free()'
/home/numubuntu/OpenSees/SRC/modelbuilder/tcl/myCommands.o: In function `specifyModelBuilder(void*, Tcl_Interp*, int, char const**)':
myCommands.cpp:(.text+0x1fb): undefined reference to `theDomain'
myCommands.cpp:(.text+0x330): undefined reference to `theDomain'
myCommands.cpp:(.text+0x3b8): undefined reference to `theDomain'
/home/numubuntu/lib/libOpenSees.a(FEM_ObjectBrokerAllClasses.o): In function `FEM_ObjectBrokerAllClasses::getNewLinearSOE(int)':
FEM_ObjectBrokerAllClasses.cpp:(.text+0x771): undefined reference to `DistributedSparseGenColLinSOE::DistributedSparseGenColLinSOE()'
collect2: ld returned 1 exit status
make[1]: *** [tk] Error 1
make[1]: Leaving directory `/home/numubuntu/OpenSees/SRC/modelbuilder/tcl'
make: *** [tcl] Error 2

Re: OpenSeesSP Build error

Posted: Wed Jun 08, 2011 9:13 am
by hjmangalam
Hi there,

This part:
===
/home/numubuntu/OpenSees/SRC/tcl/tkMain.o: In function `Tk_MainOpenSees(int, char**, int (*)(Tcl_Interp*), Tcl_Interp*)':
tkMain.cpp:(.text+0x468): undefined reference to `Tk_MainLoop'
tkMain.cpp:(.text+0x4f1): undefined reference to `TkpDisplayWarning'
tkMain.cpp:(.text+0x578): undefined reference to `TkpDisplayWarning'
/home/numubuntu/OpenSees/SRC/tcl/tkAppInit.o: In function `Tcl_AppInit':
tkAppInit.cpp:(.text+0x12): undefined reference to `Tk_Init'
tkAppInit.cpp:(.text+0x1c): undefined reference to `Tk_SafeInit'
tkAppInit.cpp:(.text+0x21): undefined reference to `Tk_Init'
===
is probably due to a missing / misreferenced 'tk.h' The makefile is chock full of these problems. You may have to explicitly edit it into the dir-specific makefile or set your own environment variables (ie in Makefile.def, set "gcc = gcc -I/path/to/tk.h" or some similarly crude horror.

The following one:
===
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getNP(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xc03): undefined reference to `theMachineBroker'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `getPID(void*, Tcl_Interp*, int, char const**)':
commands.cpp:(.text+0xc43): undefined reference to `theMachineBroker'
/home/numubuntu/OpenSees/SRC/tcl/commands.o: In function `record(void*, Tcl_Interp*, int, char const**)':
===
is due to a misreferenced include file in the indicated dir: There are several refs to 'MachineBroker.h' which have not been set correctly, either due to overwriting CPPFLAGS or ignoring it or something - I wasn't willing to debug this. cd to /home/numubuntu/OpenSees/SRC/tcl and correct the followin entries to point to the right path:

(the line numbers aren't correct to the original src bc I added the corrected lines to my copy (and these are commented out). You can probably ignore the MPI_-prefixed includes unless you're trying to build the parallel version.
===
commands.cpp:345:// #include <MachineBroker.h>
commands.cpp:416:// #include <MachineBroker.h>
commands.cpp:428://#include <MachineBroker.h>
mpiMain.cpp:153:#include <MPI_MachineBroker.h>
mpiMainTest.cpp:34:#include <MPI_MachineBroker.h>
mpiParameterMain.cpp:154:#include <MPI_MachineBroker.h>
tclMain.cpp:87:#include <MachineBroker.h>
===
for example, the following lines are my corrected lines
===
commands.cpp:346:#include "/home/hmangala/build/OpenSees/SRC/actor/machineBroker/MachineBroker.h"
commands.cpp:417:#include "/home/hmangala/build/OpenSees/SRC/actor/machineBroker/MachineBroker.h"
commands.cpp:429:#include "/home/hmangala/build/OpenSees/SRC/actor/machineBroker/MachineBroker.h"
tclMain.cpp:88:#include "/home/hmangala/build/OpenSees/SRC/actor/machineBroker/MachineBroker.h"
===
This has to be done again and again and again ....

Re: OpenSeesSP Build error

Posted: Mon Jul 04, 2011 2:13 pm
by hsafti
I gave up on parallel build on Ubuntu ...

Re: OpenSeesSP Build error

Posted: Mon Jul 18, 2011 9:40 am
by fmk
that Makefile.def is in MAKES/Makefile.def.NEEShub

Re: OpenSeesSP Build error

Posted: Tue Jul 19, 2011 1:47 pm
by hsafti
Could not find it on the webSVN .../trunk/MAKES ???

Re: OpenSeesSP Build error

Posted: Fri Jul 22, 2011 8:57 am
by fmk
it is in OpenSees/MAKES

Re: OpenSeesSP Build error

Posted: Thu Aug 04, 2011 6:45 am
by profile0862
It is the parallel version that drives me insane .... I will post the Makefile.def as soon as I go back to work (not very soon though). Have a nice weekend!

Re: OpenSeesSP Build error

Posted: Thu Aug 04, 2011 6:37 pm
by Darcycpoes
Why don't you include the Petsc and the Mumps libraries in the Makefile.

Re: OpenSeesSP Build error

Posted: Tue Dec 11, 2012 4:00 am
by blackfloyd
I go with the user ‘hsafti’ here. Even I felt the requirement of such a file to do this. Thank you for the ‘makefile.def’ file. This saved a lot of my time. Thank you! I didn't have to go with creating it from the beginning!