https://sourceware.org/bugzilla/show_bug.cgi?id=27387
--- Comment #13 from Nick Clifton <nickc at redhat dot com> --- Hi Tom, > > .section .debug_macro.dwo,"e",@progbits > > .value 0x4 # DWARF macro version number I think that this may be a clue. It looks like the assembler is creating version 4 .debug_macro.dwo sections, but the DWARF-5 standard only defines version 5 sections. Ie, the assembler is for a proposed GNU extension to DWARF, rather than for an official DWARF-5 version. I think that this matters because of the following bytes: [This is from the second .debug_macro.dwo section in hello.s, as this is simpler): .value 0x4 <= version .byte 0 <= flags .byte 0x5 .uleb128 0x13 .uleb128 0x2a4 According to my reading of section 6.3.1 there ought to be *two* bytes following the flags, and before the first LEB128 value: "The table starts with a 1-byte count of the defined opcodes, followed by an entry for each of those opcodes. Each entry starts with a 1-byte unsigned opcode number ..." And then only one LEB128 value for each entry: "... followed by unsigned LEB128 encoded number of operands and for each operand there is a single unsigned byte describing the form in which the operand is encoded." So basically the encoding sequence used for v4 .debug_macro.dwo sections is completely different from the encoding for v5 sections. Hence I think that we need to find the specification for this v4 type of section. Do you know where it might be found ? I also suspect that the "version 0" errors that we have been seeing are due to the tools trying to interpret these sections as v5 sections, and so getting very confused. Cheers Nick -- You are receiving this mail because: You are on the CC list for the bug.