← Back to team overview

elementary-dev-community team mailing list archive

Re: Prelink


2012/5/9 Sergio <sertorbe@xxxxxxxxx>

>  I readed about that but i found this web htpp://
> utcc.utoronto.ca/~cks/space/blog/linux/PrelinkingIntro<http://utcc.utoronto.ca/%7Ecks/space/blog/linux/PrelinkingIntro>
> which says:
> "prelinking and DT_GNU_HASH are complementary and systems can do both."
> Also AFAIK modifying the binaries are not bad unless you have a system
> which dectects wheter the binary is modified or not , which is only used on
> servers, a platform which elementary os doesn't focus.
> Also the document says that fedora/red hat uses this, and although is four
> years old this is still true.

Technically you can use both at once, but I doubt prelink will offer better
startup times. I'd love to be proven wrong, though. If you measure startup
times of some prelinked binaries and find measureable improvement over
non-prelinked ones, we can look into integrating it. However, I still
dislike the idea of modifying system executables for a number of reasons.

First, what happens if power goes out when a system executable is being
overwritten or it's buffered but not synced to disk? Our default filesystem
- ext4 - is not that great at recovery from such cases, it can't simply
roll back to the older version because it's not copy-on-write. You may very
well end up having a broken system executable.

The same may be true about shutting down the system - there's a huge series
of workarounds for shutting down while updating the system already. I don't
want to do the same for prelinking because it would require an insane
amount of testing. Technically it's possible, but it's definitely out of
scope of elementary OS and should be done upstream, in Ubuntu itself.

Second, what if some future app or library doesn't like prelinking for some
reason? I know Prelink attempts graceful fallback, but some stuff like
older Glib does break. There very well may be such libraries or binaries
out there right now, we just don't know about them yet. And again, you may
end up with a broken system.

On an unrelated note, please use "reply to all" to make other people on the
list see your messages instead of replying to me directly.

Sergey "Shnatsel" Davidoff
OS integrator @ elementary

Follow ups