<div dir="ltr"><div>Taking another shot at building Python with clang-cl, this time going by the SVN version, using the following commands</div><div><br></div><div>cd \python-2.7.10\pcbuild</div><div>rd /q /s amd64</div><div>rd /q /s win32-temp-debug</div><div>rd /q /s win32-temp-release</div><div>rd /q /s x64-temp-debug</div><div>rd /q /s x64-temp-release</div><div>set Platform=X64</div><div>msbuild /t:clean,build /p:Configuration=Release /p:CLToolExe=clang-cl.exe /p:CLToolPath=c:\llvm-svn\build\Release\bin\ /p:TrackFileAccess=false /p:Platform="x64" /fileLogger pcbuild.sln</div><div><br></div><div>It seems to generate an invalid object file from one particular source file, kill_python.c. This is the output when compiling that file</div><div><br></div><div>  c:\llvm-svn\build\Release\bin\clang-cl.exe /c /I..\Include /I..\PC /Zi /nologo /W3 /WX- /O2 /Ob1 /Oi /GL /D _WIN64 /D _M_X64 /D NDEBUG /D _WIN32 /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"C:\Python-2.7.10\PCbuild\x64-temp-Release\kill_python\\" /Fd"C:\Python-2.7.10\PCbuild\x64-temp-Release\kill_python\vc120.pdb" /Gd /TC /errorReport:queue /USECL:MS_OPTERON /GS- kill_python.c</div><div>clang-cl.exe : warning : argument unused during compilation: '/Gm-' [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>clang-cl.exe : warning : argument unused during compilation: '/GS' [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>  In file included from <built-in>:299:</div><div><command line>(6,12): warning : extra tokens at end of #undef directive [-Wextra-tokens] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>  #undef SECL:MS_OPTERON</div><div>             ^</div><div>             //</div><div>kill_python.c(46,60): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>          printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError());</div><div>                                                      ~~     ^~~~~~~~~~~~~~</div><div>                                                      %lu</div><div>kill_python.c(51,50): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>          printf("Module32FirstW[1] failed: %d\n", GetLastError());</div><div>                                            ~~     ^~~~~~~~~~~~~~</div><div>                                            %lu</div><div>kill_python.c(73,9): warning : comparison of array 'path' equal to a null pointer is always false [-Wtautological-pointer-compare] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>      if (path == NULL) {</div><div>          ^~~~    ~~~~</div><div>kill_python.c(93,60): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>          printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError());</div><div>                                                      ~~     ^~~~~~~~~~~~~~</div><div>                                                      %lu</div><div>kill_python.c(98,48): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>          printf("Process32FirstW failed: %d\n", GetLastError());</div><div>                                          ~~     ^~~~~~~~~~~~~~</div><div>                                          %lu</div><div>kill_python.c(132,54): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>              printf("Module32FirstW[2] failed: %d\n", GetLastError());</div><div>                                                ~~     ^~~~~~~~~~~~~~</div><div>                                                %lu</div><div>kill_python.c(150,52): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>                  printf("OpenProcess failed: %d\n", GetLastError());</div><div>                                              ~~     ^~~~~~~~~~~~~~</div><div>                                              %lu</div><div>kill_python.c(157,57): warning : format specifies type 'int' but the argument has type 'DWORD' (aka 'unsigned long') [-Wformat] [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div>                  printf("TerminateProcess failed: %d\n", GetLastError());</div><div>                                                   ~~     ^~~~~~~~~~~~~~</div><div>                                                   %lu</div><div>  9 warnings generated.</div><div><br></div><div>And the link error message</div><div><br></div><div>  C:\Python-2.7.10\PCbuild\x64-temp-Release\kill_python\kill_python.obj : fatal error LNK1107: invalid or corrupt file: cannot read at 0x1A44 [C:\Python-2.7.10\PCbuild\kill_python.vcxproj]</div><div><br></div><div>I tried dumpbin on kill_python.obj, and dumpbin agrees it's an invalid object file.</div></div>