<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 - Creating a dep file"
   href="https://bugs.llvm.org/show_bug.cgi?id=42806">42806</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Creating a dep file
          </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>All
          </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>ELF
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>ruiu@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, peter.smith@linaro.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Clang and GCC have a feature (`-MD` flag) to create a dependency file in a
format that `make` command can read, so that you don't have to manually
maintain dependencies between .c files and .h files.

There's no corresponding feature in the linker. Maybe that feature is useful
for the linker.

Usually, programmers pass all object files to a linker, so they write a
Makefile (or an equivalent) as such. However, there are more files that are
linked to a final executable. One example is library files in the system
directory. If they are updated, and if you statically-link everything, it is (I
think) a valid claim that a previously-generated executable is now stale. So is
true for libraries for sanitizers -- if you replace `libasan` for example, your
executable becomes stale, but that dependency is not usually expressed in a
Makefile, as you usually only have to pass `-fsanitize` to the compiler.</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>