Make of installation of v5.18.08 fails

Hello,

i am trying to compile the current version of root as provided in root_v5.15.08.source.tar.gz using suse linux 9.2 and gcc/g++ version 3.3.4

ROOTSYS is set to the root installation directory

./configure linux

seems to work fine and the Makefile is generated

gmake

also starts and after compilation stops at linking root.exe with the following message

g++ -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
make: *** [bin/root.exe] Fehler 1

Until now i could not figure out any typo in the paths and could use a little hint on what to try next.

Thanks in advance

Christian

Sorry for the typo in the topic it should read 5.15.08.

Compilation of Version 5.14/00f 29 May 2007
works fine.

Christian

HI,

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.

Cheers,
Philippe

Hi,

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

Hmm so undefined in libCore and libTree.

Any help is appreciated.

Best Regards

Christian

Strange :slight_smile:

What is the result of:nm --print-file-name */src/*.so | grep TCollectionStreamer

[Aka I suspect that there is a left over .o files that was not removed even though its source file was move to a different directory]

Cheers,
Philippe

nm --print-file-name /src/.o | grep TCollectionStreamer
yields:

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 …

Cheers

Christian

[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).

Cheers,
Philippe

Hi Phillippe,

No change when I delete and build it again, I attached the TClass.E file.

Thanks a lot for your efforts

Christian
TClass.E.txt (1.27 MB)

Hi,

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

Cheers,
Philippe

Great, Thanks a lot

Christian