[cfe-dev] Building latest llvm/clang targeting mingw-64/gcc-6.2 on Windows

Edward Diener via cfe-dev cfe-dev at lists.llvm.org
Fri Dec 23 07:04:12 PST 2016

I am building clang from source on Windows using CMake, Ninja, and 
mingw-64/gcc-6.2. I am building in Release mode ( CMAKE_BUILD_TYPE = 
Release ).

When I build with the x64 version of mingw-64/gcc-6.2 with a triple of 
x86_64-w64-mingw32 ( LLVM_DEFAULT_TARGET_TRIPLE = x86_64-w64-mingw32 ),
everything builds fine and I can produce clang that works properly with 
a 64-bit compilation using the 64-bit version of mingw-64/gcc-6.2.

When I build with the x32 version of mingw-64/gcc-6.2 with a triple of 
i686-pc-mingw32  ( LLVM_DEFAULT_TARGET_TRIPLE = i686-pc-mingw32 ),
the build fails with:

[8/1856] Building AArch64GenSubtargetInfo.inc...
FAILED: lib/Target/AArch64/AArch64GenSubtargetInfo.inc.tmp
cmd.exe /C "cd /D 
&& C:\Programming\VersionControl\bninja_clang\bin\llvm-tblgen.exe 
-I E:/Programming/VersionControl/llvm/lib/Target/AArch64 -I 
-I E:/Programming/VersionControl/llvm/lib/Target 
Wrote crash dump file 
0x004EFB0A (0x0166FA48 0x00000007 0x63724141 0x00343668)
0x03172858 (0x77CEE172 0x769B0100 0x00000000 0x00000008) <unknown module>
0x77CEE40C (0x001F9A18 0x004F51D0 0x005F40CC 0x00000000), 
RtlInitUnicodeString() + 0x164 bytes(s)
0x005CD6B1 (0x0000000B 0x001F99E0 0x001F2B50 0x00000000)
0x004013E2 (0x7EFDE000 0x0166FFD4 0x77CF9902 0x7EFDE000)
0x768E336A (0x7EFDE000 0x73B4F3DA 0x00000000 0x00000000), 
BaseThreadInitThunk()+ 0x12 bytes(s)
0x77CF9902 (0x004014E0 0x7EFDE000 0x00000000 0x00000000), 
RtlInitializeExceptionChain() + 0x63 bytes(s)
0x77CF98D5 (0x004014E0 0x7EFDE000 0x00000000 0x00000000), 
RtlInitializeExceptionChain() + 0x36 bytes(s)
[9/1856] Building AMDGPUGenMCPseudoLowering.inc...
ninja: build stopped: subcommand failed.

I notice that AArch64 is listed as a target type even when building with 
a 32-bit compiler and am guessing that this is what is causing the build 
to fail.

Is this an LLVM problem or a clang problem ?

How can I get someone to correct this in the CMake files in the 
LLVM/clang project ?

Is there some way I myself can tell CMake to not build for the AArch64 
target ?

More information about the cfe-dev mailing list