summaryrefslogtreecommitdiffstats
path: root/devel/glib20/files/extra-patch-gthread_gthread-posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/glib20/files/extra-patch-gthread_gthread-posix.c')
-rw-r--r--devel/glib20/files/extra-patch-gthread_gthread-posix.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/devel/glib20/files/extra-patch-gthread_gthread-posix.c b/devel/glib20/files/extra-patch-gthread_gthread-posix.c
new file mode 100644
index 000000000..8796dd629
--- /dev/null
+++ b/devel/glib20/files/extra-patch-gthread_gthread-posix.c
@@ -0,0 +1,32 @@
+--- gthread/gthread-posix.c.orig Mon Nov 1 13:47:12 2004
++++ gthread/gthread-posix.c Wed Mar 9 14:21:20 2005
+@@ -115,7 +115,11 @@
+ # define PRIORITY_NORMAL_VALUE priority_normal_value
+ #endif /* POSIX_MIN_PRIORITY && POSIX_MAX_PRIORITY */
+
++#define G_THREAD_STACK_SIZE32 (1*1024*1024)
++#define G_THREAD_STACK_SIZE64 (2*1024*1024)
++
+ static gulong g_thread_min_stack_size = 0;
++static gulong g_thread_default_stack_size = 0;
+
+ #define G_MUTEX_SIZE (sizeof (pthread_mutex_t))
+
+@@ -307,8 +312,16 @@
+ if (stack_size)
+ {
+ stack_size = MAX (g_thread_min_stack_size, stack_size);
+- posix_check_cmd (pthread_attr_setstacksize (&attr, stack_size));
+ }
++ else
++ {
++ if (sizeof(void *) == 8)
++ g_thread_default_stack_size = G_THREAD_STACK_SIZE64;
++ else
++ g_thread_default_stack_size = G_THREAD_STACK_SIZE32;
++ stack_size = MAX (g_thread_min_stack_size, g_thread_default_stack_size);
++ }
++ posix_check_cmd (pthread_attr_setstacksize (&attr, stack_size));
+ #endif /* HAVE_PTHREAD_ATTR_SETSTACKSIZE */
+
+ #ifdef PTHREAD_SCOPE_SYSTEM