diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-06-21 12:42:56 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-07-09 15:10:35 -0700 |
commit | 5d98a7dae955bafa6740c26eaba9c86060ae0344 (patch) | |
tree | 51ab0a095a5406ec5f1b65eafb1f5808a98e9f63 /sysdeps/unix/sysv/linux/bits | |
parent | 7c241325d67af9e24ff03d4c6f6280c17ea181f8 (diff) | |
download | glibc-5d98a7dae955bafa6740c26eaba9c86060ae0344.tar.gz glibc-5d98a7dae955bafa6740c26eaba9c86060ae0344.tar.xz glibc-5d98a7dae955bafa6740c26eaba9c86060ae0344.zip |
Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN)
The constant PTHREAD_STACK_MIN may be too small for some processors. Rename _SC_SIGSTKSZ_SOURCE to _DYNAMIC_STACK_SIZE_SOURCE. When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN) which is changed to MIN (PTHREAD_STACK_MIN, sysconf(_SC_MINSIGSTKSZ)). Consolidate <bits/local_lim.h> with <bits/pthread_stack_min.h> to provide a constant target specific PTHREAD_STACK_MIN value. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/bits')
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/local_lim.h | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/pthread_stack_min.h | 20 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/sigstksz.h | 2 |
3 files changed, 28 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/bits/local_lim.h b/sysdeps/unix/sysv/linux/bits/local_lim.h index b88ca3d4d2..0b1c7f40be 100644 --- a/sysdeps/unix/sysv/linux/bits/local_lim.h +++ b/sysdeps/unix/sysv/linux/bits/local_lim.h @@ -78,7 +78,13 @@ #define AIO_PRIO_DELTA_MAX 20 /* Minimum size for a thread. We are free to choose a reasonable value. */ -#define PTHREAD_STACK_MIN 16384 +#undef PTHREAD_STACK_MIN +#if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE +# include <unistd.h> +# define PTHREAD_STACK_MIN sysconf (_SC_THREAD_STACK_MIN) +#else +# include <bits/pthread_stack_min.h> +#endif /* Maximum number of timer expiration overruns. */ #define DELAYTIMER_MAX 2147483647 diff --git a/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h new file mode 100644 index 0000000000..7bd6fa1242 --- /dev/null +++ b/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h @@ -0,0 +1,20 @@ +/* Definition of PTHREAD_STACK_MIN. Linux version. + Copyright (C) 2021 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +/* Minimum size for a thread. We are free to choose a reasonable value. */ +#define PTHREAD_STACK_MIN 16384 diff --git a/sysdeps/unix/sysv/linux/bits/sigstksz.h b/sysdeps/unix/sysv/linux/bits/sigstksz.h index 926508f2b4..cd45d122e0 100644 --- a/sysdeps/unix/sysv/linux/bits/sigstksz.h +++ b/sysdeps/unix/sysv/linux/bits/sigstksz.h @@ -20,7 +20,7 @@ # error "Never include <bits/sigstksz.h> directly; use <signal.h> instead." #endif -#if defined __USE_SC_SIGSTKSZ && __USE_SC_SIGSTKSZ +#if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE # include <unistd.h> /* Default stack size for a signal handler: sysconf (SC_SIGSTKSZ). */ |