xref: /openbsd-src/gnu/llvm/libcxx/src/include/config_elast.h (revision 4bdff4bed0e3d54e55670334c7d0077db4170f86)
1*4bdff4beSrobert //===----------------------------------------------------------------------===//
246035553Spatrick //
346035553Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
446035553Spatrick // See https://llvm.org/LICENSE.txt for license information.
546035553Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
646035553Spatrick //
746035553Spatrick //===----------------------------------------------------------------------===//
846035553Spatrick 
946035553Spatrick #ifndef _LIBCPP_CONFIG_ELAST
1046035553Spatrick #define _LIBCPP_CONFIG_ELAST
1146035553Spatrick 
1246035553Spatrick #include <__config>
1346035553Spatrick 
1446035553Spatrick #if defined(_LIBCPP_MSVCRT_LIKE)
1546035553Spatrick #include <stdlib.h>
1646035553Spatrick #else
1746035553Spatrick #include <errno.h>
1846035553Spatrick #endif
1946035553Spatrick 
2076d0caaeSpatrick // Note: _LIBCPP_ELAST needs to be defined only on platforms
2176d0caaeSpatrick // where strerror/strerror_r can't handle out-of-range errno values.
2246035553Spatrick #if defined(ELAST)
2346035553Spatrick #define _LIBCPP_ELAST ELAST
2446035553Spatrick #elif defined(_NEWLIB_VERSION)
2546035553Spatrick #define _LIBCPP_ELAST __ELASTERROR
2676d0caaeSpatrick #elif defined(__NuttX__)
2776d0caaeSpatrick // No _LIBCPP_ELAST needed on NuttX
2846035553Spatrick #elif defined(__Fuchsia__)
2946035553Spatrick // No _LIBCPP_ELAST needed on Fuchsia
3046035553Spatrick #elif defined(__wasi__)
3146035553Spatrick // No _LIBCPP_ELAST needed on WASI
32*4bdff4beSrobert #elif defined(__EMSCRIPTEN__)
33*4bdff4beSrobert // No _LIBCPP_ELAST needed on Emscripten
3446035553Spatrick #elif defined(__linux__) || defined(_LIBCPP_HAS_MUSL_LIBC)
3546035553Spatrick #define _LIBCPP_ELAST 4095
3646035553Spatrick #elif defined(__APPLE__)
3746035553Spatrick // No _LIBCPP_ELAST needed on Apple
3846035553Spatrick #elif defined(__sun__)
3946035553Spatrick #define _LIBCPP_ELAST ESTALE
4076d0caaeSpatrick #elif defined(__MVS__)
4176d0caaeSpatrick #define _LIBCPP_ELAST 1160
4246035553Spatrick #elif defined(_LIBCPP_MSVCRT_LIKE)
4346035553Spatrick #define _LIBCPP_ELAST (_sys_nerr - 1)
4476d0caaeSpatrick #elif defined(_AIX)
4576d0caaeSpatrick #define _LIBCPP_ELAST 127
4646035553Spatrick #else
4746035553Spatrick // Warn here so that the person doing the libcxx port has an easier time:
4846035553Spatrick #warning ELAST for this platform not yet implemented
4946035553Spatrick #endif
5046035553Spatrick 
5146035553Spatrick #endif // _LIBCPP_CONFIG_ELAST
52