I'm missing some good statistics. > * DWZ advantage: On the whole Fedora distro it saves 3.3% (5GB of the > 157GB distribution size) What is this comparing? Is this the size of binary rpm or the installation-on-disk footprint? 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. Zbyszek > ** 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/ LLDB]. > * 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 #Releng issue > number] (a check of an impact with Release Engineering is needed) > * Policies and guidelines: All the needed changes should be done in > [https://src.fedoraproject.org/rpms/redhat-rpm-config > redhat-rpm-config]. The [https://src.fedoraproject.org/rpms/dwz 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 > rebuilt. > > == How To Test == > The change will update > [https://src.fedoraproject.org/rpms/redhat-rpm-config > redhat-rpm-config] by > [https://people.redhat.com/jkratoch/redhat-rpm-config-fdebug-types-section.patch > 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 > [https://src.fedoraproject.org/rpms/libabigail libabigail] utility > 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 == > none > > == Contingency Plan == > * Contingency mechanism: Revert the change in > [https://src.fedoraproject.org/rpms/redhat-rpm-config > 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 > * [https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#index-fdebug-types-section > GCC -fdebug-types-section] > > > > > -- > Ben Cotton > He / Him / His > Senior Program Manager, Fedora & CentOS Stream > Red Hat > TZ=America/Indiana/Indianapolis > _______________________________________________ > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx > Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx