xref: /netbsd-src/external/apache2/llvm/dist/libcxx/src/include/config_elast.h (revision 4d6fc14bc9b0c5bf3e30be318c143ee82cadd108)
1*4d6fc14bSjoerg //===----------------------- config_elast.h -------------------------------===//
2*4d6fc14bSjoerg //
3*4d6fc14bSjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*4d6fc14bSjoerg // See https://llvm.org/LICENSE.txt for license information.
5*4d6fc14bSjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*4d6fc14bSjoerg //
7*4d6fc14bSjoerg //===----------------------------------------------------------------------===//
8*4d6fc14bSjoerg 
9*4d6fc14bSjoerg #ifndef _LIBCPP_CONFIG_ELAST
10*4d6fc14bSjoerg #define _LIBCPP_CONFIG_ELAST
11*4d6fc14bSjoerg 
12*4d6fc14bSjoerg #include <__config>
13*4d6fc14bSjoerg 
14*4d6fc14bSjoerg #if defined(_LIBCPP_MSVCRT_LIKE)
15*4d6fc14bSjoerg #include <stdlib.h>
16*4d6fc14bSjoerg #else
17*4d6fc14bSjoerg #include <errno.h>
18*4d6fc14bSjoerg #endif
19*4d6fc14bSjoerg 
20*4d6fc14bSjoerg // Note: _LIBCPP_ELAST needs to be defined only on platforms
21*4d6fc14bSjoerg // where strerror/strerror_r can't handle out-of-range errno values.
22*4d6fc14bSjoerg #if defined(ELAST)
23*4d6fc14bSjoerg #define _LIBCPP_ELAST ELAST
24*4d6fc14bSjoerg #elif defined(_NEWLIB_VERSION)
25*4d6fc14bSjoerg #define _LIBCPP_ELAST __ELASTERROR
26*4d6fc14bSjoerg #elif defined(__NuttX__)
27*4d6fc14bSjoerg // No _LIBCPP_ELAST needed on NuttX
28*4d6fc14bSjoerg #elif defined(__Fuchsia__)
29*4d6fc14bSjoerg // No _LIBCPP_ELAST needed on Fuchsia
30*4d6fc14bSjoerg #elif defined(__wasi__)
31*4d6fc14bSjoerg // No _LIBCPP_ELAST needed on WASI
32*4d6fc14bSjoerg #elif defined(__linux__) || defined(_LIBCPP_HAS_MUSL_LIBC)
33*4d6fc14bSjoerg #define _LIBCPP_ELAST 4095
34*4d6fc14bSjoerg #elif defined(__APPLE__)
35*4d6fc14bSjoerg // No _LIBCPP_ELAST needed on Apple
36*4d6fc14bSjoerg #elif defined(__sun__)
37*4d6fc14bSjoerg #define _LIBCPP_ELAST ESTALE
38*4d6fc14bSjoerg #elif defined(__MVS__)
39*4d6fc14bSjoerg #define _LIBCPP_ELAST 1160
40*4d6fc14bSjoerg #elif defined(_LIBCPP_MSVCRT_LIKE)
41*4d6fc14bSjoerg #define _LIBCPP_ELAST (_sys_nerr - 1)
42*4d6fc14bSjoerg #elif defined(_AIX)
43*4d6fc14bSjoerg #define _LIBCPP_ELAST 127
44*4d6fc14bSjoerg #else
45*4d6fc14bSjoerg // Warn here so that the person doing the libcxx port has an easier time:
46*4d6fc14bSjoerg #warning ELAST for this platform not yet implemented
47*4d6fc14bSjoerg #endif
48*4d6fc14bSjoerg 
49*4d6fc14bSjoerg #endif // _LIBCPP_CONFIG_ELAST
50