Microsoft Visual Studio 2015 release candidate. This bundle contains msvc-14.0 for which `_MSC_VER` has the value 1900. (1) Patches to byterun/floats.c (a) #if defined (_MSC_VER) # include # if(MSC_VER < 1900) # define isnan _isnan # define isfinite _finite # endif/*(MSC_VER <= 1900)*/ #endif /*defined(_MSC_VER)*/ (b) void caml_init_ieee_floats(void) { ... #if defined(_MSC_VER) &&_MSC_VER < 1900 _set_output_format(_TWO_DIGIT_EXPONENT); #endif/*defined(_MSC_VER) &&_MSC_VER < 1900*/ } (2) Patch to byterun/misc.h /* snprintf emulation for Win32 */ #if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1900 extern int caml_snprintf(char * buf, size_t size, const char * format, ...); # define snprintf caml_snprintf #endif /*defined (_WIN32) && defined (_MSC_VER)&& _MSC_VER < 1900 */ (3) Rebuild flexdll objects with msvc-14.0 (in my case I am interested only in the 64-bit variants) cl.exe /nologo /MD -D_CRT_SECURE_NO_DEPRECATE /GS- /DMSVC -c /Fo"flexdll_msvc64.obj" flexdll.c cl.exe /nologo /MD -D_CRT_SECURE_NO_DEPRECATE /GS- /DMSVC -c /Fo"flexdll_initer_msvc64.obj" flexdll_initer.c (4) Patches to config/Makefile.msvc64 (refer http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx ): EXTRALIBS=legacy_stdio_wide_specifiers.lib legacy_stdio_definitions.lib vcruntime.lib ucrt.lib ​(5) Build the system make -f Makefile.nt world make -f Makefile.nt bootstrap make -f Makefile.nt opt make -f Makefile.nt opt.opt make -f Makefile.nt install ​ -- Shayne Fletcher