Re: question about installation
Brought to you by:
johnston
From: Michael P. () <pr...@ma...> - 2002-12-18 21:13:13
|
On Wed, 18 Dec 2002, Scott Johnston wrote: > Date: Wed, 18 Dec 2002 12:05:36 -0800 > From: Scott Johnston <joh...@ve...> > To: pr...@ma..., ivt...@li... > Subject: Re: question about installation > > At 1:24 PM -0600 12/18/02, Michael Prophet () wrote: > >On a machine running Linux version 2.4.18-18.7.x, Redhat 7.3, I tried to > >install idraw using ivtools-1.0.7.tgz. Following the INSTALL instructions > >I did the usual > > ./configure > > make > > su -c "make install" > > > >and everything seemed to go ok but when I run idraw I get the error: > >"/usr/local/bin/idraw: relocation error: /usr/lib/libIV.so: undefined > >symbol: __gxx_personality_v0" > > > >any suggestions? > > > >Mike > > Scott, thanx for the help - keep in mind I know only basic linux user stuff (enough to screw things up but not fix them...) > I assume you are using gcc-2.96. For a long time I avoided making > ivtools compile with that version of gcc, which was never approved by > the gcc steering committee, and is only distributed by RedHat. But > recently I fixed the compile problems as you've demonstrated, > without, I guess, resolving all the run-time resolution of symbols. > > The easiest thing to do might be to upgrade to a gcc-3.* compiler. > Otherwise we can engage in a search mission to discover why > __gxx_personality_v0 is referenced by libIV but not resolved from any > linked library. yes - I'm using gcc-2.96. I tried to upgrade to gcc-3* (via .rpm) but this seems to require a lot of additional upgrades, so... > The usual reason is __gxx_personality_v0 is defined in a system > include file (a gcc system include file, given the name), yet is not > compiled into a system library (at least the ones you are resolving > given your use of ldconfig and the LD_LIBRARY_PATH environment > variable). You can look in a few places for that symbol, either > /usr/include or the directory revealed when you type "gcc -v". Use > the find command like so: > > # first cd to the pertinent directory > find . -type f -exec grep -l gxx_personality_v0 {} \; I did the find in /usr/include as well /usr/lib/gcc-lib/i386-redhat-linux/2.96/ but nothing turned up > That should find where the symbol is hiding. Other possibilities are > the symbol is automatically inserted into the object code by the > compiler. To get an idea of where the symbol is referenced from > libIV, try this (assuming use of sh or bash): > > cd src/IV/LINUX > for x in *.o > > do > > echo $x > > nm $x | grep gxx_personality_v0 > > done I went to /usr/src but did not find IV/linux so I didn't really know what to do here. > Now armed with this information, you probably want to determine if a) > that symbol is nowhere to be found in a system library, or b) that > symbol exists in a system library, but you are not linking that > library. To search for libraries, go to /usr/lib and that directory > revealed by "gcc -v" and try this: > > > for x in `find . -name \*.a -print` > > do > > echo $x > > nm $x | grep gxx_personality_v0 > > done I did the above in directory revealed by gcc -v and found /libgcc.a ./libg2c.a ./libobjc.a ./libstdc++.a and then /libobjc.so.1 ./libobjc.so ./libobjc.so.1.0.0 ./libstdc++.so I repeated this in /usr/lib and got tons of lines of output. > and repeat for \*.so\* (instead of \*a) to search the dynamic > libraries as well. That should give you some idea of whether the > symbol is out there. If it is, study your current set of dynamically > linked libraries with the use of "ldd -r" on your executable. I had never used the -r option before with ldd...this is what happended: [root@banach root]# ldd -r /usr/local/bin/idraw libUniIdraw.so => /usr/lib/libUniIdraw.so (0x4002c000) libUnidraw.so => /usr/lib/libUnidraw.so (0x40083000) libIV.so => /usr/lib/libIV.so (0x401d2000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x403ba000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403c7000) libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x4049c000) libm.so.6 => /lib/libm.so.6 (0x404df000) libc.so.6 => /lib/libc.so.6 (0x40501000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40628000) libdl.so.2 => /lib/libdl.so.2 (0x4062f000) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __gxx_personality_v0 (/usr/lib/libIV.so) undefined symbol: __cxa_pure_virtual (/usr/lib/libIV.so) undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE (/usr/lib/libIV.so) undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE (/usr/lib/libIV.so) undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE (/usr/lib/libIV.so) undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE (/usr/lib/libIV.so) undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE (/usr/lib/libIV.so) undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE (/usr/lib/libIV.so) . . . These lines repeated hundreds of times...tons of "undefined symbol:" descriptions...many lines were repeated often....near the end of the output the lines were: undefined symbol: _ZNSt8ios_base6badbitE (/usr/lib/libUniIdraw.so) undefined symbol: _ZSt4cerr (/usr/lib/libUniIdraw.so) undefined symbol: _ZNSt5ctypeIcE2idE (/usr/lib/libUniIdraw.so) undefined symbol: _ZNSt8ios_base7goodbitE (/usr/lib/libUniIdraw.so) undefined symbol: _ZNSt7codecvtIcc9mbstate_tE2idE (/usr/lib/libUniIdraw.so) undefined symbol: _Znaj (/usr/lib/libUniIdraw.so) undefined symbol: __cxa_rethrow (/usr/lib/libUniIdraw.so) undefined symbol: _ZNSt6localeC1ERKS_ (/usr/lib/libUniIdraw.so) undefined symbol: _ZSt18uncaught_exceptionv (/usr/lib/libUniIdraw.so) undefined symbol: _ZNSt8ios_base13_M_grow_wordsEi (/usr/lib/libUniIdraw.so) undefined symbol: _ZSt19__throw_ios_failurePKc (/usr/lib/libUniIdraw.so) What's the next step? Mike -- Michael Prophet pr...@ma... Department of Mathematics 319-273-2104 University of Northern Iowa Cedar Falls, IA 50614-0506 |