[llvm-dev] [DWARFv5] Assembler syntax for new line-table features

via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 28 11:16:35 PDT 2018


TL;DR: If I'm trying to define new assembler directive syntax to
support DWARF v5, it seems like a good idea for all the various
assemblers out there in the world to support the same syntax.
How would I go about negotiating that syntax with other assembler
providers?  Is GNU as the only really relevant one?

Long version:

DWARF v5 introduces a couple of new features in the .debug_line section
that require assembler syntax, because the information relates to the
files read by the compiler and there's no other way to inform the
assembler.

The two bits of information are:
(1) the MD5 checksum of each source file; and
(2) the primary source filename.

The primary source filename is given in the .debug_info section. In
DWARF v5 this is repeated in the .debug_line section; prior to DWARF v5
it is not.  In both cases, file number 0 refers to this file.  Because
the compiler emits the .debug_info section directly, the assembler is
not aware of the name of the primary source file without some new syntax
to provide that information.  And, it needs the MD5 checksum as well, so
relying on the old-format '.file' directive is insufficient.

I've added support in LLVM for both of these features, but somewhat 
arbitrarily defined assembler syntax to support them.  Obviously if 
implementers of other assemblers also want to support DWARF v5, the same 
information will have to be represented with assembler syntax somehow, 
and of course it would be best if all assemblers supporting DWARF v5 
used the same syntax.  But I don't know how to go about doing that.

Any advice would be welcome.
Thanks,
--paulr



More information about the llvm-dev mailing list