I've come across a problem which I think is due to an unfortunate
change in egcs.

I downloaded binaries of Netscape 4.51 for glibc and linux-2.x.  The
binary won't run because a symbol __eh_pc can't be found.  It appears
that the binary is probably expecting to find this symbol in
libstd++.so.2.8.  After looking at versions of this library which I
have, I found an old version which actually has this symbol.  This was
strange because I couldn't find the symbol anywhere in the libstd++-2.8
sources.  However, it appears that the symbol used to be in the egcs
sources (the latest version of the egcs sources which I have has notes
that it was removed at some stage).

It seems to be that older versions of egcs caused this symbol to be
placed in the libstd++*.so libraries (it appears that newer versions
are probably doing the same thing with a differently named symbol).
Hence my problem, the Netscape people have linked against a library
which has been generated by an older egcs (or perhaps gcc) but the
corresponding library which I would like to use has been generated
with a more recent egcs.

Has anyone any comments on this?  Is my analysis correct?

I tried to solve the problem by replacing my libstd++.so.2.8 with one
which has the __eh_pc symbol.  The netscape binary now crashes with
a "Bus error" while loading.

-- 
-----------------------------------------------------------------------------
Bill Metzenthen      | See http://www.linuxsupportline.com/~billm/ for info
[EMAIL PROTECTED]  | on an 80x87 FPU emulator, using floating point, and 
Melbourne, Australia | code for manipulating the floating point environment on
                     | 80x86 Linux.
-----------------------------------------------------------------------------

Reply via email to