musl has a conservative stacksize, as compared to glibc, so treat it like other systems with such stacksize diff --git a/thread_pthread.c b/thread_pthread.c index 951885ffa0..e2d662143b 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -721,7 +721,7 @@ ruby_init_stack(volatile VALUE *addr { native_main_thread.id = pthread_self(); -#if MAINSTACKADDR_AVAILABLE +#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__)) if (native_main_thread.stack_maxsize) return; { void* stackaddr; @@ -1680,7 +1680,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr) #ifdef STACKADDR_AVAILABLE if (get_stack(&base, &size) == 0) { -# ifdef __APPLE__ +# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__)) if (pthread_equal(th->thread_id, native_main_thread.id)) { struct rlimit rlim; if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {