[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1016563: debhelper: Should dh_dwz be dropped?



Package: debhelper
Version: 13.8
Severity: serious
X-Debbugs-Cc: debian-devel@lists.debian.org

[ debian-devel is in Cc for getting further input. ]

dh_dwz is part of the standard sequence in dh since debhelper compat 12.

dwz offers small optimizations of debug info, the typical benefit
seems to be ~ 3% size reduction.

These optimizations are only in the -dbgsym packages that nearly
noone installs and nearly noone uses.

Debug info is super useful when needed, but it is not installed by
default and dwz optimizations have little practical relevance in the
cases when it is used.

OTOH, the cases where dh_dwz has created additional work for maintainers
are many.[1]

dwz is processing debug info from several producers on many architectures,
and this sometimes breaks in various ways.

On arm64, gcc in stable sometime produces debug info that dwz in
stable cannot handle.[2]

C++ code can result in huge debuginfo, resulting in dwz exhausting
the address space on 32bit architectures, requiring workarounds from
maintainers.[3]

clang 14 which is now default in instable defaults to DWARF 5,
and dwz in unstable has some problems with that.[4,5]

Scroll through [1] for more workarounds for problems in dwz.

The track record of such bugs in dwz getting fixed swiftly is not good.
This is a real problem if dwz is a core toolchain tool most packages
are using by default, and usually maintainers are forced to use
override_dh_dwz whenever dwz chokes on what it is supposed to process.

IMHO the small benefits of dh_dwz are not worth the constant extra work
it causes, and it should be dropped from the standard sequence in dh.

Dropping dh_dwz from the standard sequence in dh could also be done
in the compat levels 12 and 13 since such a change should not cause
user-visible changes (except for a slight size increase of -dbgsym)

Ignoring errors from dh_dwz by default might work if we can trust
that dwz does not touch the file in case of errors, but it feels
wrong to ignore errors.


[1] https://codesearch.debian.net/search?q=override_dh_dwz&literal=1
[2] https://sources.debian.org/src/qt6-base/6.2.4%2Bdfsg-10~bpo11%2B1/debian/rules/#L97
[3] https://sources.debian.org/src/qtcreator/8.0.0-2/debian/rules/#L66
[4] https://bugs.debian.org/1016329
[5] https://bugs.debian.org/1016330


Reply to: