about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-02-09 17:27:38 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-02-09 17:28:33 +0000
commit34f168fb82b992edd3549222486704ee3dd9d1de (patch)
tree42cc428b4eaa68a221007b27f1a0c4bac59fc9a1
parent74159dc58af2ce8a32b62daecd587f29ff7931f2 (diff)
downloadglibc-34f168fb82b992edd3549222486704ee3dd9d1de.tar.gz
glibc-34f168fb82b992edd3549222486704ee3dd9d1de.tar.xz
glibc-34f168fb82b992edd3549222486704ee3dd9d1de.zip
htl: Fix default guard size
When it is not hardcoded by the architecture with PAGESIZE, we need to
use the dynamic values from __vm_page_size.
-rw-r--r--htl/pt-internal.h2
-rw-r--r--sysdeps/htl/pt-attr.c2
-rw-r--r--sysdeps/mach/hurd/htl/pt-sysdep.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/htl/pt-internal.h b/htl/pt-internal.h
index 9147b87740..064e795157 100644
--- a/htl/pt-internal.h
+++ b/htl/pt-internal.h
@@ -304,7 +304,7 @@ extern error_t __pthread_sigstate (struct __pthread *__restrict thread, int how,
 
 
 /* Default thread attributes.  */
-extern const struct __pthread_attr __pthread_default_attr;
+extern struct __pthread_attr __pthread_default_attr;
 
 /* Default barrier attributes.  */
 extern const struct __pthread_barrierattr __pthread_default_barrierattr;
diff --git a/sysdeps/htl/pt-attr.c b/sysdeps/htl/pt-attr.c
index 1426fac67e..fb41e4859f 100644
--- a/sysdeps/htl/pt-attr.c
+++ b/sysdeps/htl/pt-attr.c
@@ -23,7 +23,7 @@
 
 #include <pt-internal.h>
 
-const struct __pthread_attr __pthread_default_attr = {
+struct __pthread_attr __pthread_default_attr = {
   __schedparam: { sched_priority: 0 },
   __stacksize: 0,
   __stackaddr: NULL,
diff --git a/sysdeps/mach/hurd/htl/pt-sysdep.c b/sysdeps/mach/hurd/htl/pt-sysdep.c
index 32a290c4ee..84d191475d 100644
--- a/sysdeps/mach/hurd/htl/pt-sysdep.c
+++ b/sysdeps/mach/hurd/htl/pt-sysdep.c
@@ -78,6 +78,10 @@ _init_routine (void *stack)
      valid if the main thread terminates.  */
   thread->stack = 0;
 
+#ifndef PAGESIZE
+  __pthread_default_attr.__guardsize = __vm_page_size;
+#endif
+
   ___pthread_self = thread;
 
   /* Decrease the number of threads, to take into account that the