Re: ELF section/file compression

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

 



On 10/6/20 3:59 PM, Mark Wielaard wrote:
> Hi,
>
> Changing subject because this has nothing to do with that Change
> Proposal anymore.
>
> On Tue, Oct 06, 2020 at 01:49:13PM -0600, Jeff Law wrote:
>> However, I think it's perfectly valid to discuss zstd if folks wanted to
>> change the compression scheme for debug sections.  In fact, I'd claim
>> sticking with zlib, gzip,  bzip2, xz, 7z, etc is unwise.  The world has
>> moved and zstd seems like the place we should be.  In fact, we use it
>> for various things within GCC already.
> Personally I must admit that I am not really a fan of using ELF
> section/file compression. It makes it impossible to simply mmap the
> data in or to quickly read just a tiny bit because you first have to
> decompress (and allocate new memory) for it. IMHO .debug files are no
> different from other ELF files for which we would also not do this. We
> can just use rpm package compression to reduce the distro distribution
> size, but we should not (re)compress the install/on-disk files. That
> will just mean programs will create an extra cache of uncompressed
> files they need to consult frequently.

I'm not taking a position on whether or not we compress sections.  My
position is that if we're compressing them, then zstd seems like a
better solution than the others mentioned.  I certainly understand the
desire to just mmap in the stuff and move on.


[ ... ]

Secondly you can use ELF section compression. The ELF spec leaves room
> for adding new compression algorithms. The Chdr struct(s) contain a
> ch_type which describes the algorithm. Currently only one is
> specified, but there is a lot of room for expansion:
>
> /* Legal values for ch_type (compression algorithm).  */
> #define ELFCOMPRESS_ZLIB        1          /* ZLIB/DEFLATE algorithm.  */
> #define ELFCOMPRESS_LOOS        0x60000000 /* Start of OS-specific.  */
> #define ELFCOMPRESS_HIOS        0x6fffffff /* End of OS-specific.  */
> #define ELFCOMPRESS_LOPROC      0x70000000 /* Start of processor-specific.  */
> #define ELFCOMPRESS_HIPROC      0x7fffffff /* End of processor-specific.  */
>
> So you could propose something on gnu-gabi@xxxxxxxxxxxxxx for a GNU
> extension or at generic-abi@xxxxxxxxxxxxxxxx for a generic ELF one.
> And then get the ELF processing tools to adopt the new compression
> type.

ohhh, I didn't know it was baked in at this level.  Yea, if we're going
to do section compression with zstd, then it's clearly best to get it
officially supported at the ABI level.


jeff
_______________________________________________
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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux