[devel] Q: debuginfo strip controls & deps

Alexey Tourbin at на altlinux.ru
Сб Фев 5 05:41:03 UTC 2011


On Sat, Feb 05, 2011 at 02:00:24AM +0300, Alexey Tourbin wrote:
> On Sat, Feb 05, 2011 at 01:21:50AM +0300, Dmitry V. Levin wrote:
> > > %brp_strip_debug, название по аналогии с опцией strip --strip-debug.
> > Я уже посмотрел код и пришел к аналогичному выводу.
> 
> Из крупных недоделок осталось доделать только коррекцию %{SIZE}.
> Кажется, это не очень сложно.  Я отклчил тестовую i586-пересборку -
> скорее всего, включу её через пару часов.

Отпарвил в сизиф rpm 4.0.4-alt100.16 с исправленным %{SIZE}, с debug64()
зависимостями и с оптимизатором зависимостей между подпакетами.  Запустил
тестовую пересборку.

2ldv: пожалуйста повнимательнее проверь как собралась glibc (напр. в
/tasks/38013/build/200/x86_64/rpms), всё ли тебе нравится.  Кстати,
кажется, оптимизированные под sse4.2 функции не подцепились.

[apiary на ssh rpms]$ rpmpeek glibc-core-2.11.3-alt3.x86_64.rpm readelf -aW ./lib64/libc.so.6 |fgrep strcmp
  2022: 000000000007a220  5289 FUNC    GLOBAL DEFAULT   12 strcmp@@GLIBC_2.2.5
[apiary на ssh rpms]$ rpmpeek glibc-core-2.11.3-alt3.x86_64.rpm readelf -aW ./lib64/libc.so.6 |fgrep strlen
   751: 000000000007bc40    69 FUNC    GLOBAL DEFAULT   12 strlen@@GLIBC_2.2.5
[apiary на ssh rpms]$ rpmpeek glibc-core-2.11.3-alt3.x86_64.rpm readelf -aW ./lib64/libc.so.6 |fgrep IFUNC
[apiary на ssh rpms]$

И ещё обрати внимание, что, кажется, на i586 эти функции должны
подцепиться через i686.

Насчет оптимизации зависимостей между подпакетами.  Мне совсем недавно
пришло в голову, что зависимости можно оптимизировать ещё сильнее:
а именно, оптимизировать можно не только зависимости, удовлетворённые
через Provides, но и зависимости, удовлетворенные через Requires! Ж-)

Пусть например пакет rpm требует две зависимости
librpm = 4.0.4-alt16
libc.so.6()(64bit)
а пакет librpm в свою очередь требует среди прочих зависимость
libc.so.6()(64bit)

Тогда из пакета rpm можно удалить зависимость на libc.so.6()(64bit).
То есть некоторые зависимости подпакетов иногда "отоваривать", как говорит
лидер нации, через базовый подпакет.  Что в принципе имеет смысл.

Но там сложнее сделать, поскольку две Requires зависимости нельзя
сравнивать напрямую.  И это не будет хорошо работать с set-версиями,
потому что обычно будут разные/несравнимые подможества.  А оптимизация
зависимостей делается прежде всего, чтобы снизить нагрузку на
pkglist/pkgcache и apt, которая подскочила из-за set-версий.

В общем пока не решил, делать ещё одну оптимизацию зависимостей или нет.
Предлагаю дождаться окончания i586-пересборки, чтобы оценить степень
разлома.  Потом можно решить, что нужно будет достаточно быстро доделать
или переделать.  Впрочем, glibc вроде бы можно собирать в любом случае.


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