forked from OSchip/llvm-project
[libc++] Respect Windows Store app CRT restrictions
Some CRT APIs are unavailable for Windows Store apps [1]. Detect when we're targeting the Windows Store and don't try to refer to non-existent CRT functions in that case. (This would otherwise lead to a compile error when using the libc++ headers and compiling for Windows Store.) [1] https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps Differential Revision: https://reviews.llvm.org/D31737 llvm-svn: 299625
This commit is contained in:
parent
be65893bc7
commit
5dc5a8e5be
|
@ -211,6 +211,16 @@
|
|||
# if defined(_LIBCPP_MSVCRT)
|
||||
# define _LIBCPP_HAS_QUICK_EXIT
|
||||
# endif
|
||||
|
||||
// Some CRT APIs are unavailable to store apps
|
||||
#if defined(WINAPI_FAMILY)
|
||||
#include <winapifamily.h>
|
||||
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && \
|
||||
(!defined(WINAPI_PARTITION_SYSTEM) || \
|
||||
!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_SYSTEM))
|
||||
#define _LIBCPP_WINDOWS_STORE_APP
|
||||
#endif
|
||||
#endif
|
||||
#endif // defined(_WIN32)
|
||||
|
||||
#ifdef __sun__
|
||||
|
|
|
@ -130,8 +130,10 @@ using ::abort;
|
|||
using ::atexit;
|
||||
using ::exit;
|
||||
using ::_Exit;
|
||||
#ifndef _LIBCPP_WINDOWS_STORE_APP
|
||||
using ::getenv;
|
||||
using ::system;
|
||||
#endif
|
||||
using ::bsearch;
|
||||
using ::qsort;
|
||||
using ::abs;
|
||||
|
|
Loading…
Reference in New Issue