diff options
author | Bruce Mitchener <bruce.mitchener@gmail.com> | 2013-02-28 00:35:29 +0700 |
---|---|---|
committer | Bruce Mitchener <bruce.mitchener@gmail.com> | 2013-03-25 00:34:11 +0700 |
commit | 90338c69f75bf4c0b07bd7552b9c47755194eca8 (patch) | |
tree | 902d6292433d5b740bcdb8df2025825246ed5397 /system/include/libcxx | |
parent | 1a0bccc11d4ba74f8891b70dca1a723a4a7b932a (diff) |
Get things working with the new libcxx / libcxxabi.
Diffstat (limited to 'system/include/libcxx')
-rw-r--r-- | system/include/libcxx/__locale | 12 | ||||
-rw-r--r-- | system/include/libcxx/locale | 2 |
2 files changed, 8 insertions, 6 deletions
diff --git a/system/include/libcxx/__locale b/system/include/libcxx/__locale index 4176720c..0805ad86 100644 --- a/system/include/libcxx/__locale +++ b/system/include/libcxx/__locale @@ -21,9 +21,9 @@ #include <locale.h> #if _WIN32 # include <support/win32/locale_win32.h> -#elif (__GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__) +#elif (__GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || EMSCRIPTEN) # include <xlocale.h> -#endif // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD_ +#endif // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || EMSCRIPTEN #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header @@ -339,11 +339,13 @@ public: static const mask punct = _PUNCT; static const mask xdigit = _HEX; static const mask blank = _BLANK; -#elif (__APPLE__ || __FreeBSD__) +#elif (__APPLE__ || __FreeBSD__ || EMSCRIPTEN) #if __APPLE__ typedef __uint32_t mask; #elif __FreeBSD__ typedef unsigned long mask; +#elif EMSCRIPTEN + typedef unsigned short mask; #endif static const mask space = _CTYPE_S; static const mask print = _CTYPE_R; @@ -367,7 +369,7 @@ public: static const mask punct = _ISPUNCT; static const mask xdigit = _ISXDIGIT; static const mask blank = _ISBLANK; -#else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || __sun__ +#else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || EMSCRIPTEN || __sun__ typedef unsigned long mask; static const mask space = 1<<0; static const mask print = 1<<1; @@ -590,7 +592,7 @@ public: #endif _LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;} static const mask* classic_table() _NOEXCEPT; -#if defined(__GLIBC__) +#if defined(__GLIBC__) || defined(EMSCRIPTEN) static const int* __classic_upper_table() _NOEXCEPT; static const int* __classic_lower_table() _NOEXCEPT; #endif diff --git a/system/include/libcxx/locale b/system/include/libcxx/locale index 91893757..83259214 100644 --- a/system/include/libcxx/locale +++ b/system/include/libcxx/locale @@ -222,7 +222,7 @@ typedef _VSTD::unique_ptr<__locale_struct, decltype(&uselocale)> __locale_raii; // OSX has nice foo_l() functions that let you turn off use of the global // locale. Linux, not so much. The following functions avoid the locale when // that's possible and otherwise do the wrong thing. FIXME. -#ifdef __linux__ +#if defined(__linux__) || defined(EMSCRIPTEN) #ifdef _LIBCPP_LOCALE__L_EXTENSIONS decltype(MB_CUR_MAX_L(_VSTD::declval<locale_t>())) |