[ROOT] rootcint problem

From: Andre Holzner (Andre.Holzner@cern.ch)
Date: Fri May 04 2001 - 15:32:43 MEST


Hi,

maybe this is a trivial problem (and has been treated already):

I just build root from CVS yesterday on an rh61/i386
system (Version 3.01/00 / 4 May 2001) doing

  configure linuxegcs
  make ; make install ; make cintdlls

(where ROOTSYS was set to the root source directory, i.e.
 make install said that there is nothing to install).

the stl dlls are then in $ROOTSYS/cint/stl/

Now I try to generate a dictionary from Test.C:
   #include <set>
   #include <pair>
 
   class Test
   {
   public:
     set<int,pair<int,int> > foo();
   };

with the command:

   rootcint -f  Test_dict.C -c  Test.C

however, it seems that there is some infinite recursion. Running
rootcint in gdb I get what looks like a stack overflow:

Program received signal SIGSEGV, Segmentation fault.
0x4036d913 in __builtin_new () from /tmp/ah/root/cint/stl/multiset.dll
(gdb) bt
#0  0x4036d913 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#1  0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#2  0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#3  0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#4  0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#5  0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#6  0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#7  0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#8  0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#9  0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#10 0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#11 0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#12 0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#13 0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#14 0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#15 0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#16 0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#17 0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
#18 0x4036d932 in __builtin_new () from
/tmp/ah/root/cint/stl/multiset.dll
#19 0x402281dc in __builtin_vec_new (sz=5) from
/usr/lib/libstdc++-libc6.1-1.so.2
...

(in fact on other machines, rootcint easily starts eating up >=100 MB
RAM, I tracked
it down to a new [...] statement in StrDup, however, the size was
something like 16 characters
to be allocated. It's probably just the first call to new...)

Moving the dlls out of $ROOTSYS/cint/stl/ seems to cure this problem,
i.e. I guess that rootcint tries to load the dlls for generating the
dictionary 
of Test.C ?

What is the recommended way of building and installing the stl dlls for
cint/root ?


best regards & thanks,

André

-- 
------------------+----------------------------------
Andre Holzner     | +41 22 76 76750 
Bureau 32 2-C13   | Building 32     
CERN              | Office 2-C13    
CH-1211 Geneve 23 | http://wwweth.cern.ch/~holzner/



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET