From Fedora Project Wiki

Revision as of 13:16, 5 June 2012 by Jakub (talk | contribs)


DWARF Compressior

Summary

Reduce size of *.debug files in debuginfo packages in Fedora 18 using DWARF Compressor dwz.

Owner

  • Name: Jakub Jelinek
  • Email: jakub@redhat.com

Current status

  • Targeted release: Releases/18
  • Last updated: 2012-06-05
  • Percentage of completion: 50%

Detailed Description

The dwz tool http://sourceware.org/git/?p=dwz.git;a=summary can rewrite .debug_* sections, either in binaries/shared libraries, or their *.debug split files, into equivalent, but smaller, DWARF. The master branch of that repo currently only rewrites each single *.debug file on its own, on the multifile branch there is ongoing work to optimize also several *.debug files at once, by moving common .debug_* data into a single new ET_REL *.debug file and using DWARF extensions refer to that from the *.debug files. Depending on the stability of the multifile branch we'd like to either optimize each *.debug file individually by running roughly find . -name \*.debug | xargs -n 1 dwz in find-debuginfo.sh (will need to handle hardlinks better than that), or all *.debug files at once using dwz -m %{name}-%{version}-%{release}.%{arch}.debug *.debug.

Benefit to Fedora

Smaller debuginfo files.

Scope

All packages should be rebuilt with the new tool as well as rpm changes hit dist-f18.

How To Test

GDB testsuite, perhaps some tool to analyze whether the non-compressed and compressed debuginfos contain equivalent info.

User Experience

Users shouldn't notice this, except that debuginfo files will be smaller, and newer DWARF consumers will be needed (gdb, valgrind, dwarves, prelink, elfutils, systemtap).

Dependencies

All packages need to be rebuilt.

Contingency Plan

Worst case we stop using the compressor.

Documentation

None yet, there will be a DWARF5 extension proposal if we are going to choose the multifile optimization.

Release Notes

Fedora 18 debuginfo has been post-processed by a DWARF compressor tool to reduce size of the *.debug files.

Comments and Discussion