about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--stdlib/test-atexit-race-common.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d577abc377..fdf303a42f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-02-01  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* stdlib/test-atexit-race-common.c (do_test): Check stack size
+	against PTHREAD_STACK_MIN.
+
 2018-02-01  Dmitry V. Levin  <ldv@altlinux.org>
 
 	* manual/contrib.texi (Palmer Dabbelt, Arjun Shankar, Florian Weimer):
diff --git a/stdlib/test-atexit-race-common.c b/stdlib/test-atexit-race-common.c
index 4d7f911d8c..8adf1330bf 100644
--- a/stdlib/test-atexit-race-common.c
+++ b/stdlib/test-atexit-race-common.c
@@ -34,9 +34,12 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <support/xthread.h>
+#include <limits.h>
 
 const size_t kNumThreads = 1024;
 const size_t kNumHandlers = 1024;
+const size_t kStacksize =
+	0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : 0x20000;
 
 static void *
 threadfunc (void *unused)
@@ -60,7 +63,7 @@ do_test (void)
   /* With default 8MiB Linux stack size, creating 1024 threads can cause
      VM exhausiton on 32-bit machines.  Reduce stack size of each thread to
      128KiB for a maximum required VM size of 128MiB.  */
-  xpthread_attr_setstacksize (&attr, 128 * 1024);
+  xpthread_attr_setstacksize (&attr, kStacksize);
 
   for (i = 0; i < kNumThreads; ++i) {
     xpthread_create (&attr, threadfunc, NULL);