https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79876
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Dominique d'Humieres from comment #9) > > I have read people complaining about very low OMP stack sizes > > on OSX. > > What is setting the limit? Probably OSX thread library? Can you try something like: #define _GNU_SOURCE #include <limits.h> #include <stdlib.h> #include <stdio.h> #include <sys/time.h> #include <sys/resource.h> #include <pthread.h> static void * tf (void *arg) { #ifdef __APPLE__ fprintf (stderr, "other thread pthread_get_stacksize_np %lld\n", pthread_get_stacksize_np (pthread_self ())); #else pthread_attr_t at; pthread_getattr_np (pthread_self (), &at); size_t sz; pthread_attr_getstacksize (&at, &sz); fprintf (stderr, "other thread pthread_getattr_np + " "pthread_attr_getstacksize %zd\n", sz); pthread_attr_destroy (&at); #endif return NULL; } int main () { struct rlimit rl; if (getrlimit (RLIMIT_STACK, &rl)) fprintf (stderr, "err1\n"); else fprintf (stderr, "RLIMIT_STACK cur %lld max %lld\n", (long long) rl.rlim_cur, (long long) rl.rlim_max); fprintf (stderr, "PTHREAD_STACK_MIN %lld\n", (long long) PTHREAD_STACK_MIN); #ifdef __APPLE__ fprintf (stderr, "main thread pthread_get_stacksize_np %lld\n", pthread_get_stacksize_np (pthread_self ())); #else pthread_attr_t at; pthread_getattr_np (pthread_self (), &at); size_t sz; pthread_attr_getstacksize (&at, &sz); fprintf (stderr, "main thread pthread_getattr_np + " "pthread_attr_getstacksize %zd\n", sz); pthread_attr_destroy (&at); #endif pthread_t th; pthread_create (&th, NULL, tf, NULL); pthread_join (th, NULL); pthread_attr_t at2; pthread_attr_init (&at2); pthread_attr_setstacksize (&at2, 2048 * 1024); pthread_create (&th, &at2, tf, NULL); pthread_join (th, NULL); pthread_attr_destroy (&at2); return 0; } and see what it prints?