bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/23310] New: Support DWARF-5 line table features in assembler


From: paul_robinson at playstation dot sony.com
Subject: [Bug gas/23310] New: Support DWARF-5 line table features in assembler
Date: Mon, 18 Jun 2018 17:27:50 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=23310

            Bug ID: 23310
           Summary: Support DWARF-5 line table features in assembler
           Product: binutils
           Version: unspecified
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gas
          Assignee: unassigned at sourceware dot org
          Reporter: paul_robinson at playstation dot sony.com
  Target Milestone: ---

DWARF-5 has two line-table features that are probably best handled by
extensions to the .file directive in the assembler.

(a) provide an MD5 checksum of the source file, as a more reliable way
    to verify whether the source file has changed since compilation.
(b) explicitly provide the root source file as "file #0" in the file
    table, making the line table fully independent of the .debug_info
    section.

The existing .file directive syntax is:

    .file filenumber [ "directory" ] "path"

To support MD5 checksums computed by the compiler, I propose making
the syntax be

    .file filenumber [ "directory" ] "path" [ md5 checksum ]

where 'md5' is a keyword and checksum is the 128-bit integer checksum,
which can be expressed in the same ways that the .octa directive allows.

If all .file directives provide an MD5 checksum, then the line-table
header will include the provided values using DW_LNCT_MD5.
If not all .file directives provide the MD5 clause, then DW_LNCT_MD5
should be omitted (as DWARF does not provide a way to give MD5 values
for some files but not others in the same compilation unit).

To support the root file, I propose that the filenumber is allowed to 
have the value 0 (currently must be >= 1).  If no ".file 0" appears,
then replicate the file #1 entry as file #0.  This permits the same
assembler source to be used to generate either DWARF-4 or DWARF-5
without complaint.

I have implemented these features in the LLVM assembler.
In response to a question on the binutils list, no I am not offering
to implement the features in the GNU assembler.  But it seems like a
good idea for both assemblers to support the same syntax.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]