Those symbols are supposed to be in lib/libCore.so, coming from cont/src/G__Cont.o … Can you check (using nm)? Also check that
cont/src/G__Cont.cxx is a complete file.
I encounter the same problem with root 5.16.00 under SuSE Linux gcc version 3.3.4.
++ -m32 -O2 -o bin/root.exe main/src/rmain.o
-Llib -lCore -lCint -lRint -lm -ldl -pthread -rdynamic
lib/libCore.so: undefined reference to TCollectionStreamer::TCollectionStreamer[not-in-charge](TCollectionStreamer const&)' lib/libCore.so: undefined reference totypeinfo for TCollectionStreamer’
lib/libCore.so: undefined reference to TCollectionStreamer::~TCollectionStreamer [not-in-charge]()' lib/libCore.so: undefined reference toTCollectionStreamer::Streamer(TBuffer&, void*, int)'
collect2: ld returned 1 exit status
Did you solve your problem?
I did nm on my lib* for root5.15.07 (which compiles fine) and 5.16.00. which does not work:
5.15.07:
pikp76:/usr/local/root/5.15.07 # nm --print-file-name lib/*.so | grep TCollectionStreamer
lib/libRIO.so:0011f558 D G__G__IOLN_TCollectionStreamer
lib/libRIO.so:000d6c3e t _Z34G__setup_memvarTCollectionStreamerv
lib/libRIO.so:000e22f8 t _Z35G__setup_memfuncTCollectionStreamerv
lib/libRIO.so:0011ff68 b _ZGVZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE8instance
lib/libRIO.so:0011ff60 b _ZGVZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE9isa_proxy
lib/libRIO.so:00030ae6 T _ZN19TCollectionStreamer13AdoptStreamerEP19TGenCollectionProxy
lib/libRIO.so:00030862 T _ZN19TCollectionStreamer17InvalidProxyErrorEv
lib/libRIO.so:00030b12 T _ZN19TCollectionStreamer8StreamerER7TBufferPvi
lib/libRIO.so:0003097e T ZN19TCollectionStreamerC1ERKS
lib/libRIO.so:000308b6 T _ZN19TCollectionStreamerC1Ev
lib/libRIO.so:000308dc T ZN19TCollectionStreamerC2ERKS
lib/libRIO.so:00030890 T _ZN19TCollectionStreamerC2Ev
lib/libRIO.so:00030a9c T _ZN19TCollectionStreamerD0Ev
lib/libRIO.so:00030a5e T _ZN19TCollectionStreamerD1Ev
lib/libRIO.so:00030a20 T _ZN19TCollectionStreamerD2Ev
lib/libRIO.so:0009fd5c T _ZN4ROOT20GenerateInitInstanceEPK19TCollectionStreamer
lib/libRIO.so:000a81c8 t _ZN4ROOT23new_TCollectionStreamerEPv
lib/libRIO.so:0009fbcc t _ZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamer
lib/libRIO.so:000a8508 t _ZN4ROOT26delete_TCollectionStreamerEPv
lib/libRIO.so:000a8592 t _ZN4ROOT28destruct_TCollectionStreamerEPv
lib/libRIO.so:000a82c0 t _ZN4ROOT28newArray_TCollectionStreamerElPv
lib/libRIO.so:0009fd72 t _ZN4ROOT30TCollectionStreamer_DictionaryEv
lib/libRIO.so:000a852c t _ZN4ROOT31deleteArray_TCollectionStreamerEPv
lib/libRIO.so:0011dd88 V _ZTI19TCollectionStreamer
lib/libRIO.so:000ed4e4 V _ZTS19TCollectionStreamer
lib/libRIO.so:0011dcd0 V _ZTV19TCollectionStreamer
lib/libRIO.so:0011ff80 b _ZZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE8instance
lib/libRIO.so:0011ff70 b _ZZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE9isa_proxy
root 5.16.00
pikp76:/usr/local/root/5.16.00 # nm --print-file-name lib/*.so | grep TCollectionStreamer
lib/libCore.so: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
lib/libCore.so: U ZN19TCollectionStreamerC2ERKS
lib/libCore.so: U _ZN19TCollectionStreamerD2Ev
lib/libCore.so: U _ZTI19TCollectionStreamer
lib/libRIO.so:0010dd5c D G__G__IOLN_TCollectionStreamer
lib/libRIO.so:000c9a2e t _Z34G__setup_memvarTCollectionStreamerv
lib/libRIO.so:000d4bda t _Z35G__setup_memfuncTCollectionStreamerv
lib/libRIO.so:0010e728 b _ZGVZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE8instance
lib/libRIO.so:0010e720 b _ZGVZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE9isa_proxy
lib/libRIO.so:0002eb60 T _ZN19TCollectionStreamer13AdoptStreamerEP19TGenCollectionProxy
lib/libRIO.so:0002ecd0 T _ZN19TCollectionStreamer17InvalidProxyErrorEv
lib/libRIO.so:0002ed00 T _ZN19TCollectionStreamer8StreamerER7TBufferPvi
lib/libRIO.so:0002ed80 T ZN19TCollectionStreamerC1ERKS
lib/libRIO.so:0002eb30 T _ZN19TCollectionStreamerC1Ev
lib/libRIO.so:0002ee40 T ZN19TCollectionStreamerC2ERKS
lib/libRIO.so:0002eb00 T _ZN19TCollectionStreamerC2Ev
lib/libRIO.so:0002ebd0 T _ZN19TCollectionStreamerD0Ev
lib/libRIO.so:0002ec30 T _ZN19TCollectionStreamerD1Ev
lib/libRIO.so:0002ec80 T _ZN19TCollectionStreamerD2Ev
lib/libRIO.so:000a4c40 T _ZN4ROOT20GenerateInitInstanceEPK19TCollectionStreamer
lib/libRIO.so:000ad0ac t _ZN4ROOT23new_TCollectionStreamerEPv
lib/libRIO.so:000a4ab0 t _ZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamer
lib/libRIO.so:000ad3ec t _ZN4ROOT26delete_TCollectionStreamerEPv
lib/libRIO.so:000ad476 t _ZN4ROOT28destruct_TCollectionStreamerEPv
lib/libRIO.so:000ad1a4 t _ZN4ROOT28newArray_TCollectionStreamerElPv
lib/libRIO.so:000a4c56 t _ZN4ROOT30TCollectionStreamer_DictionaryEv
lib/libRIO.so:000ad410 t _ZN4ROOT31deleteArray_TCollectionStreamerEPv
lib/libRIO.so:0010c428 V _ZTI19TCollectionStreamer
lib/libRIO.so:000dfab8 V _ZTS19TCollectionStreamer
lib/libRIO.so:0010c418 V _ZTV19TCollectionStreamer
lib/libRIO.so:0010e740 b _ZZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE8instance
lib/libRIO.so:0010e730 b _ZZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE9isa_proxy
lib/libTree.so: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
lib/libTree.so: U ZN19TCollectionStreamerC2ERKS
lib/libTree.so: U _ZN19TCollectionStreamerD2Ev
lib/libTree.so: U _ZTI19TCollectionStreamer
io/src/G__IO.o:00000120 D G__G__IOLN_TCollectionStreamer
io/src/G__IO.o:00025c7a t _Z34G__setup_memvarTCollectionStreamerv
io/src/G__IO.o:00030e26 t _Z35G__setup_memfuncTCollectionStreamerv
io/src/G__IO.o:00000448 b _ZGVZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE8instance
io/src/G__IO.o:00000440 b _ZGVZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE9isa_proxy
io/src/G__IO.o: U _ZN19TCollectionStreamer13AdoptStreamerEP19TGenCollectionProxy
io/src/G__IO.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/G__IO.o: U ZN19TCollectionStreamerC1ERKS
io/src/G__IO.o: U _ZN19TCollectionStreamerC1Ev
io/src/G__IO.o: U ZN19TCollectionStreamerC2ERKS
io/src/G__IO.o: U _ZN19TCollectionStreamerC2Ev
io/src/G__IO.o: U _ZN19TCollectionStreamerD2Ev
io/src/G__IO.o:00000e8c T _ZN4ROOT20GenerateInitInstanceEPK19TCollectionStreamer
io/src/G__IO.o:000092f8 t _ZN4ROOT23new_TCollectionStreamerEPv
io/src/G__IO.o:00000cfc t _ZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamer
io/src/G__IO.o:00009638 t _ZN4ROOT26delete_TCollectionStreamerEPv
io/src/G__IO.o:000096c2 t _ZN4ROOT28destruct_TCollectionStreamerEPv
io/src/G__IO.o:000093f0 t _ZN4ROOT28newArray_TCollectionStreamerElPv
io/src/G__IO.o:00000ea2 t _ZN4ROOT30TCollectionStreamer_DictionaryEv
io/src/G__IO.o:0000965c t _ZN4ROOT31deleteArray_TCollectionStreamerEPv
io/src/G__IO.o: U _ZTI19TCollectionStreamer
io/src/G__IO.o:00000460 b _ZZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE8instance
io/src/G__IO.o:00000450 b _ZZN4ROOT25GenerateInitInstanceLocalEPK19TCollectionStreamerE9isa_proxy
io/src/TCollectionProxyFactory.o:00000060 T _ZN19TCollectionStreamer13AdoptStreamerEP19TGenCollectionProxy
io/src/TCollectionProxyFactory.o:000001d0 T _ZN19TCollectionStreamer17InvalidProxyErrorEv
io/src/TCollectionProxyFactory.o:00000200 T _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/TCollectionProxyFactory.o:00000280 T ZN19TCollectionStreamerC1ERKS
io/src/TCollectionProxyFactory.o:00000030 T _ZN19TCollectionStreamerC1Ev
io/src/TCollectionProxyFactory.o:00000340 T ZN19TCollectionStreamerC2ERKS
io/src/TCollectionProxyFactory.o:00000000 T _ZN19TCollectionStreamerC2Ev
io/src/TCollectionProxyFactory.o:000000d0 T _ZN19TCollectionStreamerD0Ev
io/src/TCollectionProxyFactory.o:00000130 T _ZN19TCollectionStreamerD1Ev
io/src/TCollectionProxyFactory.o:00000180 T _ZN19TCollectionStreamerD2Ev
io/src/TCollectionProxyFactory.o:00000000 V _ZTI19TCollectionStreamer
io/src/TCollectionProxyFactory.o:00000000 V _ZTS19TCollectionStreamer
io/src/TCollectionProxyFactory.o:00000000 V _ZTV19TCollectionStreamer
io/src/TEmulatedCollectionProxy.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/TEmulatedCollectionProxy.o: U ZN19TCollectionStreamerC2ERKS
io/src/TEmulatedCollectionProxy.o: U _ZN19TCollectionStreamerD2Ev
io/src/TEmulatedCollectionProxy.o: U _ZTI19TCollectionStreamer
io/src/TEmulatedMapProxy.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/TEmulatedMapProxy.o: U ZN19TCollectionStreamerC2ERKS
io/src/TEmulatedMapProxy.o: U _ZN19TCollectionStreamerD2Ev
io/src/TEmulatedMapProxy.o: U _ZTI19TCollectionStreamer
io/src/TGenCollectionProxy.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/TGenCollectionProxy.o: U ZN19TCollectionStreamerC2ERKS
io/src/TGenCollectionProxy.o: U _ZN19TCollectionStreamerD2Ev
io/src/TGenCollectionProxy.o: U _ZTI19TCollectionStreamer
io/src/TGenCollectionStreamer.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/TGenCollectionStreamer.o: U ZN19TCollectionStreamerC2ERKS
io/src/TGenCollectionStreamer.o: U _ZN19TCollectionStreamerD2Ev
io/src/TGenCollectionStreamer.o: U _ZTI19TCollectionStreamer
io/src/TStreamerInfo.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
io/src/TStreamerInfo.o: U ZN19TCollectionStreamerC2ERKS
io/src/TStreamerInfo.o: U _ZN19TCollectionStreamerD2Ev
io/src/TStreamerInfo.o: U _ZTI19TCollectionStreamer
meta/src/TClass.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
meta/src/TClass.o: U ZN19TCollectionStreamerC2ERKS
meta/src/TClass.o: U _ZN19TCollectionStreamerD2Ev
meta/src/TClass.o: U _ZTI19TCollectionStreamer
tree/src/ManualTree2.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
tree/src/ManualTree2.o: U ZN19TCollectionStreamerC2ERKS
tree/src/ManualTree2.o: U _ZN19TCollectionStreamerD2Ev
tree/src/ManualTree2.o: U _ZTI19TCollectionStreamer
tree/src/TTree.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi
tree/src/TTree.o: U ZN19TCollectionStreamerC2ERKS
tree/src/TTree.o: U _ZN19TCollectionStreamerD2Ev
tree/src/TTree.o: U _ZTI19TCollectionStreamer
I circumvented the problem by adding -lRIO
in the Makefile to BOOTLIBS
BOOTLIBS := -lCore -lCint -lRIO but that is not really clean …
[quote]meta/src/TClass.o: U _ZN19TCollectionStreamer8StreamerER7TBufferPvi [/quote]Very odd!.
Can you try to delete this file, rebuild and retry the nm?
If the result is the same can you send the result of using the -E option (aka take the command line that creates TClass.o, replace the part -o meta/src/TClass.o with -E -o meta/src/TClass.E) and send me the result (the file TClass.E).
This problem has been solved in the head of the CVS repository (by removing the now unnecessary (and usually (except in your case) harmless) #include “TGenCollectionProxy.h” from TClass.cxx