Prelink. "Я тебя породил, я тебя и убью!"

В списке рассылки идет интересное обсуждение о будущем prelink, программы, более десяти лет назад написанной нашим коллегой, инженером Red Hat и участником проектов Fedora и GCC, Jakub Jelinek. Все началось с крика "A король-то голый!" письма от Dhiru Kholia, криптоаналитика, известного недавним исследованием протокола DropBox, закончившимся его реверс-инжинирингом, участника проектов Fedora и OpenWall, инженера Red Hat. В письме Dhiru с недоумением отмечает, что использование prelink не показало значимых ускорений на имевшихся в его распоряжении конфигурациях, и спрашивал, может-ли кто-нибудь описать систему и/или сценарий, при котором можно будет замерить существенные различия. В ответ раздался хор проклятий и пожеланий скорейшей смерти prelink-у от инженеров Red Hat, намучавшихся с ним при сертификации FIPS-140, при верификации RPM (rpm -V), при сборке с -fPIE, да и просто в самых различных местах.

Оказывается, на современных системах уже давно prelink больше гадит, чем помогает. Причем гораздо больше. Возможно с какими-то старыми ядрами, с древними линковщиками, с допотопным gcc, с альтернативными Libc, prelink еще актуален, но точно не в современных конфигурациях. Дискуссия оказалась довольно горячей, т.к. выяснилось, что в наличии множества систем с включенным prelink все еще заинтересованы разработчики GCC и GDB. Быстро обнаружилось, что наличие prelink в пользовательских системах превращает юзеров в бесплатных тестеров новых GDB, elfutils и т.п. Но участники коммьюнити Fedora решительно выступили против такого беспардонного использования юзеров в качестве хомячков, ведь наши пользователи, в отличие от других дистрибутивов, это не бесплатные бета-тестеры! И т.к. у нас в коммьюнити действует просвещенная демократия, то по итогам обсуждения было сформулировано предложение на рассмотрение FESCo - отказаться от установки prelink по умолчанию в новых системах. Если FESCo одобрит, то возможность установки останется, и кто захочет, тот всегда может его установить, но подталкивать к этому мы больше не будем.

Сделан первый шаг к удалению prelink из системы, и мы будем следить за развитием событий.