Re: [ROOT] problem with MacOSX

From: Damir Buskulic (buskulic@lapp.in2p3.fr)
Date: Fri Jun 06 2003 - 10:15:50 MEST


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
====================================



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