<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Origin: Void Linux

diff --git ./include/c11/threads_posix.h ./include/c11/threads_posix.h
index 45cb6075e6..1a2ea1a450 100644
--- a/include/c11/threads_posix.h
+++ b/include/c11/threads_posix.h
@@ -281,15 +281,29 @@ static inline int
 thrd_create(thrd_t *thr, thrd_start_t func, void *arg)
 {
     struct impl_thrd_param *pack;
+#ifdef __GLIBC__
+    pthread_attr_t *attrp = NULL;
+#else
+    pthread_attr_t attr = { 0 };
+    pthread_attr_init(&amp;attr);
+    pthread_attr_setstacksize(&amp;attr, 8388608);
+    pthread_attr_t *attrp = &amp;attr;
+#endif
     assert(thr != NULL);
     pack = (struct impl_thrd_param *)malloc(sizeof(struct impl_thrd_param));
     if (!pack) return thrd_nomem;
     pack-&gt;func = func;
     pack-&gt;arg = arg;
-    if (pthread_create(thr, NULL, impl_thrd_routine, pack) != 0) {
+    if (pthread_create(thr, attrp, impl_thrd_routine, pack) != 0) {
+#ifndef __GLIBC__
+        pthread_attr_destroy(&amp;attr);
+#endif
         free(pack);
         return thrd_error;
     }
+#ifndef __GLIBC__
+    pthread_attr_destroy(&amp;attr);
+#endif
     return thrd_success;
 }
 
</pre></body></html>