void initMainStackBounds()
{
#ifdef HAVE_FIBER_SANITIZER
+
+#ifdef HAVE_PTHREAD_GETATTR_NP
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_getattr_np(pthread_self(), &attr);
pthread_attr_getstack(&attr, &t_mainStack, &t_mainStackSize);
pthread_attr_destroy(&attr);
+#endif
+#if defined(HAVE_PTHREAD_GET_STACKSIZE_NP) && defined(HAVE_PTHREAD_GET_STACKADDR_NP)
+ t_mainStack = pthread_get_stackaddr_np(pthread_self());
+ t_mainStackSize = pthread_get_stacksize_np(pthread_self());
+#endif
+
#endif /* HAVE_FIBER_SANITIZER */
}
dnl the *_r functions are in posix so we can use them unconditionally, but the ext/yahttp code is
dnl using the defines.
-AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r strcasestr getrandom arc4random])
+AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r strcasestr getrandom arc4random pthread_getattr_np pthread_get_stackaddr_np pthread_get_stacksize_np])
PDNS_CHECK_PTHREAD_NP