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 >