The state of prelinking support

Carlos O'Donell carlos@redhat.com
Mon Aug 30 17:18:45 GMT 2021


On 8/27/21 6:49 AM, Florian Weimer via Libc-alpha wrote:
> * Mike Frysinger:
> 
>> On 23 Aug 2021 14:17, Florian Weimer via Libc-alpha wrote:
>>> Does prelinking still work?  Is anyone testing it reguarly?
>>>
>>> Fedora has removed the program (prelink) that generates the necessary
>>> metadata/DSO changes quite some time ago.  Debian's most recent release
>>> doesn't include it, either.
>>
>> doesn't it completely break with PIE+ASLR ?  i imagine most distros are now
>> biasing towards those which means prelink doesn't make sense for them anymore.
> 
> It definitely fixes DSO addresses so that remain the same on subsequent
> runs.  I don't know what prelink does to ET_DYN executables.
> 
> My question wasn't so much whether this is a good idea.  We have some
> code in ld.so dedicated to prelinking.  If it's still working for
> someone, we can't remove it.

I think we should declare the current prelinking implementation officially
unsupported in glibc.

I would be OK in glibc 2.35 to say that prelinking is no longer supported
and remove associated code if it is causing refactoring problems.

If developers want to reduce startup costs we have strategies like criu
that could allow an "application image" to be saved/restored very quickly
at some point inside the loader. I'd be *much* more interested in a criu
"rendezvous" inside ld.so.

-- 
Cheers,
Carlos.



More information about the Libc-alpha mailing list