From 335d4615c8e7e6ab429a57482086d1864ba94f16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Tue, 23 Apr 2019 21:50:47 +0200
Subject: Haiku workaround


diff --git a/thread_pthread.c b/thread_pthread.c
index 954091a..7410218 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -633,6 +633,7 @@ native_thread_destroy(rb_thread_t *th)
 static rb_thread_t *register_cached_thread_and_wait(void *);
 #endif
 
+#ifndef __HAIKU__ /* FIXME HAIKU, miniruby crashes in pthread_attr_get_np without this */
 #if defined HAVE_PTHREAD_GETATTR_NP || defined HAVE_PTHREAD_ATTR_GET_NP
 #define STACKADDR_AVAILABLE 1
 #elif defined HAVE_PTHREAD_GET_STACKADDR_NP && defined HAVE_PTHREAD_GET_STACKSIZE_NP
@@ -649,6 +650,7 @@ size_t pthread_get_stacksize_np(pthread_t);
 #define STACKADDR_AVAILABLE 1
 #elif defined __ia64 && defined _HPUX_SOURCE
 #include <sys/dyntune.h>
+#endif /* FIXME HAIKU */
 
 #define STACKADDR_AVAILABLE 1
 
@@ -714,11 +716,13 @@ get_stack(void **addr, size_t *size)
 {
 #define CHECK_ERR(expr)				\
     {int err = (expr); if (err) return err;}
+#ifndef __HAIKU__ /* FIXME HAIKU */
 #ifdef HAVE_PTHREAD_GETATTR_NP /* Linux */
     pthread_attr_t attr;
     size_t guard = 0;
     STACK_GROW_DIR_DETECTION;
     CHECK_ERR(pthread_getattr_np(pthread_self(), &attr));
+#endif /* FIXME HAIKU */
 # ifdef HAVE_PTHREAD_ATTR_GETSTACK
     CHECK_ERR(pthread_attr_getstack(&attr, addr, size));
     STACK_DIR_UPPER((void)0, (void)(*addr = (char *)*addr + *size));
-- 
2.21.0

