Bug #12934
closedMake compressed debug section optional
Description
r56445 introduces "--compress-debug-sections=zlib" flag to compress the debug section. Unfortunately, it seems that the compressed sections are not well handled by RPM. Ruby package build log now contains plenty of messages such as:
/usr/lib/rpm/debugedit: /builddir/build/BUILDROOT/ruby-2.4.0-0.1.r56693.fc26.x86_64/usr/lib64/libruby.so.2.4.0: DWARF version 0 unhandled
I am afraid, that the debug sections are not properly stripped of and moved into -debuginfo subpackages as the should.
I opened discussion about this on Fedora devel ML 1, but the only suggestion I get so far was to revert this patch. Since I don't think carrying patches around is good idea, would it be possible to make this configurable? I am also asking RPM guys if they can add support for the compressed debug sections.
Updated by vo.x (Vit Ondruch) about 8 years ago
Forgot to link the RPM ticket: https://bugzilla.redhat.com/show_bug.cgi?id=1394759
Updated by vo.x (Vit Ondruch) about 8 years ago
I am just extracting some bits of discussion in the RPM 1 ticket:
--- Additional comment from Mark Wielaard on 2016-11-14 13:36:50 CET ---
--compress-debug-sections=zlib doesn't really make sense when using dwz. And various tools don't support it anyway. It causes slow startup of tracing, performance or debugging tools using more memory.
elfutils 0.165+ does support compressed debug sections (both the new gabi zlib and gnu zlib styles) but dwz doesn't.
On Fedora binutils compressed debug sections are disabled by default, so it shouldn't be an issue there. If you are seeing this issue on Fedora then it is a bug in the binutils package (or the package/build accidentally enabled it).
In other cases it is probably best to just always make sure the sections are uncompressed running eu-elfcompress --type=none FILE.
--- Additional comment from Mark Wielaard on 2016-11-14 16:21:15 CET ---
(In reply to Vít Ondruch from comment #5)
> > > > In other cases it is probably best to just always make sure the sections are
> > > > uncompressed running eu-elfcompress --type=none FILE.
> > >
> > > Why this is not done by default, if the tooling discovers there is
> > > compressed debug info?
> >
> > Because most tooling doesn't deal with compressed ELF sections. Compressed
> > ELF sections and eu-elfcompress is relatively new (only a couple of months
> > since the first stable release). So it never has been an issue.
> > And if people do use compressed ELF sections it exposes issues like this.
>
> So my question is will you eventually support this (i.e. keep this RFE
> open), or are you going to reject this based on the statement below? :)
>
> > Personally I would encourage people to disable and ignore it.
The real "fix" would be to get all tools, like dwz in this case, to handle it. Adding an eu-elfcompress --type=none call for all files that rpm might feed to tools that manipulate ELF files is kind of a kludge IMHO. Better done at the package level if they have to deal with compressed ELF sections anyway. But maybe the rpm maintainers might decide that is a good thing. I won't close this RFE myself.
Updated by nobu (Nobuyoshi Nakada) about 8 years ago
- Status changed from Open to Closed
Applied in changeset r56812.
configure.in: compressed debug section option
- configure.in: make compressed debug section optional.
[ruby-core:78121] [Bug #12934]
Updated by vo.x (Vit Ondruch) almost 8 years ago
Thx for implementing this. --with-compress-debug-sections=no
seems to disable the compression of debug sections.