This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: evolution vs prelink on debian ppc sid
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- Cc: libc-alpha at sources dot redhat dot com
- Date: Thu, 26 Sep 2002 01:29:55 +0200
- Subject: Re: evolution vs prelink on debian ppc sid
- References: <200209252245.SAA82825@bromo.msbb.uc.edu>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, Sep 25, 2002 at 06:45:01PM -0400, Jack Howarth wrote:
> Here is another view at the prelinked evolution crash.
> If I run...
>
> 0x018efaf4 in _dl_addr () from /lib/libc.so.6
> (gdb) bt
> #0 0x018efaf4 in _dl_addr () from /lib/libc.so.6
> #1 0x023816c4 in dladdr () from /lib/libdl.so.2
Well, I see a potential problem in _dl_addr:
/* We assume that the string table follows the symbol table, because
there is no way in ELF to know the size of the dynamic symbol table!! */
prelink doesn't guarantee this for binaries, so if dladdr were used to find a
non-existant symbol in the executable, it might be a problem.
But it looks like this is not the case in your crash.
Just to make sure, do you have the
* elf/rtld.c (dl_main): If prelinking succeeded, mark all objects
as relocated.
patch in? Does it crash if you prelink -u the main binary?
Can you build non-stripped glibc and see in gdb where it exactly crashes
and why?
Jakub