Rootcint segv when creating dictionary

Hi,
I’m trying to build a dictionary of some classes I have defined. I’m working in the CMS framework and using scramv1, the following is he output of scram trying to compile the dictionary:

[quote][lxplus071] > scram b lib
Reading cached build data

/afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/Makefile:1579: warning: overriding commands for target src/InvHLinkDef_clean' /afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/Makefile:697: warning: ignoring old commands for target src/InvHLinkDef_clean’
/afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/Makefile:1583: warning: overriding commands for target src/InvHLinkDef_help' /afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/Makefile:701: warning: ignoring old commands for target src/InvHLinkDef_help’
/afs/cern.ch/cms/external/lcg/external/root/3.10.02/slc3_ia32_gcc323/root/bin/rootcint -f /afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/src/HiggsAnalysis/QqHinvisible/src/InvHLinkDef.cc -c -p -DGNU_SOURCE -DPROJECT_NAME=ORCA -DPROJECT_VERSION=ORCA_8_8_0 -DGNU_GCC -D_GNU_SOURCE -I/afs/cern.ch/cms/Releases/COBRA/COBRA_8_2_0/src/Porting/Linux24-gcc3/wrappers -I/afs/cern.ch/user/m/metson/ORCA_8_8_0/src -I/afs/cern.ch/cms/Releases/ORCA/ORCA_8_8_0/src -I/afs/cern.ch/cms/external/SCRAM-v1/SEAL/SEAL_1_4_3/src -I/afs/cern.ch/cms/external/SCRAM-v1/SEAL/SEAL_1_4_3/include -I/afs/cern.ch/cms/external/SCRAM-v1/SEAL/SEAL_1_4_3/slc3_ia32_gcc323/include -I/afs/cern.ch/cms/external/SCRAM-v1/POOL/POOL_1_8_1/src -I/afs/cern.ch/cms/external/SCRAM-v1/POOL/POOL_1_8_1/include -I/afs/cern.ch/cms/Releases/IGNOMINY/IGNOMINY_2_3_2/src -I/afs/cern.ch/cms/Releases/COBRA/COBRA_8_2_0/src -I/afs/cern.ch/cms/external/lcg/external/root/3.10.02/slc3_ia32_gcc323/root/include -I/afs/cern.ch/cms/external/lcg/external/root/3.10.02/slc3_ia32_gcc323/root/cint /afs/cern.ch/user/m/metson/ORCA_8_8_0/src/HiggsAnalysis/QqHinvisible/src/InvHLinkDef.h
gmake: *** [/afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/src/HiggsAnalysis/QqHinvisible/src/InvHLinkDef.cc] Segmentation fault
gmake: *** Deleting file `/afs/cern.ch/user/m/metson/ORCA_8_8_0/tmp/slc3_ia32_gcc323/src/HiggsAnalysis/QqHinvisible/src/InvHLinkDef.cc’
[/quote]

My naive InvLinkDef.h file is:

RecQuery is not a root file (doesn’t use the ClassDef and ClassImp macros) and neither is the vector but the other’s inherit from TObject (or TLorentzVector)

The headers can be found here:
cmsdoc.cern.ch/swdev/viewcvs/vie … sroot=ORCA
and RecQuery is here:
cmsdoc.cern.ch/swdev/viewcvs/vie … cvs-markup

I’m fairly sure that I need to append combinations of +/!/- onto some of the #pragma link C++ class lines, but don’t know which. Any suggestions?

Hi,

Usually it is better to list the input header files on the rootcint command line. They usually are need for the compilation of the dictionary will be included in the dictionary source file only if they are listed on the rootcint command line or in a #pragma extra_include statement.

Your current header file are very dangerously code. They contains explictly:

But you are using ROOT 3.10/02. This WILL lead to a corrupted build (in the best possible case, you’ll get a link error, in the worse case you’ll get a totally understandable core dump). It is highly recomment to never include full pathname in #include!

In the header file you pointed to, there is nothing obvious (beside the above mentioned issue!) that would lead to a core dumps.

Note that 3/10.02 is not quite all. You should try with 4.04/02.

If it still crashes with 4.04/02. Please provide us with a small tar file allowing to reproduce the problem.

Cheers,
Philippe.