[ROOT] Making ROOT 3.02/07

From: André David (Andre.David@cern.ch)
Date: Fri Apr 05 2002 - 12:09:25 MEST


Hi all,

I was trying to see if icc is really faster than gcc when producing
code, and what best than ROOT to check that?

So I got the ROOT source, expecting I'd had to hack through the
makefiles, when *grin* Makefile.linuxicc was there ready to use.

So, ./configure linuxicc, gmake and *shrug* I got to something I believe
is a cint problem:

Generating dictionary eg/src/G__EG.cxx...
utils/src/rootcint_tmp -f eg/src/G__EG.cxx -c eg/inc/TAttParticle.h
eg/inc/TDatabasePDG.h eg/inc/TDecayChannel.h eg/inc/TGenerator.h
eg/inc/TParticle.h eg/inc/TParticleClassPDG.h eg/inc/TParticlePDG.h
eg/inc/TPrimary.h eg/inc/LinkDef.h
Error: class,struct,union or type TRotation: not defined 
FILE:include/TRotation.h LINE:144
Error: class,struct,union or type TRotation: not defined 
FILE:include/TRotation.h LINE:144
Error: class,struct,union or type [] not defined 
FILE:include/TRotation.h LINE:144
Note: File "eg/inc/TParticleClassPDG.h" already loaded
Note: File "eg/inc/TParticlePDG.h" already loaded
Warning: Error occured during reading source files
Warning: Error occured during dictionary source generation
!!!Removing eg/src/G__EG.cxx eg/src/G__EG.h !!!
utils/src/rootcint_tmp: error loading headers...
gmake: *** [eg/src/G__EG.cxx] Error 1

Just, before checking inside include/TRotation.h lets see what gcc does.
So, to be sure the directory is clean, I removed the root directory,
untarred the thing again (call me paranoid) and ./configure linux,
gmake. This goes without a hitch. So this got me wondering...

FILE:include/TRotation.h LINE:144 reads:

TRotation::TRotationRow TRotation::operator [] (int i) const {

So, I changed it to read

(TRotation::TRotationRow) (TRotation::operator [] (int i)) const {

and gmake again. The error does not go away. It becomes simply:

Error: class,struct,union or type TRotation: not defined 
FILE:include/TRotation.h LINE:145
Warning: Unknown type TRotation::TRotationRow in function argument
FILE:include/TRotation.h LINE:145

Now this I do not understand. TRotation::TRotationRow is defined as a
public nested class of TRotation. I just do not understand how gcc goes
about this "problem", since the complaining party is
utils/src/rootcint_tmp. Could it be a problem on the compilation of
utils/src/rootcint_tmp? I have tried to get rootcint compiled with
gcc/g++ but then I get linkage problems (known to icc).

Can anyone comment on this problem, or in general: Has anyone got ROOT
to compile with icc?

Thanks,

Andre




This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:48 MET