Features/DwarfCompressor

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
 
(2 intermediate revisions by one user not shown)
Line 16: Line 16:
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/18]]
 
* Targeted release: [[Releases/18]]
* Last updated: 2012-06-05
+
* Last updated: 2012-07-18
* Percentage of completion: 50%
+
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== 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,
 
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
+
DWARF.  The tool with -m option also attempts to optimize also several *.debug files at once, by moving common .debug_* data into a single new ET_REL *.debug file and using DWARF
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.
+
extensions refer to that from the *.debug files. The rpm and redhat-rpm-config packages have been tweaked to invoke this tool by default during find-debuginfo.sh.
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 ==
 
== Benefit to Fedora ==
Line 45: Line 43:
  
 
== Documentation ==
 
== Documentation ==
None yet, there will be a DWARF5 extension proposal if we are going to choose the multifile optimization.
+
http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open and dwz manual page.
  
 
== Release Notes ==
 
== Release Notes ==
Line 54: Line 52:
  
  
[[Category:FeatureReadyForWrangler]]
+
[[Category:FeatureAcceptedF18]]

Latest revision as of 11:20, 18 July 2012


Contents

[edit] DWARF Compressior

[edit] Summary

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

[edit] Owner

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

[edit] Current status

  • Targeted release: Releases/18
  • Last updated: 2012-07-18
  • Percentage of completion: 100%

[edit] 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 tool with -m option also attempts 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. The rpm and redhat-rpm-config packages have been tweaked to invoke this tool by default during find-debuginfo.sh.

[edit] Benefit to Fedora

Smaller debuginfo files.

[edit] Scope

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

[edit] How To Test

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

[edit] 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).

[edit] Dependencies

All packages need to be rebuilt.

[edit] Contingency Plan

Worst case we stop using the compressor.

[edit] Documentation

http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open and dwz manual page.

[edit] Release Notes

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

[edit] Comments and Discussion