prelink modification ?

Jakub Jelinek jakub at redhat.com
Wed Nov 3 12:02:49 UTC 2004


On Wed, Nov 03, 2004 at 12:20:05PM +0100, Morten Sylvest Olsen wrote:
> Hi.
> 
> Perhaps experts on prelinking are lurking on this list? :)
> 
> I would like to modify prelink to exclude *some* of a binaries needed
> libraries from prelinking. So if I depend on library A, B, C then A and
> B are prelinked, while normal relocation processing is done for library
> C. I guess I could just dlopen the library, but it would be nicer if I

This can't work.  The whole point of prelinking is that symbol resolution
and relocation processing is done at prelink time, not at startup time.
If some library is not prelinked, you need to check all (non-relative)
relocations at startup time, as they might or might not resolve to the
library C.

What could be done is use one of the bits in Elf{32,64}_Lib structure
in .gnu.liblist section to mean this library is DT_TEXTREL and must
be mprotected RW for .gnu.conflict application.

But beware that in the case of NVidia libGL.so there will be thousands
of conflicts.  I've told them multiple times, but apparently they aren't
listening.
I have a patch for the XFree86/Xorg libGL.so that makes it non-DT_TEXTREL
while not slowing it down and also cutting down the number of dynamic
relocations a lot, but I lost my hopes in getting it merged upstream.

	Jakub




More information about the fedora-devel-list mailing list