[PATCH] D7642: Introduce the idea of a minimum libc version

David Majnemer via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 13 07:34:30 PDT 2015

majnemer added a comment.

In http://reviews.llvm.org/D7642#223489, @compnerd wrote:

> Okay, if thats the general pattern, then we can stick it in the triple.  Though, that means that the use of the triple for determining the MS compatibility needs to be undone.  If the version in the triple is the libc version, then it can differ from the MS compatibility version.  The target platform may be different from the compiler version (IIRC, thats the terminology that Visual Studio uses).

Before VS 2013, Visual C++ shiped a msvcrt and compiler in tandem which would mean that the version of the compiler and library should be the same, no?

After VS 2013, things get a bit more confusing. There is ucrt which lives in the PSDK + msvcrt which lives in the MSVC SDK.

If I understand things correctly, the following are true:

- ucrt forms a stable interface, no exported functions can be removed
- ucrt could, in theory, grow additional functionality
- msvcrt will continue to change but must assume a base line ucrt, it might have to work with the ucrt included with Windows 10 many years after the fact

AFAICT, the compiler is only concerned about the version-to-version contents of msvcrt and not ucrt because ucrt is essentially unchanging.  This indicates, to me, that we are still concerned with the compiler version.



More information about the cfe-commits mailing list