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
|