mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
binutils, gdb: support zstd compressed debug sections
PR29397 PR29563: Add new configure option --with-zstd which defaults to auto. If pkgconfig/libzstd.pc is found, define HAVE_ZSTD and support zstd compressed debug sections for most tools. * bfd: for addr2line, objdump --dwarf, gdb, etc * gas: support --compress-debug-sections=zstd * ld: support ELFCOMPRESS_ZSTD input and --compress-debug-sections=zstd * objcopy: support ELFCOMPRESS_ZSTD input for --decompress-debug-sections and --compress-debug-sections=zstd * gdb: support ELFCOMPRESS_ZSTD input. The bfd change references zstd symbols, so gdb has to link against -lzstd in this patch. If zstd is not supported, ELFCOMPRESS_ZSTD input triggers an error. We can avoid HAVE_ZSTD if binutils-gdb imports zstd/ like zlib/, but this is too heavyweight, so don't do it for now. ``` % ld/ld-new a.o ld/ld-new: a.o: section .debug_abbrev is compressed with zstd, but BFD is not built with zstd support ... % ld/ld-new a.o --compress-debug-sections=zstd ld/ld-new: --compress-debug-sections=zstd: ld is not built with zstd support % binutils/objcopy --compress-debug-sections=zstd a.o b.o binutils/objcopy: --compress-debug-sections=zstd: binutils is not built with zstd support % binutils/objcopy b.o --decompress-debug-sections binutils/objcopy: zstd.o: section .debug_abbrev is compressed with zstd, but BFD is not built with zstd support ... ```
This commit is contained in:
committed by
Fangrui Song
parent
e122316b7c
commit
2cac01e3ff
@@ -2159,21 +2159,23 @@ ELF ABI. Note - if compression would actually make a section
|
||||
@itemx --compress-debug-sections=zlib
|
||||
@itemx --compress-debug-sections=zlib-gnu
|
||||
@itemx --compress-debug-sections=zlib-gabi
|
||||
@itemx --compress-debug-sections=zstd
|
||||
For ELF files, these options control how DWARF debug sections are
|
||||
compressed. @option{--compress-debug-sections=none} is equivalent
|
||||
to @option{--decompress-debug-sections}.
|
||||
@option{--compress-debug-sections=zlib} and
|
||||
@option{--compress-debug-sections=zlib-gabi} are equivalent to
|
||||
@option{--compress-debug-sections}.
|
||||
@option{--compress-debug-sections=zlib-gnu} compresses DWARF debug
|
||||
sections using zlib. The debug sections are renamed to begin with
|
||||
@samp{.zdebug} instead of @samp{.debug}. Note - if compression would
|
||||
actually make a section @emph{larger}, then it is not compressed nor
|
||||
renamed.
|
||||
@option{--compress-debug-sections=zlib-gnu} compresses DWARF debug sections
|
||||
using the obsoleted zlib-gnu format. The debug sections are renamed to begin
|
||||
with @samp{.zdebug}.
|
||||
@option{--compress-debug-sections=zstd} compresses DWARF debug
|
||||
sections using zstd. Note - if compression would actually make a section
|
||||
@emph{larger}, then it is not compressed nor renamed.
|
||||
|
||||
@item --decompress-debug-sections
|
||||
Decompress DWARF debug sections using zlib. The original section
|
||||
names of the compressed sections are restored.
|
||||
Decompress DWARF debug sections. For a @samp{.zdebug} section, the original
|
||||
name is restored.
|
||||
|
||||
@item --elf-stt-common=yes
|
||||
@itemx --elf-stt-common=no
|
||||
|
||||
Reference in New Issue
Block a user