Hi all,
I got a weird behaviour from a program that I used to run without any
problem. I recompiled brat and some private libraries after redhat 7.2 was
installed and things weird happened then: I could not get an object from
an event node by name like we always do. I ran through gdb and couldn't
understand why it failed to get the object (sorry, I haven't saved the gdb
messages).
Then I remembered having heard that redhat 7.2 has gcc 2.96, well known to
be buggy. So, I was crazy enough to clean everything, compiled my own root
with gcc3 and brat with gcc3 as well. I then recompiled my own lib and
things worked fine.
BUT, I should warn people who want to use gcc3 that this compiler is much
more strict. I got some problems with the mult modules and calibration
classes. The following sequence does not compile:
TString filename = "some file";
ifstream file(filename.Data(), ios::in);
if (!file) {
filename = "other file";
file.open(filename.Data());
if (!file)
return;
}
This sequence is the basic stuff of ReadASCIIfile (Br[Si,Tile]TmpCalibration)
The way I fixed it is:
ifstream* file = new ifstream(filename.Data(), ios::in);
if (!*file) {
filename = "other file";
file = new ifstream(filename.Data());
if (!*file)
return;
}
*file >> ... ;
if (file->fail())
...
Another thing: ios::noreplace crashed the compilation (in mult
calibration modules). I don't know why and I simply removed it.
Final problem: I had to cast arguments to Double_t in TMath::[Min,Max]
(still in mult modules).
That's all for now.
Djam
Djamel Ouerdane ------------------------------------------o
| Niels Bohr Institute | Home: |
| Blegdamsvej 17, DK-2100 Ø | Jagtvej 141 2D, |
| Fax: +45 35 32 50 16 | DK-2200 Copenhagen N |
| Tel: +45 35 32 52 69 | +45 35 86 19 74 |
| http://www.nbi.dk/~ouerdane |
| ouerdane@nbi.dk |
o---------------------------------------------------------o
This archive was generated by hypermail 2b30 : Tue Apr 09 2002 - 06:12:06 EDT