On Fri, Feb 20, 2004 at 12:56:50AM +0100, Dexter Filmore wrote: > On Thu, 19 Feb 2004 14:52:50 +0000 > corey_s@xxxxxxx wrote: > > > > > Have you used prelink? > > > > http://freshmeat.net/projects/prelink/ > > Heck, this is interesting! Do I understand correctly that it can be used on > already existing apps without recompiling? > Yup! Just install prelink, then run it - and it'll do its thing. Works great for c++ apps, it makes an obvious difference in kde. Here's the man page without options for more thorough info: man prelink <snip> DESCRIPTION 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 run-time 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. prelink first collects ELF binaries which should be prelinked and all the ELF shared libraries they depend on. Then it assigns a unique vir- tual address space slot for each library and relinks the shared library to that base address. When the dynamic linker attempts to load such a library, unless that virtual address space slot is already occupied, it will map it into the given slot. After this is done, prelink with the help of dynamic linker resolves all relocations in the binary or library against its dependant libraries and stores the relocations into the ELF object. It also stores a list of all dependant libraries together with their checksums into the binary or library. For bina- ries, it also computes a list of conflicts (relocations which resolve differently in the binary's symbol search scope than in the smaller search scope in which the dependant library was resolved) and stores it into a special ELF section. At runtime, the dynamic linker first checks whether all dependant libraries were successfully mapped into their designated address space slots and whether they have not changed since the prelinking was done. If all checks are successful, the dynamic linker just replays the list of conflicts (which is usually significantly shorter than total number of relocations) instead of relocating each library. ___________________________________________________ . Account management: https://mail.kde.org/mailman/listinfo/kde. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.