[devel] DT_GNU_HASH

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Авг 9 04:58:45 MSD 2006


On Wed, Aug 09, 2006 at 04:15:10AM +0400, Dmitry V. Levin wrote:
> On Wed, Aug 09, 2006 at 04:07:26AM +0400, Alexey Tourbin wrote:
> > В binutils более новой версии, чем у нас, реализована новая
> > опция --hash-style=gnu.  По утверждению редхатовцев, это дает
> > 50% ускорение при запуске приложений.
> > http://sources.redhat.com/ml/binutils/2006-06/msg00418.html
> 
> Это даёт ~50% ускорение relocation'ов за счёт более подходящего алгоритма
> хэширования.

И это должно заметно сказать на скорости работы shell скриптов,
в частности, на время загрузки системы.

Кстати, 50% ускорение -- это во сколько раз?  В два раза или в полтора?
Скорость увеличивается, а время загрузки уменьшается.  Следовало бы
говорить именно о времени загрузки.

> > В общем накапливается уже несколько моментов, ради которых всё стоит
> > пересобрать: -D_FORTIFY_SOURCE, -fstack-protector, -pie, и вот теперь
> > --hash-style.
> 
> Я не совсем понимаю, как автоматизировать -pie, но и без -pie причин для
> пересборки достаточно.  Хуже другое: я не понимаю, как этот объём пакетов
> выложить и как пользователи будут обновлять свои системы?

Помнится во времена подготовки M22 ко всем пакетам было требование:
пройти пересборку новым компилятором (gcc3.2).  Тогда ещё правда не было
ни регулярных пересборок, ни возможности автоматической пересборки; так
что это требование имело большое значение.

Теперь эти возможности есть, однако предлагаю поступить старым способом.
В час X, когда базовая сборочная среда будет готова, отрывается сезон
пересборки пакетов.  Maintainer'ам желательно найти какой-нибудь не
слишком пустяковый повод для пересборки пакетов.  Например, разобраться
c x86_64, или исправить что-нибудь из багзиллы.  В час Y сезон плавно
закрывается и наступает более глубокий фриз.  Думаю, что значительная
часть пакетов, и в особенности все важные пакеты, в промежуток X-Y будут
пересобраны.  Стоит ли тогда автоматически пересобрать оставшиеся
пакеты, я не знаю.

-pie действительно непросто автоматически прошить.  Но можно
воспользоваться вот какими соображениями.

1) если при компиляции объектных файлов не указана опция -fpic/-fPIC,
тогда автоматически врубать -fpie, если только не указана опция -fno-pie.

2) если при линковке не указана опция -shared, то автоматически врубать
опцию -pie, если только не указана -no-pie (кстати, кажется такой опции
нет).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060809/3d87dd47/attachment-0001.bin>


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