Re: [ROOT] problem with MacOSX

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Mon Jun 09 2003 - 09:18:00 MEST


Hi Damir,

  we could modify "root-config --libs" to return something like:

... -lTree -u _G__cpp_setup_initializerG__Tree ...

adding a -u option for all libs. 

Let me know.

-- Fons


On Fri, 2003-06-06 at 10:15, Damir Buskulic wrote:
> Hi,
> 
> I had the same kind of errors while building our software. The solution 
> was to add an option to the compiler to tell it that a symbol was 
> undefined, forcing the immediate loading of the corresponding library, 
> and executing the static initializers in the rootcint generated code.
> For example, if you do an
> 
> nm $ROOTSYS/lib/libTree.dylib | more
> 
> you will notice a symbol _G__cpp_setup_initializerG__Tree (there should 
> always be a _G__cpp_setup_initializerXXXXX in a library with rootcinted 
> classes)
> try to add to your linker command line (I don't exactly remenber if 
> after or before the -lTree)
> 
> -u _G__cpp_setup_initializerG__Tree
> 
> This should help. This should be repeated for all libraries concerned, 
> i.e. the ones giving problems.
> 
> Let me know if it solves something
> 
> Cheers
> 
> Damir
> 
> Le vendredi, 6 juin 2003, à 01:21 Europe/Zurich, Jeffrey J. Early a 
> écrit :
> 
> > I'm having the exact same problem that Brian was having (read below) 
> > and I
> > wanted to find out if anyone managed to find a work around (Brian says 
> > that
> > he did not).
> >
> > I'm running Root 3.05/03 on MacOSX 10.2.6 with the latest developer 
> > tools
> > including gcc3 -- and the newest version of dlcompat.
> >
> > I created a simplified version of the problem (which works just fine 
> > when
> > run with the interpreter).
> >
> > http://darkwing.uoregon.edu/~jearly/HEP/
> >
> > The example program 'treesimple' compiles and runs just fine. It 
> > creates a
> > tree and writes it to a root file without a hitch. The example program
> > 'treeread' compiles just fine but then spits out the same error message
> > Brian was getting when reading the file.
> >
> > I tried Rene's suggestion but that didn't change anything -- same 
> > results.
> >
> > Any other ideas?
> >
> > Thanks for any help,
> > Jeffrey
> >
> >> Hi Brian,
> >>
> >> This looks like a dynamic loading problem on MacOS.
> >> To see if this is the case, add in your main program
> >>
> >> #include <TApplication.h>
> >>
> >>
> >> int main(int argc, char **argv)
> >> {
> >>  TApplication theApp("App", &argc, argv);
> >> .. your own code
> >> ..
> >> }
> >>
> >> Rene Brun
> >>
> >> On Fri, 14 Feb 2003,
> >> Brian Kurt Fujikawa wrote:
> >>
> >>> Hello
> >>>
> >>> I'm running root v3.04.02 (source installation) on MacOSX 10.2.3 (X 
> >>> Public
> >>> Beta 0.2). I am having trouble running a standalone program that 
> >>> loads
> >>> trees. Specifically, my program includes the lines:
> >>>
> >>> TFile* EventFile=
> >>> new TFile("/Users/bkf/emiT/data/Data1_20021209_15477.root");
> >>> TTree* CoincidenceEventTree=
> >>> (TTree*)EventFile->Get("Event/CoincidenceEventTree");
> >>> TBranch* CoincidenceEventBranch=
> >>> CoincidenceEventTree->GetBranch("CoincidenceEventBranch");
> >>>
> >>> and when I run it, I get the following error messages:
> >>>
> >>> Warning in <TClass::TClass>: no dictionary for class TTree is 
> >>> available
> >>> Warning in <TClass::TClass>: no dictionary for class TBranchElement 
> >>> is
> >>> available
> >>> Warning in <TClass::TClass>: no dictionary for class TBranch is 
> >>> available
> >>> Warning in <TClass::TClass>: no dictionary for class TLeafElement is
> >>> available
> >>> Warning in <TClass::TClass>: no dictionary for class TLeaf is 
> >>> available
> >>> Error in <TBuffer::CheckByteCount>: object of class TNamed read too 
> >>> few
> >>> bytes: 26 instead of 821615
> >>> Warning in <TBuffer::CheckByteCount>: TNamed::Streamer() not in sync 
> >>> with
> >>> data on file, fix Streamer()
> >>>
> >>>  *** Break *** bus error
> >>> Abort
> >>>
> >>>
> >>> This programs DOES run when I execute it as a script in root and it 
> >>> also
> >>> runs on a linux box.
> >>>
> >>> I am using the following commands to build this program ("myprog"):
> >>>
> >>> g++ -O -Wall -pipe -I/Users/bkf/include/DAT/ 
> >>> -I/Users/bkf/root/include -c
> >>> myprog.cc
> >>> g++ -O -Xlinker -bind_at_load -flat_namespace -o myprog myprog.o
> >>> -L/Users/bkf/lib/ -lDATEvent -L/Users/bkf/root/lib -lCore -lCint 
> >>> -lHist
> >>> -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics 
> >>> -lm
> >>> -ldl
> >>>
> >>> Any ideas?
> >>>
> >>> Best Regards
> >>>
> >>> Brian
> >
> >
> ====================================
> Damir Buskulic,  Universite de Savoie/LAPP
> Chemin de Bellevue, B.P. 110, F-74941 Annecy-le-Vieux Cedex, FRANCE
> Tel : +33 (0)450091600
> e-mail: buskulic@lapp.in2p3.fr
> ====================================
-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7679480



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET