diff options
Diffstat (limited to 'libcxx/src')
-rw-r--r-- | libcxx/src/locale.cpp | 11 | ||||
-rw-r--r-- | libcxx/src/random.cpp | 3 | ||||
-rw-r--r-- | libcxx/src/thread.cpp | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp index ba686588116..089fae6a3ab 100644 --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp @@ -7,6 +7,12 @@ // //===----------------------------------------------------------------------===// +// On Solaris, we need to define something to make the C99 parts of localeconv +// visible. +#ifdef __sun__ +#define _LCONV_C99 +#endif + #include "string" #include "locale" #include "codecvt" @@ -925,11 +931,16 @@ ctype<char>::classic_table() _NOEXCEPT return _DefaultRuneLocale.__runetype; #elif defined(__GLIBC__) return __cloc()->__ctype_b; +#elif __sun__ + return __ctype_mask; #elif _WIN32 return _ctype+1; // internal ctype mask table defined in msvcrt.dll // This is assumed to be safe, which is a nonsense assumption because we're // going to end up dereferencing it later... #else + // Platform not supported: abort so the person doing the port knows what to + // fix + abort(); return NULL; #endif } diff --git a/libcxx/src/random.cpp b/libcxx/src/random.cpp index eca97bc8194..6140b74ecb5 100644 --- a/libcxx/src/random.cpp +++ b/libcxx/src/random.cpp @@ -10,6 +10,9 @@ #include "random" #include "system_error" +#ifdef __sun__ +#define rename solaris_headers_are_broken +#endif #include <fcntl.h> #include <unistd.h> #include <errno.h> diff --git a/libcxx/src/thread.cpp b/libcxx/src/thread.cpp index cc8c3274be4..f27136a53d0 100644 --- a/libcxx/src/thread.cpp +++ b/libcxx/src/thread.cpp @@ -12,7 +12,7 @@ #include "vector" #include "future" #include <sys/types.h> -#if !_WIN32 +#if !_WIN32 && !__sun__ #include <sys/sysctl.h> #endif // _WIN32 |