$OpenBSD: patch-zig_lib_libcxx_include___config,v 1.1.1.1 2021/02/28 15:32:17 semarie Exp $

Index: zig/lib/libcxx/include/__config
--- zig/lib/libcxx/include/__config.orig
+++ zig/lib/libcxx/include/__config
@@ -265,6 +265,15 @@
 #  endif  // _BYTE_ORDER == _LITTLE_ENDIAN
 #endif  // __NetBSD__
 
+#ifdef __OpenBSD__
+# include <sys/_endian.h>
+#  if _BYTE_ORDER == _LITTLE_ENDIAN
+#   define _LIBCPP_LITTLE_ENDIAN
+# else  // _BYTE_ORDER == _LITTLE_ENDIAN
+#   define _LIBCPP_BIG_ENDIAN
+# endif  // _BYTE_ORDER == _LITTLE_ENDIAN
+#endif  // __OpenBSD__
+
 #if defined(_WIN32)
 #  define _LIBCPP_WIN32API
 #  define _LIBCPP_LITTLE_ENDIAN
@@ -304,7 +313,7 @@
 #  endif
 #endif // __sun__
 
-#if defined(__CloudABI__)
+#if defined(__CloudABI__) || defined(__OpenBSD__)
    // Certain architectures provide arc4random(). Prefer using
    // arc4random() over /dev/{u,}random to make it possible to obtain
    // random data even when using sandboxing mechanisms such as chroots,
@@ -360,6 +369,10 @@
 #    if __ANDROID_API__ >= 29
 #      define _LIBCPP_HAS_TIMESPEC_GET
 #    endif
+#  elif defined(__OpenBSD__)
+#    define _LIBCPP_HAS_ALIGNED_ALLOC
+#    define _LIBCPP_HAS_TIMESPEC_GET
+#    define _LIBCPP_HAS_C11_FEATURES
 #  elif defined(__Fuchsia__) || defined(__wasi__) || defined(__NetBSD__)
 #    define _LIBCPP_HAS_ALIGNED_ALLOC
 #    define _LIBCPP_HAS_QUICK_EXIT
@@ -1130,6 +1143,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
       defined(__APPLE__) || \
       defined(__CloudABI__) || \
       defined(__sun__) || \
+      defined(__OpenBSD__) || \
       (defined(__MINGW32__) && __has_include(<pthread.h>))
 #    define _LIBCPP_HAS_THREAD_API_PTHREAD
 #  elif defined(__Fuchsia__)
@@ -1221,13 +1235,13 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
 
 // Some systems do not provide gets() in their C library, for security reasons.
 #ifndef _LIBCPP_C_HAS_NO_GETS
-#  if defined(_LIBCPP_MSVCRT) || \
-      (defined(__FreeBSD_version) && __FreeBSD_version >= 1300043)
+#  if defined(_LIBCPP_MSVCRT) || defined(__OpenBSD__) ||		\
+    (defined(__FreeBSD_version) && __FreeBSD_version >= 1300043)
 #    define _LIBCPP_C_HAS_NO_GETS
 #  endif
 #endif
 
-#if defined(__BIONIC__) || defined(__CloudABI__) ||                            \
+#if defined(__BIONIC__) || defined(__CloudABI__) || defined(__OpenBSD__) || \
     defined(__Fuchsia__) || defined(__wasi__) || defined(_LIBCPP_HAS_MUSL_LIBC)
 #define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE
 #endif
