Re: [ROOT] compiling root with gcc3.3

From: Vincent Régnard (regnard@ganil.fr)
Date: Thu Mar 04 2004 - 14:16:03 MET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le Thursday 04 March 2004 00:19, Philippe Canal a écrit :
> Hi Vincent,
>
> Are you saying that the compiler gcc 3.3.3 is broken and should not be
> used?

This what I am pointing, maybe I am wron but the experience I had with it 
seems to drive me that way.

> If this is the case how is it broken?

I have my own root classe (TEvent and TCluster) that manage some physical 
events from my simulations
I have a TEvent class where I store some TCluster in a TClonesArray(fixed size 
allocated in each TEvent constructor)

Then I store the events in a usual TTree reading my events in many ASCII files
so first run I initialize the tree and put let say 1000 events in it
second run I append some more 1000 from another ASCII file
third run the same and so on.... 

*** compiling root 3.10.2 (tarball) and running my programs with gcc3.0.4
- ---->> No problem at all

*** same job with gcc3.3
- -> gcc --version
gcc (GCC) 3.3.3 20040214 (prerelease) (Debian)
Copyright (C) 2003 Free Software Foundation, Inc.

root compilation goes without any problem, I can even run some programs with 
it draw some stuff and even play with the tree viewer to plot some old trees 
built earlier.

But when I try to create some new trees with root gcc3.3compiled and my 
classes and also my programs gcc3.3 compiled I get the following behaviour. 

1) creating the tree runs ok
2) appending data a first time runs ok

3) appending again (in  the same conditions as in 2) ) fails and says:
 *** Break *** segmentation violation
 Generating stack trace...
 0x411844a8 in <unknown> from /lib/libc.so.6
 0x401709db in TClass::BuildRealData(void*) + 0x4ff 
from /usr/local/src/root/lib/libCore.so
 0x40186762 in TStreamerInfo::BuildOld() + 0x60 
from /usr/local/src/root/lib/libCore.so
 0x40173797 in TClass::GetStreamerInfo(int) + 0x197 
from /usr/local/src/root/lib/libCore.so
 0x40e0c970 in TBranchElement::GetInfo() + 0xb4 
from /usr/local/src/root/lib/libTree.so
 0x40e0da90 in TBranchElement::SetAddress(void*) + 0x86 
from /usr/local/src/root/lib/libTree.so
 0x40e2e250 in TTree::SetBranchAddress(char const*, void*) + 0xba 
from /usr/local/src/root/lib/libTree.so
 0x08049515 in main + 0x3f1 from /mnt/scratch/ganil/scripts/../bin/loadttree
 0x41170dc6 in __libc_start_main + 0xc6 from /lib/libc.so.6
 0x08049081 in TFile::TFile(char const*, char const*, char const*, int) + 0x31 
from /mnt/scratch/ganil/scripts/../bin/loadttree


If I try to visialize the tree data, I have only events corresponding to load 
1) and load 2)

> Did you try with ROOT 4.00/02?

No I didnot yet.

If this helps I can try to do it.

Hope this will be usefull

- -- 
  \|/	V Régnard 
 /  ~~	GPG and ID: http://vincentregnard.free.fr/html/persopages/pgp.html
 @--OO  Key fingerprint  F350 E39E 8C1B 4E8E D078  6D77 81D8 B38A E8F3 ED1E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFARywYgdiziujz7R4RAlNuAJwJJMlasg64CoAcnM02kM14iAeyzwCgjp/1
Y/flzwGlofx4xZ10F2RenVA=
=ylQK
-----END PGP SIGNATURE-----



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET