<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 - LLD fails to link LTO builds with in-memory ELF objects larger than 4 GiB"
   href="https://bugs.llvm.org/show_bug.cgi?id=45289">45289</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>LLD fails to link LTO builds with in-memory ELF objects larger than 4 GiB
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lld
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </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>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>ELF
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>orivej@gmx.fr
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, smithp352@googlemail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=23275" name="attach_23275" title="Support large intermediate in-memory ELF object">attachment 23275</a> <a href="attachment.cgi?id=23275&action=edit" title="Support large intermediate in-memory ELF object">[details]</a></span>
Support large intermediate in-memory ELF object

LLD allocates memory for the intermediate native ELF objects in SmallVector
[1], and SmallVector aborts when it grows beyond 4 GiB [2].

The attached simple patch fixes this issue. If it looks reasonable I can send
it for review.

(For the record, the binary in question takes 1.5 hours and 80 GB of RAM to
link with full LTO and becomes 2.5 GB large including debug info.)

[1] <a href="https://github.com/llvm/llvm-project/blob/bfa9ce1cb/lld/ELF/LTO.cpp#L264">https://github.com/llvm/llvm-project/blob/bfa9ce1cb/lld/ELF/LTO.cpp#L264</a>
[2]
<a href="https://github.com/llvm/llvm-project/blob/bfa9ce1cb/llvm/lib/Support/SmallVector.cpp#L45">https://github.com/llvm/llvm-project/blob/bfa9ce1cb/llvm/lib/Support/SmallVector.cpp#L45</a></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>