[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: question regarding prelinking (was: (inc. note from dpkg developers) (was:Bug#XXXXXX: (far too many packages) needs rebuilt for prelinking))



Hi,

On Fri, Jan 17, 2003 at 11:50:19AM +0000, Tom Badran wrote:

> On Friday 17 Jan 2003 10:22 am, Hamish Moffatt wrote:
> > On Tue, Jan 14, 2003 at 02:30:57PM -0500, Jack Howarth wrote:
> > > prelink is a program which modifies ELF shared libraries and ELF dynam-
> > > ically linked binaries, so that the time which dynamic linker needs for
> > > their relocation at startup significantly decreases  and  also  due  to
> > > fewer  relocations the runtime memory consumption decreases too (espe-
> > > cially number of unshareable pages).  Such  prelinking  information  is
> > > only  used  if  all its dependant libraries have not changed since pre-
> > > linking, otherwise programs are relocated normally.
> >
> > So Jack, can you give an example of a program where a significant amount
> > of time is spent having the dynamic linker work out the correct linkage?
> > ie a package that would benefit significantly from prelinking.
> 
> Konqueror has something like a 75% reduced startup time when prelinked
> (figure taken from various gentoo users and kde developers).

If linking plays such a big part in the (noticeable) startup time of
these applications, then IMHO that signifies broken design, and indeed,
inventing a new .so for every three functions /is/ broken design.

More of all that linking should be done at build time, not at run time.
In most cases you need exactly matching minor versions for all those 
KDE/Gnome support libraries anyway - just look at how often the soname
versions are incremented.

Just provide a single Qt lib, a single KDE lib that uses it, and the
same for GTK+ and Gnome, resp. 

Make no illusions, nobody's going to use your utility functions
standalone anyway, outside of those environments.

This way, you can have two libs per environment, plus glibc and possibly
libstdc++.  I cannot imagine that the linker need so much time to map
those. If it does, then the APIs are simply too wide (which they are).

All IMHO, of course.

Cheers,


Emile.

-- 
E-Advies / Emile van Bergen   |   emile@e-advies.info
tel. +31 (0)70 3906153        |   http://www.e-advies.info

Attachment: pgp5DeWRp_Ekx.pgp
Description: PGP signature


Reply to: