<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 --- - Instructions for obtaining clang in the LibTooling and LibASTMatchers tutorial are confusing and out of date"
   href="https://llvm.org/bugs/show_bug.cgi?id=23128">23128</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Instructions for obtaining clang in the LibTooling and LibASTMatchers tutorial are confusing and out of date
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

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

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

        <tr>
          <th>Component</th>
          <td>Documentation
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>llvm-bugs@justinbogner.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The tutorial at <a href="http://clang.llvm.org/docs/LibASTMatchersTutorial.html">http://clang.llvm.org/docs/LibASTMatchersTutorial.html</a> begins
with instructions on obtaining clang. 

In these instructions, the user is told to configure with "cmake -G Ninja
../llvm -DLLVM_BUILD_TESTS=ON", then install this compiler and use it to
bootstrap clang. There are a couple of problems here:

1. Most distributions have clang packages these days, so if we really just need
the user to use a clang host compiler we should probably say that, rather than
explaining how to bootstrap.

1a. Do we even need clang as a host compiler? Any compiler that can build llvm
and clang should be fine, shouldn't it?

2. This builds clang without any optimizations, making the rest of the steps of
the tutorial *horribly slow*. At least set CMAKE_BUILD_TYPE=Release.

3. What's up with mentioning LLVM_BUILD_TESTS? It's not necessary for anything
in this tutorial, and the check targets build the tests regardless.

It's also kind of dated that we explain how to build make and ninja and claim
that you should build them yourself because current cmake doesn't support
ninja. That hasn't been true for quite a while.</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>