[devel] Q: debuginfo strip controls & deps

Dmitry V. Levin ldv на altlinux.org
Пн Янв 31 21:46:04 UTC 2011


On Mon, Jan 31, 2011 at 06:23:37PM +0300, Alexey Tourbin wrote:
[...]
> Я знаю всего несколько пакетов, где действительно требуется
> специальный режим обрезания файлов: а именно, требуется сохранить .symtab.
> Один из таких пакетов - glibc.  Это делает вопрос насчет strip-макросов
> актуальным, т.к. glibc ложится в основу иерархии debuginfo зависимостей.

Попадаются ещё ELF'ы, которые предназначены для обработки нестандартными
загрузчиками, в т.ч. и не в userspace.  Вероятно, такие файлы лучше вообще
не трогать.  Видно, что сейчас в brp-debuginfo захардкодены исключения
/usr/share и /lib/firmware.  Я бы добавил туда ещё и /boot с /lib/modules.

> Предлагаю реализовать всего один новый strip-макрос - сохранение .symtab
> при обрезании -
> 	%название-макроса шелл-глоб
> Требуется придумать нвазвание макроса.
> Название может включать "keep_symtab" или "strip_debug_only".

strip_debug_only не вполне понятен, поскольку не очевидно, что есть
debug only.

Если смысл макроса в сохранении секции .symtab, то пусть лучше будет
%debuginfo_strip_keep_symtab shell-glob-pattern

> Актуальный вопрос №2: вид soname-зависимостей между debuginfo-пакетами.
> 
> Сонейм-зависимости между основными пакетами имеют вид
> /usr/lib/libfoo.so.1 -> libfoo.so.1
> /usr/lib64/libfoo.so.1 -> libfoo.so.1()(64bit)
> 
> Для debuginfo пакетов будет создана иерархия зависимостей, похожая на
> основную, на основе сонеймов.  Требуется придумать вид зависимостей
> для для сонеймов (ABI-интерфейсы использоваться не будут).  Варианты могут
> быть такие:
> 
> /usr/lib/debug/usr/lib/libfoo.so.1 -> debug(libfoo.so.1)
> /usr/lib/debug/usr/lib64/libfoo.so.1 -> debug64(libfoo.so.1)

Такой вариант годится.

> /usr/lib/debug/usr/lib/libfoo.so.1.debug -> libfoo.so.1.debug
> /usr/lib/debug/usr/lib64/libfoo.so.1.debug -> libfoo.so.1.debug()(64bit)
> 
> /usr/lib/debug/usr/lib/libfoo.so.1.debug -> D-libfoo.so.1
> /usr/lib/debug/usr/lib64/libfoo.so.1.debug -> D-libfoo.so.1()(64bit)

Эти варианты не годятся, особенно первый из них, поскольку совпадают с
возможными обычными зависимостями на soname.

> Менее актуальные вопросы:
> 1) Нужны ли другие strip-макросы.

Видимо, нужно уметь отключать обработку отдельных файлов по причине
"мейнтейнеру виднее", например,
%debuginfo_skip_files shell-glob-pattern

> 2) Стоит ли обрезать lib*.a архивы.

До сих пор эти файлы не стрипались, но и -g до сих пор по умолчанию не
было.  Не очевидно.

> 3) Реорганизация репозитория - стоит ли делать RPMS.debug.

Число arch-пакетов практически удвоится -- как это скажется на индексах?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20110201/0252ffe1/attachment.bin>


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