Note that we support egcs1.1 in the binary distribution.
Rene Brun
Christian Nally wrote:
>
> Hi ROOTers,
>
> I recently compiled egcs1.1.1 on my (Slackware) Linux box and my root
> won't execute because of errors on loading shared libraries.
>
> > pwd
> /home/root/root_v2.21/root/bin
> > ls
> cint* h2root* root* rootcint*
> g2root* makedepend@ root.exe* rootd*
> > root
> /home/root/rootsys/root/bin/root.exe: error in loading shared libraries
> /home/root/rootsys/root/lib/libUnix.so: undefined symbol:
> __vt_18TOrdCollectionIter
>
> now, ldd reports the following...
>
> > ldd root
> libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4000b000)
> libstdc++.so.2.9 => /usr/local/lib/libstdc++.so.2.9 (0x4009d000)
> libm.so.5 => /lib/libm.so.5 (0x400e0000)
> libc.so.5 => /lib/libc.so.5 (0x400e9000)
> > ldd root.exe
> libNew.so => /home/root/rootsys/root/lib/libNew.so (0x4000c000)
> libBase.so => /home/root/rootsys/root/lib/libBase.so (0x4000f000)
> libCint.so => /home/root/rootsys/root/lib/libCint.so (0x4011b000)
> libClib.so => /home/root/rootsys/root/lib/libClib.so (0x402f0000)
> libCont.so => /home/root/rootsys/root/lib/libCont.so (0x402fb000)
> libFunc.so => /home/root/rootsys/root/lib/libFunc.so (0x40358000)
> libGraf.so => /home/root/rootsys/root/lib/libGraf.so (0x40383000)
> libGraf3d.so => /home/root/rootsys/root/lib/libGraf3d.so (0x404fe000)
> libHist.so => /home/root/rootsys/root/lib/libHist.so (0x4058a000)
> libHtml.so => /home/root/rootsys/root/lib/libHtml.so (0x40629000)
> libMatrix.so => /home/root/rootsys/root/lib/libMatrix.so (0x40640000)
> libMeta.so => /home/root/rootsys/root/lib/libMeta.so (0x40663000)
> libMinuit.so => /home/root/rootsys/root/lib/libMinuit.so (0x406a1000)
> libNet.so => /home/root/rootsys/root/lib/libNet.so (0x406fc000)
> libPostscript.so => /home/root/rootsys/root/lib/libPostscript.so (0x40722000)
> libProof.so => /home/root/rootsys/root/lib/libProof.so (0x4073e000)
> libRint.so => /home/root/rootsys/root/lib/libRint.so (0x4075b000)
> libTree.so => /home/root/rootsys/root/lib/libTree.so (0x40765000)
> libUnix.so => /home/root/rootsys/root/lib/libUnix.so (0x407f1000)
> libZip.so => /home/root/rootsys/root/lib/libZip.so (0x40804000)
> libGpad.so => /home/root/rootsys/root/lib/libGpad.so (0x40860000)
> libGui.so => /home/root/rootsys/root/lib/libGui.so (0x40909000)
> libGX11.so => /home/root/rootsys/root/lib/libGX11.so (0x40a54000)
> libX3d.so => /home/root/rootsys/root/lib/libX3d.so (0x40a98000)
> libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40ab1000)
> libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40ac0000)
> libdl.so.2 => /lib/libdl.so.2 (0x40b52000)
> libstdc++.so.2.9 => /usr/local/lib//libstdc++.so.2.9 (0x40b55000)
> libm.so.6 => /lib/libm.so.6 (0x40b98000)
> libc.so.6 => /lib/libc.so.6 (0x40bb1000)
> libm.so.5 => /lib/libm.so.5 (0x40c56000)
> /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>
> and interestingly there is an object in libCont.so DARN close to being the
> one that it needs.
>
> Can anyone help me by saying why there is a "." instead of an "_" in the
> library? Look at the last line below and compare it to the error I got
> upon execution.
>
> > nm $ROOTSYS/lib/libCont.so | grep 18TOrdCollectionIter
> 0001d31c T Class_Version__18TOrdCollectionIter
> 0001d004 T Class__18TOrdCollectionIter
> 0001d328 T DeclFileLine__18TOrdCollectionIter
> 0001d33c T DeclFileName__18TOrdCollectionIter
> 0001cf98 T Dictionary__18TOrdCollectionIter
> 0001d35c T GetCollection__C18TOrdCollectionIter
> 0001d05c T ImplFileLine__18TOrdCollectionIter
> 0001d03c T ImplFileName__18TOrdCollectionIter
> 0001d2f4 T IsA__C18TOrdCollectionIter
> 0001d0c8 T Next__18TOrdCollectionIter
> 0001d1a4 T Reset__18TOrdCollectionIter
> 00051d14 T ShowMembers__18TOrdCollectionIterR16TMemberInspectorPc
> 00051ce4 T Streamer__18TOrdCollectionIterR7TBuffer
> 0001d374 T _._18TOrdCollectionIter
> 0005a084 D _18TOrdCollectionIter.fgIsA
> 0001d3b0 T __18TOrdCollectionIter
> 0001d070 T __18TOrdCollectionIterPC14TOrdCollectionUc
> 00051ca0 T __rs__FR7TBufferRP18TOrdCollectionIter
> 0005a0a0 D _vt.18TOrdCollectionIter
>
> when I try to make the tests I get...
>
> root@bcterm:6 >pwd
> /home/root/root_v2.21/root/test
> root@bcterm:7 >make
> g++ -shared -g Event.o EventDict.o -o libEvent.so
> g++ -g MainEvent.o Event.o EventDict.o -L/home/root/rootsys/root/lib -lNew
> -lBase -lCint -lClib -lCont -lFunc -lGraf -lGraf3d -lHist -lHtml -lMatrix
> -lMeta -lMinuit -lNet -lPostscript -lProof -lTree -lUnix -lZip -lm -ldl
> -rdynamic -o Event
> /usr/bin/ld: warning: libm.so.6, needed by
> /home/root/rootsys/root/lib/libClib.so, may conflict with libm.so.5
> /usr/bin/ld: warning: libc.so.6, needed by
> /home/root/rootsys/root/lib/libClib.so, may conflict with libc.so.5
> /home/root/rootsys/root/lib/libUnix.so: undefined reference to
> `TOrdCollectionIter virtual table'
> /home/root/rootsys/root/lib/libUnix.so: undefined reference to `TTime
> virtual table'
> /home/root/rootsys/root/lib/libUnix.so: undefined reference to
> `TInetAddress virtual table'
> /home/root/rootsys/root/lib/libUnix.so: undefined reference to `TIterator
> virtual table'
> /home/root/rootsys/root/lib/libUnix.so: undefined reference to `TString
> virtual table'
> /home/root/rootsys/root/lib/libUnix.so: undefined reference to `TSystem
> virtual table'
> collect2: ld returned 1 exit status
> make: *** [Event] Error 1
> root@bcterm:8 >