<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 --- - Can no longer build with mingw-w64 using win32 threads"
   href="https://llvm.org/bugs/show_bug.cgi?id=26365">26365</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Can no longer build with mingw-w64 using win32 threads
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

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

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

        <tr>
          <th>OS</th>
          <td>Windows NT
          </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>new bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>alex@crichton.co
          </td>
        </tr>

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

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The mingw-w64 toolchains generally come with two different threading models.
One is straight bindings to the win32 threading APIs, and the other is a
pthread threading model (with a pthreads-like interface). Over in Rust-land we
tend to prefer the win32 toolchain because the generated binaries won't have a
dependency on libpthread.dll.

With LLVM 3.8, however, the mingw-w64 toolchains with the win32 threading model
can no longer build LLVM. This is unfortunately because the `std::thread` type
only exists in the pthreads toolchain, not in the win32 one.

We'd love to stick with the win32 toolchain if possible (fewer runtime
dependencies of the compiler), so I was wondering a few things:

* Has anyone else run into this yet? If so, sorry for the noise!
* Would it be possible to support the win32 mingw-w64 toolchains? Unfortunately
the only way I know of to do this would be to not use `std::thread` (which I
suspect is quite nice to use...)
* Would it be possible to #define away the support that requires `std::thread`?
We probably don't need this class and/or the support it enables in Rust, so if
we could just not build this part that'd also work for us!</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>