<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 --- - MinGW driver fails to find CRT object files"
   href="https://llvm.org/bugs/show_bug.cgi?id=27722">27722</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>MinGW driver fails to find CRT object files
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>3.8
          </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>Driver
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>bas@abbeygames.com
          </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>Created <span class=""><a href="attachment.cgi?id=16364" name="attach_16364" title="Dockerfile that is used to build the entire toolchain.">attachment 16364</a> <a href="attachment.cgi?id=16364&action=edit" title="Dockerfile that is used to build the entire toolchain.">[details]</a></span>
Dockerfile that is used to build the entire toolchain.

Clang's "new" MinGW driver fails to find the CRT object files and seems to
ignore the fact that x86_64-w64-mingw32.static and x86_64-w64-mingw32 are
different toolchains.

Ran into this while trying to integrate Clang 3.8 with MXE and WClang. The full
bug report can be found on the WClang page:

<a href="https://github.com/tpoechtrager/wclang/issues/22">https://github.com/tpoechtrager/wclang/issues/22</a>

When building a very simple C++ project with wclang, mxe and clang 3.8 the
output of the foloowing command:

w64-clang++ HelloWorld.cpp Hello/Speaker.cpp -ohello_world.exe -IHello -v

results in:

clang version 3.8.0-2ubuntu3 (tags/RELEASE_380/final)
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: /usr/bin
 "/usr/lib/llvm-3.8/bin/clang" -cc1 -triple x86_64-w64-windows-gnu -emit-obj
-mrelax-all -disable-free -disable-llvm-verifier -main-file-name HelloWorld.cpp
-mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno
-masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64
-momit-leaf-frame-pointer -v -dwarf-column-info -debugger-tuning=gdb
-nostdsysteminc -nobuiltininc -resource-dir
/usr/lib/llvm-3.8/bin/../lib/clang/3.8.0 -isystem
/usr/bin/../lib/clang/3.8/include -isystem
/usr/src/mxe/usr/x86_64-w64-mingw32.static/include -isystem
/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-w64-mingw32.static/4.9.3/include/c++
-isystem
/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-w64-mingw32.static/4.9.3/include/c++/x86_64-w64-mingw32.static
-I Hello -internal-isystem /usr/x86_64-w64-mingw32/include/c++
-internal-isystem /usr/x86_64-w64-mingw32/include/c++/x86_64-w64-mingw32
-internal-isystem /usr/x86_64-w64-mingw32/include/c++/backward
-internal-isystem /usr/x86_64-w64-mingw32/include/c++/ -internal-isystem
/usr/x86_64-w64-mingw32/include/c++//x86_64-w64-mingw32 -internal-isystem
/usr/x86_64-w64-mingw32/include/c++//backward -internal-isystem
/usr/include/c++/ -internal-isystem /usr/include/c++//x86_64-w64-mingw32
-internal-isystem /usr/include/c++//backward -internal-isystem include/c++
-internal-isystem include/c++/x86_64-w64-mingw32 -internal-isystem
include/c++/backward -fdeprecated-macro
-fdebug-compilation-dir/usr/src/cmake-hello-world -ferror-limit 19
-fmessage-length 80 -fno-use-cxa-atexit -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o
/tmp/HelloWorld-e12222.o -x c++ HelloWorld.cpp 
clang -cc1 version 3.8.0 based upon LLVM 3.8.0 default target
x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++"
ignoring nonexistent directory
"/usr/x86_64-w64-mingw32/include/c++/x86_64-w64-mingw32"
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++/backward"
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++/"
ignoring nonexistent directory
"/usr/x86_64-w64-mingw32/include/c++//x86_64-w64-mingw32"
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++//backward"
ignoring nonexistent directory "/usr/include/c++//x86_64-w64-mingw32"
ignoring nonexistent directory "/usr/include/c++//backward"
ignoring nonexistent directory "include/c++"
ignoring nonexistent directory "include/c++/x86_64-w64-mingw32"
ignoring nonexistent directory "include/c++/backward"
#include "..." search starts here:
#include <...> search starts here:
 Hello
 /usr/bin/../lib/clang/3.8/include
 /usr/src/mxe/usr/x86_64-w64-mingw32.static/include

/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-
w64-mingw32.static/4.9.3/include/c++

/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-
w64-mingw32.static/4.9.3/include/c++/x86_64-w64-mingw32.static
 /usr/include/c++
End of search list.
 "/usr/lib/llvm-3.8/bin/clang" -cc1 -triple x86_64-w64-windows-gnu -emit-obj
-mrelax-all -disable-free -disable-llvm-verifier -main-file-name Speaker.cpp
-mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno
-masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64
-momit-leaf-frame-pointer -v -dwarf-column-info -debugger-tuning=gdb
-nostdsysteminc -nobuiltininc -resource-dir
/usr/lib/llvm-3.8/bin/../lib/clang/3.8.0 -isystem
/usr/bin/../lib/clang/3.8/include -isystem
/usr/src/mxe/usr/x86_64-w64-mingw32.static/include -isystem
/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-w64-mingw32.static/4.9.3/include/c++
-isystem
/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-w64-mingw32.static/4.9.3/include/c++/x86_64-w64-mingw32.static
-I Hello -internal-isystem /usr/x86_64-w64-mingw32/include/c++
-internal-isystem /usr/x86_64-w64-mingw32/include/c++/x86_64-w64-mingw32
-internal-isystem /usr/x86_64-w64-mingw32/include/c++/backward
-internal-isystem /usr/x86_64-w64-mingw32/include/c++/ -internal-isystem
/usr/x86_64-w64-mingw32/include/c++//x86_64-w64-mingw32 -internal-isystem
/usr/x86_64-w64-mingw32/include/c++//backward -internal-isystem
/usr/include/c++/ -internal-isystem /usr/include/c++//x86_64-w64-mingw32
-internal-isystem /usr/include/c++//backward -internal-isystem include/c++
-internal-isystem include/c++/x86_64-w64-mingw32 -internal-isystem
include/c++/backward -fdeprecated-macro -fdebug-compilation-dir
/usr/src/cmake-hello-world -ferror-limit 19 -fmessage-length 80
-fno-use-cxa-atexit -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o /tmp/Speaker-1d92c1.o -x c++
Hello/Speaker.cpp
clang -cc1 version 3.8.0 based upon LLVM 3.8.0 default target
x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++"
ignoring nonexistent directory
"/usr/x86_64-w64-mingw32/include/c++/x86_64-w64-mingw32"
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++/backward"
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++/"
ignoring nonexistent directory
"/usr/x86_64-w64-mingw32/include/c++//x86_64-w64-mingw32"
ignoring nonexistent directory "/usr/x86_64-w64-mingw32/include/c++//backward"
ignoring nonexistent directory "/usr/include/c++//x86_64-w64-mingw32"
ignoring nonexistent directory "/usr/include/c++//backward"
ignoring nonexistent directory "include/c++"
ignoring nonexistent directory "include/c++/x86_64-w64-mingw32"
ignoring nonexistent directory "include/c++/backward"
#include "..." search starts here:
#include <...> search starts here:
 Hello
 /usr/bin/../lib/clang/3.8/include
 /usr/src/mxe/usr/x86_64-w64-mingw32.static/include

/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-
w64-mingw32.static/4.9.3/include/c++

/usr/src/mxe/usr/x86_64-w64-mingw32.static/include/../../../usr/lib/gcc/x86_64-
w64-mingw32.static/4.9.3/include/c++/x86_64-w64-mingw32.static
 /usr/include/c++
End of search list.
 "/usr/bin/x86_64-w64-mingw32.static-ld" -m i386pep -Bdynamic -o
hello_world.exe crt2.o crtbegin.o
-L/usr/src/mxe/usr/lib/gcc/x86_64-w64-mingw32.static/4.9.3
-L/usr/x86_64-w64-mingw32/lib -L/usr/lib
-L/usr/x86_64-w64-mingw32/sys-root/mingw/lib /tmp/HelloWorld-e12222.o
/tmp/Speaker-1d92c1.o -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex
-lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc
-lmoldname -lmingwex -lmsvcrt crtend.o
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find crt2.o: No such file or
directory
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find crtbegin.o: No such file or
directory
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find -lgcc_s
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find -lgcc_s
/usr/bin/x86_64-w64-mingw32.static-ld: cannot find crtend.o: No such file or
directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

As shown in the output it has trouble locating the crt2.o, etc files. This can
be resolved by installing mingw but mxe and mingw are actually different
toolchains. It also appears to not be able to find gcc_s.

I also attached a docker image that reproduces these issues.</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>