summaryrefslogtreecommitdiff
path: root/sysdeps/mach
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2012-09-03 20:29:10 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-11-25 00:29:48 +0100
commit536420a581f9f822cdef0fc460b5176a840f49e5 (patch)
tree0d993fec12628cc86a1efa7c1be0fb834a5a68e9 /sysdeps/mach
parent2531b513b4c3338a69230f273a57f6a7f927b3c8 (diff)
Allow applications to set the default stack size
This change is a temporary hack intended for the Hurd servers. Once Hurd threadvars are replaced with TLS, this commit should be reverted. * pthread/pt-internal.h (__pthread_default_attr): Remove const qualifier. * sysdeps/generic/pt-attr.c (__pthread_default_attr): Likewise. * sysdeps/mach/hurd/pt-sysdep.c (__pthread_stack_default_size): New variable. (init_routine): Set __pthread_default_attr.stacksize if __pthread_stack_default_size exists.
Diffstat (limited to 'sysdeps/mach')
-rw-r--r--sysdeps/mach/hurd/pt-sysdep.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/pt-sysdep.c b/sysdeps/mach/hurd/pt-sysdep.c
index f40fee5..882af69 100644
--- a/sysdeps/mach/hurd/pt-sysdep.c
+++ b/sysdeps/mach/hurd/pt-sysdep.c
@@ -30,6 +30,16 @@
__thread struct __pthread *___pthread_self;
+/* Allow programs that know about this library to override the default stack
+ size.
+
+ FIXME Stack sizes should normally be set at thread creation time using the
+ standard interface, but Hurd threadvars have special alignment constraints.
+ Until they are completely replaced with correct TLS, make this hack
+ available. */
+extern size_t __pthread_stack_default_size;
+weak_extern(__pthread_stack_default_size);
+
/* Forward. */
static void *init_routine (void);
@@ -46,6 +56,10 @@ init_routine (void)
struct __pthread *thread;
int err;
+ /* FIXME */
+ if (&__pthread_stack_default_size != NULL)
+ __pthread_default_attr.stacksize = __pthread_stack_default_size;
+
/* Initialize the library. */
__pthread_init ();