Hi! This patch adds dwz -m DWARF extensions. See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open for more details and http://sourceware.org/git/?p=dwz.git;a=shortlog;h=refs/heads/multifile for the tool that creates it. Compared to the DWARF5 proposal, this is so far implemented as a GNU extension, using different form values. In the GNU implementation, there is a .gnu_debugaltlink section, which contains a zero terminated filename (should be either absolute filename, or filename relative to the directory in which the file with .gnu_debugaltlink section resides) followed by build-id (SHA1 checksum of the debugging sections). Tom Tromey wrote gdb support for these extensions at http://sources.redhat.com/git/?p=archer.git;a=shortlog;h=refs/heads/archer-tromey-dwz-multifile
Ok for trunk? 2012-06-08 Jakub Jelinek <ja...@redhat.com> * dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New forms. * dwarf2.h (enum dwarf_macro_record_type): Add DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt and DW_MACRO_GNU_transparent_include_alt. --- include/dwarf2.def.jj 2012-05-02 20:33:43.000000000 +0200 +++ include/dwarf2.def 2012-05-10 08:23:55.912919813 +0200 @@ -205,6 +205,10 @@ DW_FORM (DW_FORM_ref_sig8, 0x20) /* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */ DW_FORM (DW_FORM_GNU_addr_index, 0x1f01) DW_FORM (DW_FORM_GNU_str_index, 0x1f02) +/* Extensions for DWZ multifile. + See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */ +DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20) +DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21) DW_END_FORM DW_FIRST_AT (DW_AT_sibling, 0x01) --- include/dwarf2.h.jj 2012-05-09 20:15:32.000000000 +0200 +++ include/dwarf2.h 2012-05-14 12:16:37.414204203 +0200 @@ -333,6 +333,9 @@ enum dwarf_macro_record_type DW_MACRO_GNU_define_indirect = 5, DW_MACRO_GNU_undef_indirect = 6, DW_MACRO_GNU_transparent_include = 7, + DW_MACRO_GNU_define_indirect_alt = 8, + DW_MACRO_GNU_undef_indirect_alt = 9, + DW_MACRO_GNU_transparent_include_alt = 10, DW_MACRO_GNU_lo_user = 0xe0, DW_MACRO_GNU_hi_user = 0xff }; Jakub