bruno created this revision.

_LIBCPP_MSVCRT is defined because _WIN32 is defined and __MINGW32__ is not.

Some non-windows targets using MS extensions define _WIN32 for compatibility 
with Windows but do not have MSVC compatibility. This patch is an attempt to do 
not have _LIBCPP_MSVCRT defined for such targets, allowing libcxx to build. 
This patch seems the natural way to go for me, but others more experienced here 
might have additional suggestions?


https://reviews.llvm.org/D34588

Files:
  include/__config


Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -229,9 +229,12 @@
 #  define _LIBCPP_SHORT_WCHAR   1
 // Both MinGW and native MSVC provide a "MSVC"-like enviroment
 #  define _LIBCPP_MSVCRT_LIKE
-// If mingw not explicitly detected, assume using MS C runtime only.
+// If mingw not explicitly detected, assume using MS C runtime only if
+// a MS compatibility version is specified.
 #  ifndef __MINGW32__
-#    define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
+#    ifdef _MSC_VER
+#      define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
+#    endif
 #  endif
 #  if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || 
defined(__arm__))
 #    define _LIBCPP_HAS_BITSCAN64


Index: include/__config
===================================================================
--- include/__config
+++ include/__config
@@ -229,9 +229,12 @@
 #  define _LIBCPP_SHORT_WCHAR   1
 // Both MinGW and native MSVC provide a "MSVC"-like enviroment
 #  define _LIBCPP_MSVCRT_LIKE
-// If mingw not explicitly detected, assume using MS C runtime only.
+// If mingw not explicitly detected, assume using MS C runtime only if
+// a MS compatibility version is specified.
 #  ifndef __MINGW32__
-#    define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
+#    ifdef _MSC_VER
+#      define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library
+#    endif
 #  endif
 #  if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || defined(__arm__))
 #    define _LIBCPP_HAS_BITSCAN64
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to