[sisyphus] --as-needed && pkg-config/Libs.private

Damir Shayhutdinov =?iso-8859-1?q?lost404_=CE=C1_gmail=2Ecom?=
Пт Фев 9 21:42:54 MSK 2007


> > Я всегда так и говорил. Часть ведутся. Часть нет - говорят "мы сами
> > умные, и знаем как правильно линковать, а Дреппер просто нефтеме".
> >
> > А что при долинковке появляются не только зависимости на soname, но и
> > на versioned symbols - многих просто не волнует.
>
> Я не уверен что всем понятно, почему это происходит.
>
> Давайте попробуем перечислить все возможные недостатки недолинкованных и
> перелинкованных ELFов.
>
> Недолинковка (ELF object не слинкован со всеми необходимыми библиотеками):
> - Отсутствие необходимых зависимостей на soname делает бесполезным soname
>   versioning в используемых библиотеках.
>   В худшем случае это может привести к ошибкам времени выполнения.
> - Аналогично, отсутствие необходимых зависимостей на символы с версиями
>   сводит на нет symbol versioning в используемых библиотеках.
>   В худшем случае это может привести к ошибкам времени выполнения.
> - С недолинкованными библиотеками невозможно линковаться в режиме
>   --as-needed.
> - К недолинкованным объектам неприменим prelink.
>
> Перелинковка (ELF object слинкован с ненужными библиотеками):
> - Ненужные библиотеки замедляют работу dynamic linker'а, и, как следствие,
>   замедляют загрузку ELF object'а.
> - Ненужные библиотеки увеличивают объём памяти, занимаемой процессом.


> - Ненужные библиотеки приводят к избыточным зависимостям между пакетами,
>   что в свою очередь приводит к лишней работе мантейнеров пакетов при
>   изменении интерфейсов в этих библиотеках.
Плюс это в принципе может привести к нахождению в одном адресном
пространстве двух версий библиотек с разными soname = ошибки времени
выполнения в период "переезда" - когда часть пакетов слинкована со
старой библиотекой, а часть - с новой.


Подробная информация о списке рассылки Sisyphus