[libcxx] Set _LIBCPP_ELAST for mingw.

Reviewers: K-ballo, mclow.lists, EricWF

Reviewed By: EricWF

Subscribers: jfb, jroelofs, majnemer, cfe-commits

Differential Revision: http://reviews.llvm.org/D6558

llvm-svn: 225273
This commit is contained in:
Dan Albert 2015-01-06 17:34:51 +00:00
parent 8335a5724a
commit a76dfbd428
4 changed files with 50 additions and 23 deletions

View File

@ -21,7 +21,6 @@
#if !_WIN32
#include <unistd.h>
#include <errno.h> // for ELAST on FreeBSD
#endif
#define _LIBCPP_VERSION 1101
@ -643,21 +642,6 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_WCTYPE_IS_MASK
#endif
#if defined(ELAST)
#define _LIBCPP_ELAST ELAST
#elif defined(__linux__)
#define _LIBCPP_ELAST 4095
#elif defined(_NEWLIB_VERSION)
#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
#endif
#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR
# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1
#endif

36
libcxx/src/config_elast.h Normal file
View File

@ -0,0 +1,36 @@
//===----------------------- config_elast.h -------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP_CONFIG_ELAST
#define _LIBCPP_CONFIG_ELAST
#if defined(_WIN32)
#include <stdlib.h>
#else
#include <errno.h>
#endif
#if defined(ELAST)
#define _LIBCPP_ELAST ELAST
#elif defined(_NEWLIB_VERSION)
#define _LIBCPP_ELAST __ELASTERROR
#elif defined(__linux__)
#define _LIBCPP_ELAST 4095
#elif defined(__APPLE__)
// No _LIBCPP_ELAST needed on Apple
#elif defined(__sun__)
#define _LIBCPP_ELAST ESTALE
#elif defined(_WIN32)
#define _LIBCPP_ELAST _sys_nerr
#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
#endif
#endif // _LIBCPP_CONFIG_ELAST

View File

@ -8,16 +8,20 @@
//===----------------------------------------------------------------------===//
#include "__config"
#include "ios"
#include "streambuf"
#include "istream"
#include "string"
#include <stdlib.h>
#include "__locale"
#include "algorithm"
#include "config_elast.h"
#include "istream"
#include "limits"
#include "memory"
#include "new"
#include "limits"
#include <stdlib.h>
#include "streambuf"
#include "string"
_LIBCPP_BEGIN_NAMESPACE_STD

View File

@ -7,11 +7,14 @@
//
//===----------------------------------------------------------------------===//
#define _LIBCPP_BUILDING_SYSTEM_ERROR
#include "__config"
#define _LIBCPP_BUILDING_SYSTEM_ERROR
#include "system_error"
#include "string"
#include "config_elast.h"
#include "cstring"
#include "string"
_LIBCPP_BEGIN_NAMESPACE_STD