This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: prelink two step
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Antony Suter <sutera at internode dot on dot net>
- Cc: binutils at sources dot redhat dot com
- Date: Tue, 18 Feb 2003 04:53:45 -0500
- Subject: Re: prelink two step
- References: <1045561101.31674.47.camel@gestalt.lan>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, Feb 18, 2003 at 08:38:21PM +1100, Antony Suter wrote:
>
> If there is a more appropriate place to discuss prelink, please let me
> know.
>
> I am trying out prelink, however on some binaries it will fall into an
> infinite recursive loop pattern. It is a two step cycle of prelink_ent()
> in doit.c at line 58. For eg. the two libraries that keep checking each
> other are /usr/lib/libgpm.so.1 and /lib/libncurses.so.5
>
> Doesn't prelink normally cater for this type of situation?
Do you mean that libgpm.so.1 has DT_NEEDED libncurses.so.5 and
libncurses.so.5 has DT_NEEDED libgpm.so.1?
prelink doesn't handle that. I haven't ever seen something like this and
handling it would complicate the code too much (prelink handles a library
at a time, dependency loop would mean it would have to work on a bunch of
libraries at once).
What I can add is just loop detection and don't prelink the libraries
which have the loop.
If two libraries depend on each other, it is fun to build them, isn't it?
Furthermore, there is the question whether they shouldn't be merged into one
library...
Jakub