Fixes to get libc++ building on sun solaris. Patch from C Bergstrom.

llvm-svn: 222794
This commit is contained in:
Eric Fiselier 2014-11-25 21:57:41 +00:00
parent 6f6c4ff1fc
commit 53deb607d9
6 changed files with 13 additions and 4 deletions

View File

@ -644,6 +644,8 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_ELAST __ELASTERROR
#elif defined(__APPLE__)
// Not _LIBCPP_ELAST needed on Apple
#elif defined(__sun__)
#define _LIBCPP_ELAST ESTALE
#else
// Warn here so that the person doing the libcxx port has an easier time:
#warning This platform's ELAST hasn't been ported yet

View File

@ -29,8 +29,10 @@
# if __ANDROID_API__ <= 20
# include <support/android/locale_bionic.h>
# endif
#elif defined(__sun__)
# include <support/solaris/xlocale.h>
#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \
|| defined(__sun__) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__))
|| defined(__EMSCRIPTEN__) || defined(__IBMCPP__))
# include <xlocale.h>
#endif // __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__

View File

@ -14,6 +14,8 @@
#ifndef __XLOCALE_H_INCLUDED
#define __XLOCALE_H_INCLUDED
#include <stdlib.h>
#ifdef __cplusplus
extern "C" {
#endif

View File

@ -376,9 +376,9 @@ template <class ..._Tp>
_LIBCPP_INLINE_VISIBILITY
void __swallow(_Tp&&...) _NOEXCEPT {}
template <bool ..._B>
template <bool ..._Pred>
struct __all
: is_same<__all<_B...>, __all<(_B, true)...>>
: is_same<__all<_Pred...>, __all<(_Pred, true)...>>
{ };
template <class _Tp>

View File

@ -3,6 +3,9 @@ file(GLOB LIBCXX_SOURCES ../src/*.cpp)
if(WIN32)
file(GLOB LIBCXX_WIN32_SOURCES ../src/support/win32/*.cpp)
list(APPEND LIBCXX_SOURCES ${LIBCXX_WIN32_SOURCES})
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")
file(GLOB LIBCXX_SOLARIS_SOURCES ../src/support/solaris/*.c)
list(APPEND LIBCXX_SOURCES ${LIBCXX_SOLARIS_SOURCES})
endif()
# Add all the headers to the project for IDEs.

View File

@ -17,7 +17,7 @@
#include <limits.h>
#include <assert.h>
#include <sys/localedef.h>
#include "xlocale.h"
#include "support/solaris/xlocale.h"
static _LC_locale_t *__C_locale;