From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 332D83857807; Mon, 8 Mar 2021 12:43:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 332D83857807 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tdevries@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 4623FAC54; Mon, 8 Mar 2021 12:43:13 +0000 (UTC) From: Tom de Vries Subject: DWZ 0.14 released To: Jakub Jelinek , Mark Wielaard , Tom de Vries , dwz@sourceware.org, gcc@gcc.gnu.org, gdb@sourceware.org, lldb-dev@lists.llvm.org, dwarf-discuss@lists.dwarfstd.org Message-ID: <9f72f4e2-10b8-ac32-565e-b96314911d66@suse.de> Date: Mon, 8 Mar 2021 13:43:11 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: dwz@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Dwz mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Mar 2021 12:43:16 -0000 Hi, DWZ 0.14 has been released. 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 184KiB cf60e4a65d9cc38c7cdb366e9a29ca8e dwz-0.14.tar.gz 144KiB 1f1225898bd40d63041d54454fcda5b6 dwz-0.14.tar.xz There is a web page for DWZ at: https://sourceware.org/dwz/ DWZ 0.14 includes the following changes and enhancements: * DWARF 5 support. The tool now handles most of DWARF version 5 (at least everything emitted by GCC when using -gdwarf-5). Not yet supported are DW_UT_type units (DWARF 4 .debug_types are supported), .debug_names (.gdb_index is supported) and some forms and sections that are only emitted by GCC when generating Split DWARF (DW_FORM_strx and .debug_str_offsets, DW_FORM_addrx and .debug_addr, DW_FORM_rnglistx and DW_FORM_loclistsx). https://sourceware.org/PR24726 * .debug_sup support. DWARF Supplementary Object Files (DWARF 5, section 7.3.6) can now be generated when using the --dwarf-5 option. To keep compatibility with existing DWARF consumers this isn't the default yet. Without the --dwarf-5 option instead of a .debug_sup section dwz will generate a .gnu_debugaltlink section and will use DW_FORM_GNU_strp_alt and DW_FORM_GNU_reg_alt, instead of DW_FORM_strp_sup and DW_FORM_ref_sup * An experimental optimization has been added that exploits the One-Definition-Rule of C++. It's enabled using the --odr option, and off by default. This optimization causes struct/union/class DIEs with the same name to be considered equal. The optimization can be set to a lower aggressiveness level using --odr-mode=basic, to possibly be able to workaround problems without having to switch off the optimization altogether. * The clean-up of temporary files in hardlink mode has been fixed. * The DIE limits --low-mem-die-limit / -l and --max-die-limit / -L can now be disabled using respectively -l none and -L none. Note that -l none disables the limit, whereas -l 0 sets the limit to zero. * The usage message has been: - updated to show that -r and -M are exclusive. - updated to show at -v and -? cannot be combined with other options. - extended to list all options in detail. - restyled to wrap at 80 chars. * An option --no-import-optimize was added that switches off an optimization that attempts to reduce the number of DW_TAG_imported_unit DIEs. This can be used f.i. in case the optimization takes too long. * A heuristic has been added that claims more memory earlier (without increasing the peak memory usage) to improve compression time. * A heuristic has been added that estimates whether one of the two DIE limits will be hit. If so, it will do an exact DIE count to verify this. If the exact DIE count finds that the low-mem DIE limit is indeed hit, processing is done in low-mem mode from the start, rather than processing in regular mode first. If the exact DIE count finds that the max DIE limit is indeed hit, processing is skipped altogether. * Various other performance improvements. * A case where previously we would either hit the assertion "dwz: dwz.c:9461: write_die: Assertion `refd != NULL' failed" (in regular mode) or a segmentation fault (in low-mem mode), now is handled by "dwz: Couldn't find DIE at DW_FORM_ref_addr offset 0x". * A case where a reference from a partial unit to a compile unit was generated has been fixed. This could happen if a DIE was referenced using a CU-relative DWARF operator. * A case has been fixed for low-mem mode where instead of issuing "dwz: Couldn't find DIE referenced by DW_OP_GNU_implicit_pointer" dwz would run into a segfault instead. * A multi-file case where we run into ".debug_line reference above end of section" has been fixed. * The following assertion failures were fixed: - dwz: dwz.c:9310: write_die: Assertion ` value && refdcu->cu_kind != CU_ALT ' failed. - dwz: dwz.c:9920: recompute_abbrevs: Assertion ` off == cu_size ' failed. * The assert condition of this assertion has been fixed: - write_types: Assertion `ref && ref->die_dup == NULL'.