From 18838a6cd6b00b1d309d6cc712b7d54660597221 Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Tue, 17 Jul 2018 14:28:37 +0200 Subject: [PATCH] libGL: expand the stack size on musl when creating new threads. fixes #933. --- srcpkgs/libGL/patches/musl-stacksize.patch | 35 ++++++++++++++++++++++ srcpkgs/libGL/template | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/libGL/patches/musl-stacksize.patch diff --git a/srcpkgs/libGL/patches/musl-stacksize.patch b/srcpkgs/libGL/patches/musl-stacksize.patch new file mode 100644 index 00000000000..a8fb6735517 --- /dev/null +++ b/srcpkgs/libGL/patches/musl-stacksize.patch @@ -0,0 +1,35 @@ +diff --git ./include/c11/threads_posix.h ./include/c11/threads_posix.h +index 45cb6075e6..1a2ea1a450 100644 +--- ./include/c11/threads_posix.h ++++ ./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; + } + diff --git a/srcpkgs/libGL/template b/srcpkgs/libGL/template index 1ce10ce3ecd..ea22f043604 100644 --- a/srcpkgs/libGL/template +++ b/srcpkgs/libGL/template @@ -1,7 +1,7 @@ # Template file for 'libGL' pkgname=libGL version=18.1.4 -revision=1 +revision=2 wrksrc="mesa-${version}" build_style=gnu-configure configure_args="--enable-shared-glapi --enable-gbm