Re: error loading shared libs: Linux, egcs1.1.1

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Thu Jan 21 1999 - 10:38:08 MET


Hi Christian,

   just to follow-up on Rene's answer. It seems your Slackware system 
supports glibc (i.e. libc.so.6) and that you have egcs 1.1.1. In that
case take the binary ROOT distribution for Linux glibc and egcs 1.1.1. It comes
with a correct Makefile in $ROOTSYS/test/ that shows you which egcs compiler
options to use (notably -fno-rtti -fno-exceptions). ldd on root and
root.exe should only show:

        libm.so.6 => /lib/libm.so.6 (0x400dd000)
        libc.so.6 => /lib/libc.so.6 (0x400f6000)

and not libc.so.5.

When compiling the programs in $ROOTSYS/test it seems you use the wrong
compiler that tries to use libc.so.5. Make sure your $PATH is set correctly
to take the egcs 1.1.1 compiler.

Cheers, Fons.



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 >

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland          Phone: +41 22 7679248
E-Mail: Fons.Rademakers@cern.ch              Fax:   +41 22 7677910



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:28 MET