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

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 29 08:46:29 PDT 2018


On Thu, Mar 29, 2018 at 8:27 AM <paul.robinson at sony.com> wrote:

> To pass the MD5 checksum to the assembler, I added a new optional clause
> to the .file directive:
>
> md5 "checksum"
>
> where checksum is the 16-byte checksum in hex.  It's quoted because the
> assembler doesn't have a way to parse a 16-byte integer.
>

I'd guess, long-term, that's probably not a great motivation for choosing
pseudo-standardized syntax.


>   Also this is the same syntax Reid invented for the CodeView equivalent.
>
>
>
> To convey the root source filename, I allow the file number on the .file
> directive to have file number 0.  There is special handling in the
> AsmParser to allow accepting ".file 0" when we're not actually emitting
> DWARF 5, the root source file is kept in a separate field and not in the
> normal file table.  If MC does emit a v5 .debug_line section, then it dumps
> that file entry first before the rest of the file table.
>

So .file 0 is accepted and ignored pre-5? & that's to support some
weird/old assembly?


>  I've addressed the latest can't-build-Linux revert of my patch by
> suppressing both the md5 clause and '.file 0' for pre-v5.  That way the
> feature is there for people experimenting with v5, but should not interfere
> with anybody else.  I'll commit that later this morning.
>
>
>
> Regarding the discussion, it might be that dwarf-discuss is a better
> venue, because GCC people will be on that list who care about DWARF.  Let
> me know what you think.
>

Yeah, I'm guessing that might be useful - could see how this conversation
goes for a little bit.

- Dave


> --paulr
>
>
>
> *From:* David Blaikie [mailto:dblaikie at gmail.com]
> *Sent:* Thursday, March 29, 2018 10:59 AM
> *To:* Robinson, Paul; Eric Christopher; Adrian Prantl; Jonas Devlieghere
> *Cc:* llvm-dev at lists.llvm.org
> *Subject:* Re: [llvm-dev] [DWARFv5] Assembler syntax for new line-table
> features
>
>
>
> +Eric Christopher <echristo at gmail.com>  +Adrian Prantl <aprantl at apple.com>
>  +Jonas Devlieghere <jdevlieghere at apple.com> (seems Jonas is doing a
> bunch of debug info work - guessing he's working with you, Adrian?)
>
> I'm guessing Eric's the most likely to have contacts over in GCC land to
> maybe bridge the gap when talking about assembly syntax across the two.
> Eric - any ideas how best to negotiate this pseudo-standard? (there's
> another feature or two I'd like to propose too - at least to standardize
> what the syntax /should/ be, even if gas doesn't support it immediately)
>
> Paul - perhaps a brief description of the proposed syntax would be helpful
> to get the ball rolling (even if it's just discussing it amongst ourselves
> before it ends up in a cross-project discussion).
>
> - Dave
>
> On Wed, Mar 28, 2018 at 11:16 AM via llvm-dev <llvm-dev at lists.llvm.org>
> wrote:
>
> 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
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180329/74409094/attachment.html>


More information about the llvm-dev mailing list