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/posix | |
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/posix')
-rw-r--r-- | sysdeps/posix/sysconf-pthread_stack_min.h | 29 | ||||
-rw-r--r-- | sysdeps/posix/sysconf.c | 7 |
2 files changed, 31 insertions, 5 deletions
diff --git a/sysdeps/posix/sysconf-pthread_stack_min.h b/sysdeps/posix/sysconf-pthread_stack_min.h new file mode 100644 index 0000000000..f5be2e6f9f --- /dev/null +++ b/sysdeps/posix/sysconf-pthread_stack_min.h @@ -0,0 +1,29 @@ +/* __get_pthread_stack_min (). POSIX 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/>. */ + +/* Return sysconf (_SC_THREAD_STACK_MIN). */ + +static inline long int +__get_pthread_stack_min (void) +{ +#ifdef PTHREAD_STACK_MIN + return PTHREAD_STACK_MIN; +#else + return -1; +#endif +} diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c index 3e8ec5cd51..5fb3fb6c1c 100644 --- a/sysdeps/posix/sysconf.c +++ b/sysdeps/posix/sysconf.c @@ -31,6 +31,7 @@ #include <sys/types.h> #include <sys/uio.h> #include <regex.h> +#include <sysconf-pthread_stack_min.h> #define NEED_SPEC_ARRAY 0 #include <posix-conf-vars.h> @@ -569,11 +570,7 @@ __sysconf (int name) #endif case _SC_THREAD_STACK_MIN: -#ifdef PTHREAD_STACK_MIN - return PTHREAD_STACK_MIN; -#else - return -1; -#endif + return __get_pthread_stack_min (); case _SC_THREAD_THREADS_MAX: #ifdef PTHREAD_THREADS_MAX |