[LLVMdev] [cfe-dev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk

Alex Rosenberg alexr at leftfield.org
Sun Aug 24 07:58:59 PDT 2014


On Aug 23, 2014, at 6:49 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:

> Alex Rosenberg <alexr at leftfield.org> writes:
> 
>> On Aug 23, 2014, at 1:24 PM, Renato Golin <renato.golin at linaro.org> wrote:
>>> 
>>> Also,
>>> compiling Clang with MSVC and making Clang MSVC compatible are two
>>> completely different things. A commercial toolchain based on MSVC
>>> compatibility doesn't necessarily need to be compiled with MSVC
>>> itself.
>> 
>> But it must. If you want to be able to use LLVM DLLs inside a Windows
>> app, it has to be built with MSVC because they have their own C++ ABI.
> 
> This is false. LLVM libraries can be used on C++ Windows applications
> just fine without using MSVC at all.

If the main executable is built with MSVC's C++ ABI, then what are you going to build LLVM with that even links? MinGW doesn't use the MSVC C++ ABI. Clang-cl dosn't generate PDB data. The only available option is MSVC.

>> At some point, Clang will support Microsoft's ABI well enough to
>> consider a bootstrap instead.
> 
> AFAIK Clang bootstraps on MinGW-w64.

MinGW doesn't implement the same C++ ABI at all. It implements the Itanium ABI like we use on every other platform.

> To go back on topic: C++ features advertised by MSVC as recently
> supported usually are too immature to be used on practice. So looking at
> a brochure is not enough when deciding what you gain when you upgrade
> your MSVC install.

Agreed. Let's get back to the original proposal, which was for us to abandon our established policy and drop a version of MSVC that we support in order to use variadic templates to rewrite cl::opt.

Alex





More information about the llvm-dev mailing list