From 76ccdd97c60561e5b3fb23f5d88049dc074d6559 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 17 May 2022 10:53:13 +0200 Subject: Handle stack size querying on OpenBSD --- libbuild2/scheduler.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libbuild2/scheduler.cxx b/libbuild2/scheduler.cxx index 469ded7..5027f90 100644 --- a/libbuild2/scheduler.cxx +++ b/libbuild2/scheduler.cxx @@ -5,8 +5,11 @@ #if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__) # include -# ifdef __FreeBSD__ +# if defined(__FreeBSD__) # include // pthread_attr_get_np() (in on NetBSD) +# elif defined(__OpenBSD__) +# include +# include // pthread_stackseg_np() # endif #endif @@ -850,6 +853,15 @@ namespace build2 if (r != 0) throw_system_error (r); +#elif defined(__OpenBSD__) + stack_t s; + int r (pthread_stackseg_np (pthread_self (), &s)); + + if (r != 0) + throw_system_error (r); + + stack_size = s.ss_size; + #else // defined(__APPLE__) stack_size = pthread_get_stacksize_np (pthread_self ()); #endif -- cgit v1.1