I'm missing some good statistics.
* DWZ advantage: On the whole Fedora distro it saves 3.3% (5GB of
157GB distribution size)
What is this comparing? Is this the size of binary rpm or the
I would love to see a comparison of numbers for three things:
- raw debuginfo without dwz or -fdebug-types-section
- debuginfo with dwz (current approach)
- debuginfo with -fdebug-types-section
For each of those three categories both measures (rpm size and on-disk size)
would be useful. Could you provide numbers like this for some subset of packages
(20-30 packages that produce debuginfo would be enough to get a good measure).
I find that 3.3% number strange — it would mean that dwz is
essentially useless, but maybe I'm misunderstanding how it's defined.
I think we need to get some better understanding what the effects of
various approaches are before discussing which to pick.
> ** If the 3.3% size increase is a concern I can implement a different
> optimization ([https://whova.com/embedded/session/llvm_202010/1193947/
> talk (2)]) as a GCC post-processing phase which would require no
> changes in any DWARF consumers.
> * DWZ disadvantage: DWZ has currently less support across consumers
> (LLDB, llvm-dwarfdump, binutils readelf)
> * DWZ disadvantage: DWZ requires 8x times more complicated (LoC count)
> support in consumers than -fdebug-types-section.
> * DWZ disadvantage: DWZ cannot update LLVM .debug_names index which
> can be generated only by clang (it cannot be regenerated later for
> DWZ-compressed file)
> * DWZ disadvantage: DWZ DWARF-5 support is a work-in-progress. DWZ has
> been blocking DWARF-5 for Fedora for 3.5 years and only after I have
> now proposed to drop DWZ Mark Wielaard has started porting DWZ to
> DWARF-5. It can be expected next DWARF extensions will remain
> unsupported again. Even currently there is no plan to support DWARF-5
> features used by clang which may need -fdebug-types-section for
> clang-built binaries or no size optimization of clang-built debug info
> at all.
> * DWZ disadvantage: Compilation (linking) requires for C++ up to 2x as
> big disk space (as DWZ is processing files after linker and DWZ is
> incompatible with -fdebug-types-section)
> * DWZ disadvantage: Compilation (linking) is slower
> This proposed DWARF format was originally submitted already for Fedora
> 18 as [[Features/DebugTypesSections]].
> == Benefit to Fedora ==
> * Better compatibility with existing debugging and tracing tools,
> primarily [https://lldb.llvm.org/
> * Less resource-intensive rebuilds of C++ packages (in disk space,
> memory requirements and compilation time).
> == Scope ==
> * Proposal owners: It affects all packages generating *-debuginfo.rpm,
> that is compiled (not scripted) languages.
> * Other developers: Report any possible debuginfo incompatibility (unexpected).
> * Release engineering: [https://pagure.io/releng/issues
> number] (a check of an impact with Release Engineering is needed)
> * Policies and guidelines: All the needed changes should be done in
> redhat-rpm-config]. The [https://src.fedoraproject.org/rpms/dwz
> package] can be then retired.
> * Trademark approval: N/A (not needed for this Change)
> * Alignment with Objectives: The size differences are only for
> *-debuginfo.rpm which is outside of scope of the listed objectives.
> == Upgrade/compatibility impact ==
> As *-debuginfo.rpm have to exactly match NVRA of its binary package
> the compatibility is not relevant. Existing tools supporting DWZ will
> still support the DWZ file format in packages which have not been
> == How To Test ==
> The change will update
> redhat-rpm-config] by
> an -fdebug-types-section patch].
> Then one can use rpmbuild to rebuild a package. For mock use
> -a|--addrepo with modified redhat-rpm-config.rpm (with increased
> NVRA). For packages already rebuilt in Koji nothing is needed.
> Test programs like lldb and gdb if they still can print source code,
> function parameters, variables etc.
> One should also verify integrated testsuites of tools like clang,
> lldb, gcc, binutils, gdb, elfutils or rpm are not regressing with the
> -fdebug-types-section option.
> One can also compare *.debug files built with/without DWZ and/or
> -fdebug-types-section using
> dwdiff but that will be rather done by the change owner.
> == User Experience ==
> No user visible change. This affects what tools can developers use.
> == Dependencies ==
> == Contingency Plan ==
> * Contingency mechanism: Revert the change in
> redhat-rpm-config]. Fedora can continue using DWZ, just some
> debugging/tracing tools will stay incompatible.
> * Contingency deadline: beta freeze
> * Blocks release? No
> * Blocks product? N/A
> == Documentation ==
> * [http://www.dwarfstd.org/doc/DWARF5.pdf
DWARF-5] E.2 Using Type Units
> GCC -fdebug-types-section]
> Ben Cotton
> He / Him / His
> Senior Program Manager, Fedora & CentOS Stream
> Red Hat
> devel mailing list -- devel(a)lists.fedoraproject.org
> To unsubscribe send an email to devel-leave(a)lists.fedoraproject.org
> Fedora Code of Conduct:
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: