From 5f4e95e7c16a63bbda4f3654126cc81806f779d8 Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Tue, 8 Sep 2015 15:00:09 -0500 Subject: [PATCH] updates for MSVC 2015's degenerate headers Note that 'perror' moves from stdio.h to stdlib.h, and 'rename' moves from stdio.h to io.h. Also, standard C includes move from the compiler to the Windows SDK, which changes the base path for the include files. --- include/compat/dirent_msvc.h | 15 ++++++++++++--- include/compat/stdio.h | 6 ++++++ include/compat/stdlib.h | 4 ++++ include/compat/string.h | 4 ++++ include/compat/sys/stat.h | 4 ++++ include/compat/sys/types.h | 4 ++++ include/compat/time.h | 4 ++++ libtls-standalone/include/string.h | 4 ++++ 8 files changed, 42 insertions(+), 3 deletions(-) diff --git a/include/compat/dirent_msvc.h b/include/compat/dirent_msvc.h index bf9cf1a..e5c5c41 100644 --- a/include/compat/dirent_msvc.h +++ b/include/compat/dirent_msvc.h @@ -29,15 +29,24 @@ #include +#if _MSC_VER >= 1900 +#include <../ucrt/stdio.h> +#include <../ucrt/wchar.h> +#include <../ucrt/string.h> +#include <../ucrt/stdlib.h> +#include <../ucrt/sys/types.h> +#include <../ucrt/errno.h> +#else #include <../include/stdio.h> -#include <../include/stdarg.h> #include <../include/wchar.h> #include <../include/string.h> #include <../include/stdlib.h> -#include <../include/malloc.h> #include <../include/sys/types.h> -#include #include <../include/errno.h> +#endif + +#include +#include /* Indicates that d_type field is available in dirent structure */ #define _DIRENT_HAVE_D_TYPE diff --git a/include/compat/stdio.h b/include/compat/stdio.h index 973faa4..4b96b8b 100644 --- a/include/compat/stdio.h +++ b/include/compat/stdio.h @@ -7,7 +7,13 @@ #define LIBCRYPTOCOMPAT_STDIO_H #ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/stdlib.h> +#include <../ucrt/corecrt_io.h> +#include <../ucrt/stdio.h> +#else #include <../include/stdio.h> +#endif #else #include_next #endif diff --git a/include/compat/stdlib.h b/include/compat/stdlib.h index e31f075..506d463 100644 --- a/include/compat/stdlib.h +++ b/include/compat/stdlib.h @@ -4,7 +4,11 @@ */ #ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/stdlib.h> +#else #include <../include/stdlib.h> +#endif #else #include_next #endif diff --git a/include/compat/string.h b/include/compat/string.h index eabc4c4..f0a0711 100644 --- a/include/compat/string.h +++ b/include/compat/string.h @@ -7,7 +7,11 @@ #define LIBCRYPTOCOMPAT_STRING_H #ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/string.h> +#else #include <../include/string.h> +#endif #else #include_next #endif diff --git a/include/compat/sys/stat.h b/include/compat/sys/stat.h index 9d48251..0e04553 100644 --- a/include/compat/sys/stat.h +++ b/include/compat/sys/stat.h @@ -11,7 +11,11 @@ #else #include +#if _MSC_VER >= 1900 +#include <../ucrt/sys/stat.h> +#else #include <../include/sys/stat.h> +#endif /* File type and permission flags for stat() */ #if !defined(S_IFMT) diff --git a/include/compat/sys/types.h b/include/compat/sys/types.h index 38dc582..1e9979f 100644 --- a/include/compat/sys/types.h +++ b/include/compat/sys/types.h @@ -4,7 +4,11 @@ */ #ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/sys/types.h> +#else #include <../include/sys/types.h> +#endif #else #include_next #endif diff --git a/include/compat/time.h b/include/compat/time.h index 2712951..68b00a6 100644 --- a/include/compat/time.h +++ b/include/compat/time.h @@ -4,7 +4,11 @@ */ #ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/time.h> +#else #include <../include/time.h> +#endif #define gmtime_r(tp, tm) ((gmtime_s((tm), (tp)) == 0) ? (tm) : NULL) #else #include_next diff --git a/libtls-standalone/include/string.h b/libtls-standalone/include/string.h index eabc4c4..f0a0711 100644 --- a/libtls-standalone/include/string.h +++ b/libtls-standalone/include/string.h @@ -7,7 +7,11 @@ #define LIBCRYPTOCOMPAT_STRING_H #ifdef _MSC_VER +#if _MSC_VER >= 1900 +#include <../ucrt/string.h> +#else #include <../include/string.h> +#endif #else #include_next #endif