<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </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 does not accept dot assignment in an output section"
   href="https://llvm.org/bugs/show_bug.cgi?id=28720">28720</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>lld does not accept dot assignment in an output section
          </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>FreeBSD
          </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>emaste@freebsd.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Blocks</th>
          <td>23214
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>FreeBSD/amd64's kernel ldscript assigns . in an output section like so:

     6  SECTIONS
     7  {
   ...
   146    .bss            :
   147    {
   148     *(.dynbss)
   149     *(.bss .bss.* .gnu.linkonce.b.*)
   150     *(COMMON)
   151     /* Align here to ensure that the .bss section occupies space up to
   152        _end.  Align after .bss to ensure correct alignment even if the
   153        .bss section disappears because there are no input sections.
   154        FIXME: Why do we need it? When there is no .bss section, we don't
   155        pad the .data section.  */
   156     . = ALIGN(. != 0 ? 64 / 8 : 1);
   157    }

lld's parser does not accept this:

line 156: unknown command .
   . = ALIGN(. != 0 ? 64 / 8 : 1);
   ^

For FreeBSD's uses we could just move the assignment out of that section but
perhaps this is more commonly needed?</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>