From 3c75f00adcea9d57c0d92669249dd884e49c4c3b Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 6 Mar 2023 16:55:22 -0800 Subject: [PATCH] gdb.threads/multi-create: Double the existing stack size. Setting the stack size to 2*PTHREAD_STACK_MIN actually lowered the stack on FreeBSD rather than raising it causing non-main threads in the test program to overflow their stack and crash. Double the existing stack size rather than assuming that the initial stack size is PTHREAD_STACK_MIN. --- gdb/testsuite/gdb.threads/multi-create.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.threads/multi-create.c b/gdb/testsuite/gdb.threads/multi-create.c index f4a47c36e1d..9944ba5957a 100644 --- a/gdb/testsuite/gdb.threads/multi-create.c +++ b/gdb/testsuite/gdb.threads/multi-create.c @@ -39,11 +39,13 @@ create_function (void *arg) pthread_attr_t attr; pthread_t threads[NUM_THREAD]; int args[NUM_THREAD]; + size_t stacksize; int i = * (int *) arg; int j; pthread_attr_init (&attr); /* set breakpoint 1 here. */ - pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN); + pthread_attr_getstacksize (&attr, &stacksize); + pthread_attr_setstacksize (&attr, 2 * stacksize); /* Create a ton of quick-executing threads, then wait for them to complete. */ @@ -67,10 +69,12 @@ main (int argc, char **argv) pthread_attr_t attr; pthread_t threads[NUM_CREATE]; int args[NUM_CREATE]; + size_t stacksize; int n, i; pthread_attr_init (&attr); - pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN); + pthread_attr_getstacksize (&attr, &stacksize); + pthread_attr_setstacksize (&attr, 2 * stacksize); for (n = 0; n < 100; ++n) { -- 2.30.2