<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - MC should support writing two object files for split dwarf"
   href="https://bugs.llvm.org/show_bug.cgi?id=37466">37466</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>MC should support writing two object files for split dwarf
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>MC
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>peter@pcc.me.uk
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Currently, -gsplit-dwarf is implemented by using MC to create an object file,
and then using objcopy to split it in two. This has a few disadvantages:

- makes it hard to store symbol metadata (such as address-significance) that
refers to symbols by symbol table index, since objcopy can and will change the
order of the symbols in the symbol table
  - it's possible to store the information in such a way that a linker can
recognize that objcopy has operated on the object file and ignore the
information if that is the case, but that won't do any good if objcopy runs on
every file
- means that every user of split dwarf needs to know how to use objcopy to
split the file, including libraries (such as the LTO library; see
<a href="https://reviews.llvm.org/D44792">https://reviews.llvm.org/D44792</a>)
- is probably also slower than writing the files directly.

Instead, we should teach MC to write two object files, one with non-.dwo
sections and the other with .dwo sections.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>