DWZ 0.15 released
Mark Wielaard
mark@klomp.org
Fri Nov 4 01:06:37 GMT 2022
DWZ 0.15 has been released.
dwz - DWARF optimization and duplicate removal tool
dwz is a program that attempts to optimize DWARF debugging
information contained in ELF shared libraries and ELF executables
for size, by replacing DWARF information representation with
equivalent smaller representation where possible and by reducing the
amount of duplication using techniques from DWARF standard appendix
E - creating DW_TAG_partial_unit compilation units (CUs) for
duplicated information and using IDW_TAG_imported_unit to import it
into each CU that needs it.
You can download dwz from the sourceware FTP server here:
https://sourceware.org/ftp/dwz/releases/
ftp://sourceware.org/pub/dwz/releases/
The vital stats:
Size md5sum Name
188KiB f99770d7d176001951a592fdcb0a788c dwz-0.15.tar.gz
147KiB d2867986d0df78bfbc22587628873fae dwz-0.15.tar.xz
There is a web page for DWZ at:
https://sourceware.org/dwz/
DWZ 0.15 includes the following changes and enhancements:
* Uses xxHash hashing algorithm. A 8% ~ 14% speedup.
* Set endianity of multifile using -e, --multifile-endian.
* Set pointer size of multifile using -p, --multifile-pointer-size
* Process files in parallel using -j N --jobs N. The default is
processors / 2. Disabled when multifile is used.
* Prints abbrev or DIE offset for Unknown DWARF error messages.
* All testcases have been updated to work against the binutils 2.39.
= git shortlog =
Lv Ying (1):
Fix handling readelf following links by default
Mark Wielaard (11):
Mark and init shstrtab[_len] and const in optimize_multifile
Workaround binutils readelf following and printing alt file.
Print abbrev or DIE offset for Unknown DWARF error message.
Remove double semicolon
Always assign svalue when checking and reporting negative values
Redirect stder in gdb-add-index.sh test
do-release.sh: Create signed annotated tags
gen-copyright-years.sh skip native.c
Check -DXXH_INLINE_ALL works, otherwise link against libxxhash
Add .note.GNU-stack in dwarf.exp generated files
Bump version to 0.15
Martin Liška (6):
Fix UBSAN reported for Libreoffice so files
testsuite: verify directly merged DW_AT_declarations
testsuite: remove leading spaces
Use xxHash hashing algorithm.
Use grep -E instead of egrep.
Fix executable stack warning from linker
Tom de Vries (56):
Add --devel-no-checksum-cycle-opt
Add --devel-progress-mem
Release process improvements
Break up main
Make some variables and functions static
Remove USED and UNUSED annotations
Fix ubsan triggered in gdb-add-index.sh
Fix another reference from PU to CU for odr
Handle reordered dup chains in create_import_tree
Print cu_offset for --devel-dump-pus
Add --devel-skip-producer
Make main more readable
[testsuite] Fix pr27463.sh on riscv64
Factor out args.c and args.h
Change files var in main to char **
[testsuite] Handle readelf following links by default
Make smaller-than.sh match dwz heuristic
[testsuite] Remove smaller-than.sh test in pr24747.sh
Factor out dwz_files_1
Factor out dwz_with_low_mem
[testsuite] Show error output in twice-multifile.sh
Fix low-mem memory leak
Fix memory leak in write_multifile
Fix memory leak in build_abbrevs
Move hardlink handling out of dwz function
Fix uninitialized var in dwz_one_file
Add check-valgrind
Don't use argv[0] in usage
Add -5 to usage header
Add --multifile-pointer-size <n> and --multifile-endian <l|L|b|B>
Process files in parallel
Add -p auto and -e auto
Factor out {encode,decode}_child_exit_status
Run two-files-low-mem-die-limit-0.sh with -j1
Add low_mem_p to struct file_result
Factor out wait_child_exit
Initialize pids in dwz_files_1
Factor out wait_children_exit
Use goto in dwz_files_1
Do finalize-multifile in parallel
Minimize struct file_result
Calculate workset before serial/parallel code in dwz_files_1
Fix incorrect res arg for wait_child_exit
Add ret to struct file_result
Handle skip_multifile in encode/decode_child_exit_status
Apply multifile_force_{ptr_size,endian} ASAP
Use vars to name parallel parts in dwz_files_1
Enable parallel multifile with -e -p
[testsuite] Fix handling of missing section in smaller-than.sh
Ensure help message lines end with dot
Factor out common flags between dwz and dwz-for-test
Eliminate sed usage in building dwz-for-test
Add util.h
Factor out pool.{c,h}
Add -p native and -e native
Introduce struct pipe
More information about the Dwz
mailing list