(first draft) |
(update patch status) |
||
Line 37: | Line 37: | ||
* Update SystemTap to handle the new section properly. (Done) | * Update SystemTap to handle the new section properly. (Done) | ||
* Update the dwarves package to handle the new section properly. | * Update the dwarves package to handle the new section properly. ([[https://github.com/acmel/dwarves/pulls Patch submitted]]) | ||
* Update valgrind to handle the new section properly. | * Update valgrind to handle the new section properly. ([[https://bugs.kde.org/show_bug.cgi?id=284124 Initial patch submitted]]) | ||
* Disable the new flag for kernel builds. This is needed because libdw cannot handle the multiple .debug_types sections that can appear in ET_REL files -- which includes kernel modules. | * Disable the new flag for kernel builds. This is needed because libdw cannot handle the multiple .debug_types sections that can appear in ET_REL files -- which includes kernel modules. |
Revision as of 15:08, 3 April 2012
Debug Types Sections
Summary
DWARF 4 added a new ".debug_types" section -- a relatively simple and cheap way to compress DWARF debugging information. This feature changes Fedora to take advantage of this compression.
Owner
- Name: Tom Tromey
- Email: tromey@redhat.com
Current status
- Targeted release: Fedora 18
- Last updated: 2012-03-21
- Percentage of completion: 50%
Detailed Description
This feature was implemented in GCC and GDB quite a while ago, but until now Fedora has not taken advantage of it. The compression is quite good; building gdb with this option reduces the size of the final executable from 17M to 11M.
Benefit to Fedora
This reduces the size of debuginfo by quite a bit, just by enabling a compiler flag.
Scope
Several changes are needed to integrate this change into Fedora:
- Either change GCC to enable
-fdebug-types-section
by default, or add this to the default compiler flags used when building RPMs.
- Update SystemTap to handle the new section properly. (Done)
- Update the dwarves package to handle the new section properly. ([Patch submitted])
- Update valgrind to handle the new section properly. ([Initial patch submitted])
- Disable the new flag for kernel builds. This is needed because libdw cannot handle the multiple .debug_types sections that can appear in ET_REL files -- which includes kernel modules.
How To Test
You can easily verify whether the new section is in use using something like:
readelf -WS some-executable-or-library | fgrep .debug_types
Another test is whether the various tools that read debuginfo continue to work. This is best done by running their respective test suites.
User Experience
Users may notice faster download times, less disk space used, or faster startup for tools that read debuginfo.
Dependencies
The main dependency is upstream approval of the patches for the various affected projects.
Contingency Plan
No plan needed; we can continue with the current setup.
Documentation
Release Notes
TBD.