summaryrefslogtreecommitdiffstats
path: root/graphics-libs/mesa/patches-stable/musl-stacksize.patch
diff options
context:
space:
mode:
Diffstat (limited to 'graphics-libs/mesa/patches-stable/musl-stacksize.patch')
-rw-r--r--graphics-libs/mesa/patches-stable/musl-stacksize.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/graphics-libs/mesa/patches-stable/musl-stacksize.patch b/graphics-libs/mesa/patches-stable/musl-stacksize.patch
new file mode 100644
index 0000000000..db76699a24
--- /dev/null
+++ b/graphics-libs/mesa/patches-stable/musl-stacksize.patch
@@ -0,0 +1,37 @@
+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(&attr);
++ pthread_attr_setstacksize(&attr, 8388608);
++ pthread_attr_t *attrp = &attr;
++#endif
+ assert(thr != NULL);
+ pack = (struct impl_thrd_param *)malloc(sizeof(struct impl_thrd_param));
+ if (!pack) return thrd_nomem;
+ pack->func = func;
+ pack->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(&attr);
++#endif
+ free(pack);
+ return thrd_error;
+ }
++#ifndef __GLIBC__
++ pthread_attr_destroy(&attr);
++#endif
+ return thrd_success;
+ }
+