RPM/debuginfo: различия между версиями

Материал из ALT Linux Wiki
< RPM
м (→‎Отключение: текущая ситуация)
м (→‎Отключение: учтено письмо glebfm@ в devel@)
Строка 21: Строка 21:
== Отключение ==
== Отключение ==


Если для чего-либо {{pkg|*-debuginfo}} нежелательны (например, имеют превышающий предел размера rpm-пакета объём), отключение [https://lists.altlinux.org/pipermail/devel/2019-May/207852.html производится] посредством макроса <tt>%add_debuginfo_skiplist</tt> или глобальной переменной <tt>__find_debuginfo_files</tt>:
Чаще всего хочется, чтобы отладочных данных было меньше или вообще не было.  Для
уменьшения можно добавлять в <tt>%optflags -g1</tt> (обычный -g включает -g2), а
для отключения -- -g0 (убирания -g из <tt>%optflags</tt> может быть недостаточно,
если в проекте принято добавлять свой -g). [https://lists.altlinux.org/pipermail/devel/2019-May/207855.html]
 
{{note|макрос <tt>%add_debuginfo_skiplist</tt> определяет (не)отделение отладочной информации от ELF-файлов (т.е. при его задействовании она ''останется'' в соответствующих файлах основного пакета)}}
 
Если для чего-либо {{pkg|*-debuginfo}} нежелательны вообще, отключение [https://lists.altlinux.org/pipermail/devel/2019-May/207852.html производится] посредством глобальной переменной <tt>__find_debuginfo_files</tt>:


  %global __find_debuginfo_files %nil
  %global __find_debuginfo_files %nil
%add_debuginfo_skiplist %_bindir
%brp_strip_none %_bindir/*


См. тж. [http://lists.altlinux.org/pipermail/devel/2011-February/188023.html обсуждение] <tt>%brp_strip_debug</tt> и <tt>%brp_strip_none</tt> вместо ранее использовавшегося <tt>%set_strip_method</tt>.
См. тж. [http://lists.altlinux.org/pipermail/devel/2011-February/188023.html обсуждение] <tt>%brp_strip_debug</tt> и <tt>%brp_strip_none</tt> вместо ранее использовавшегося <tt>%set_strip_method</tt>.
%brp_strip_none %_bindir/*
<!--
<!--
Как вариант:
Как вариант:

Версия от 12:30, 6 мая 2019


Цель

Поддержка автоматической генерации подпакетов с дополнительной отладочной информацией[1].

Реализация

Доступна начиная с 4.0.4-alt100.14[2]. Обучена автоматически проставлять зависимости между подпакетами *-debuginfo.

Результаты для Sisyphus и стабильных веток, начиная с t6/p6, складываются в отдельный RPMS.debuginfo.

Использование

При сборке пакета с помощью rpm-build >= 4.0.4-alt100.15 будут автоматически порождаться подпакеты *-debuginfo, содержащие /usr/{lib,src}/debug/*. На x86_64 с ними работает gdb >= 7.2-alt1[3].

Следует избегать обобщений вида

%files 
%_libdir/*

— при этом /usr/lib{,64}/debug/*.debug может попытаться попасть в обычный пакет, о чём можно судить по ошибке вида[4]

ldd: ERROR: /usr/src/tmp/paraview-buildroot/usr/lib/debug/usr/bin/pvserver.debug: trace failed

Отключение

Чаще всего хочется, чтобы отладочных данных было меньше или вообще не было. Для уменьшения можно добавлять в %optflags -g1 (обычный -g включает -g2), а для отключения -- -g0 (убирания -g из %optflags может быть недостаточно, если в проекте принято добавлять свой -g). [1]

Примечание: макрос %add_debuginfo_skiplist определяет (не)отделение отладочной информации от ELF-файлов (т.е. при его задействовании она останется в соответствующих файлах основного пакета)


Если для чего-либо *-debuginfo нежелательны вообще, отключение производится посредством глобальной переменной __find_debuginfo_files:

%global __find_debuginfo_files %nil

См. тж. обсуждение %brp_strip_debug и %brp_strip_none вместо ранее использовавшегося %set_strip_method.

%brp_strip_none %_bindir/*

Примечания

  1. #19707
  2. позднее доводилась, к использованию рекомендуется начиная с 4.0.4-alt100.21
  3. "gdb ищет символы в /usr/lib64/debug вместо /usr/lib/debug. Можно временно кинуть символическую ссылку, пока gdb не пофиксят" (crux@ в devel@)
  4. at@ в devel@