mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
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>
This commit is contained in:
8
NEWS
8
NEWS
@ -9,8 +9,12 @@ Version 2.34
|
|||||||
|
|
||||||
Major new features:
|
Major new features:
|
||||||
|
|
||||||
* Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _SC_SIGSTKSZ_SOURCE or
|
* When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined,
|
||||||
_GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer
|
PTHREAD_STACK_MIN is no longer constant and is redefined to
|
||||||
|
sysconf(_SC_THREAD_STACK_MIN).
|
||||||
|
|
||||||
|
* Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _DYNAMIC_STACK_SIZE_SOURCE
|
||||||
|
or _GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer
|
||||||
constant on Linux. MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ)
|
constant on Linux. MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ)
|
||||||
and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ).
|
and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ).
|
||||||
|
|
||||||
|
7
include/bits/local_lim.h
Normal file
7
include/bits/local_lim.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/* Don't define PTHREAD_STACK_MIN to sysconf (_SC_THREAD_STACK_MIN) for
|
||||||
|
glibc build. */
|
||||||
|
#if !defined _ISOMAC
|
||||||
|
# undef __USE_DYNAMIC_STACK_SIZE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include_next <bits/local_lim.h>
|
@ -50,8 +50,8 @@
|
|||||||
_LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
_LARGEFILE64_SOURCE Additional functionality from LFS for large files.
|
||||||
_FILE_OFFSET_BITS=N Select default filesystem interface.
|
_FILE_OFFSET_BITS=N Select default filesystem interface.
|
||||||
_ATFILE_SOURCE Additional *at interfaces.
|
_ATFILE_SOURCE Additional *at interfaces.
|
||||||
_SC_SIGSTKSZ_SOURCE Select correct (but non compile-time constant)
|
_DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant)
|
||||||
MINSIGSTKSZ and SIGSTKSZ.
|
MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||||
_GNU_SOURCE All of the above, plus GNU extensions.
|
_GNU_SOURCE All of the above, plus GNU extensions.
|
||||||
_DEFAULT_SOURCE The default set of features (taking precedence over
|
_DEFAULT_SOURCE The default set of features (taking precedence over
|
||||||
__STRICT_ANSI__).
|
__STRICT_ANSI__).
|
||||||
@ -98,8 +98,8 @@
|
|||||||
__USE_FILE_OFFSET64 Define 64bit interface as default.
|
__USE_FILE_OFFSET64 Define 64bit interface as default.
|
||||||
__USE_MISC Define things from 4.3BSD or System V Unix.
|
__USE_MISC Define things from 4.3BSD or System V Unix.
|
||||||
__USE_ATFILE Define *at interfaces and AT_* constants for them.
|
__USE_ATFILE Define *at interfaces and AT_* constants for them.
|
||||||
__USE_SC_SIGSTKSZ Define correct (but non compile-time constant)
|
__USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant)
|
||||||
MINSIGSTKSZ and SIGSTKSZ.
|
MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN.
|
||||||
__USE_GNU Define GNU extensions.
|
__USE_GNU Define GNU extensions.
|
||||||
__USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
__USE_FORTIFY_LEVEL Additional security measures used, according to level.
|
||||||
|
|
||||||
@ -143,7 +143,7 @@
|
|||||||
#undef __USE_FILE_OFFSET64
|
#undef __USE_FILE_OFFSET64
|
||||||
#undef __USE_MISC
|
#undef __USE_MISC
|
||||||
#undef __USE_ATFILE
|
#undef __USE_ATFILE
|
||||||
#undef __USE_SC_SIGSTKSZ
|
#undef __USE_DYNAMIC_STACK_SIZE
|
||||||
#undef __USE_GNU
|
#undef __USE_GNU
|
||||||
#undef __USE_FORTIFY_LEVEL
|
#undef __USE_FORTIFY_LEVEL
|
||||||
#undef __KERNEL_STRICT_NAMES
|
#undef __KERNEL_STRICT_NAMES
|
||||||
@ -220,8 +220,8 @@
|
|||||||
# define _DEFAULT_SOURCE 1
|
# define _DEFAULT_SOURCE 1
|
||||||
# undef _ATFILE_SOURCE
|
# undef _ATFILE_SOURCE
|
||||||
# define _ATFILE_SOURCE 1
|
# define _ATFILE_SOURCE 1
|
||||||
# undef _SC_SIGSTKSZ_SOURCE
|
# undef _DYNAMIC_STACK_SIZE_SOURCE
|
||||||
# define _SC_SIGSTKSZ_SOURCE 1
|
# define _DYNAMIC_STACK_SIZE_SOURCE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
|
||||||
@ -399,8 +399,8 @@
|
|||||||
# define __USE_ATFILE 1
|
# define __USE_ATFILE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _SC_SIGSTKSZ_SOURCE
|
#ifdef _DYNAMIC_STACK_SIZE_SOURCE
|
||||||
# define __USE_SC_SIGSTKSZ 1
|
# define __USE_DYNAMIC_STACK_SIZE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
|
@ -308,10 +308,10 @@ checks are applied. If defined to @math{3}, @theglibc{} may also use
|
|||||||
checks that may have an additional performance overhead.
|
checks that may have an additional performance overhead.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
@defvr Macro _SC_SIGSTKSZ_SOURCE
|
@defvr Macro _DYNAMIC_STACK_SIZE_SOURCE
|
||||||
@standards{GNU, (none)}
|
@standards{GNU, (none)}
|
||||||
If this macro is defined, correct (but non compile-time constant)
|
If this macro is defined, correct (but non compile-time constant)
|
||||||
MINSIGSTKSZ and SIGSTKSZ are defined.
|
MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN are defined.
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
@defvr Macro _REENTRANT
|
@defvr Macro _REENTRANT
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <ucontext.h>
|
#include <ucontext.h>
|
||||||
|
#include <support/support.h>
|
||||||
|
|
||||||
#define N 4
|
#define N 4
|
||||||
#if __WORDSIZE == 64
|
#if __WORDSIZE == 64
|
||||||
@ -36,7 +37,8 @@ typedef struct {
|
|||||||
unsigned long guard[3];
|
unsigned long guard[3];
|
||||||
} tst_context_t;
|
} tst_context_t;
|
||||||
|
|
||||||
static char stacks[N][2 * PTHREAD_STACK_MIN];
|
static char *stacks[N];
|
||||||
|
static size_t stack_size;
|
||||||
static tst_context_t ctx[N][2];
|
static tst_context_t ctx[N][2];
|
||||||
static volatile int failures;
|
static volatile int failures;
|
||||||
|
|
||||||
@ -79,7 +81,7 @@ fct (long int n)
|
|||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (on_stack < stacks[n] || on_stack >= stacks[n] + sizeof (stacks[0]))
|
if (on_stack < stacks[n] || on_stack >= stacks[n] + stack_size)
|
||||||
{
|
{
|
||||||
printf ("%ld: on_stack not on appropriate stack\n", n);
|
printf ("%ld: on_stack not on appropriate stack\n", n);
|
||||||
exit (1);
|
exit (1);
|
||||||
@ -109,7 +111,7 @@ tf (void *arg)
|
|||||||
printf ("%d: %s: before makecontext\n", n, __FUNCTION__);
|
printf ("%d: %s: before makecontext\n", n, __FUNCTION__);
|
||||||
|
|
||||||
ctx[n][1].uctx.uc_stack.ss_sp = stacks[n];
|
ctx[n][1].uctx.uc_stack.ss_sp = stacks[n];
|
||||||
ctx[n][1].uctx.uc_stack.ss_size = sizeof (stacks[n]);
|
ctx[n][1].uctx.uc_stack.ss_size = stack_size;
|
||||||
ctx[n][1].uctx.uc_link = &ctx[n][0].uctx;
|
ctx[n][1].uctx.uc_link = &ctx[n][0].uctx;
|
||||||
makecontext (&ctx[n][1].uctx, (void (*) (void)) fct, 1, (long int) n);
|
makecontext (&ctx[n][1].uctx, (void (*) (void)) fct, 1, (long int) n);
|
||||||
|
|
||||||
@ -137,6 +139,10 @@ do_test (void)
|
|||||||
pthread_t th[N];
|
pthread_t th[N];
|
||||||
ucontext_t mctx;
|
ucontext_t mctx;
|
||||||
|
|
||||||
|
stack_size = 2 * PTHREAD_STACK_MIN;
|
||||||
|
for (int i = 0; i < N; i++)
|
||||||
|
stacks[i] = xmalloc (stack_size);
|
||||||
|
|
||||||
puts ("making contexts");
|
puts ("making contexts");
|
||||||
if (getcontext (&mctx) != 0)
|
if (getcontext (&mctx) != 0)
|
||||||
{
|
{
|
||||||
@ -198,6 +204,9 @@ do_test (void)
|
|||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < N; i++)
|
||||||
|
free (stacks[i]);
|
||||||
|
|
||||||
return failures;
|
return failures;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,11 +38,6 @@
|
|||||||
|
|
||||||
const size_t kNumThreads = 1024;
|
const size_t kNumThreads = 1024;
|
||||||
const size_t kNumHandlers = 1024;
|
const size_t kNumHandlers = 1024;
|
||||||
const size_t kStacksize =
|
|
||||||
#ifdef PTHREAD_STACK_MIN
|
|
||||||
0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN :
|
|
||||||
#endif
|
|
||||||
0x20000;
|
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
threadfunc (void *unused)
|
threadfunc (void *unused)
|
||||||
@ -66,6 +61,12 @@ do_test (void)
|
|||||||
/* With default 8MiB Linux stack size, creating 1024 threads can cause
|
/* With default 8MiB Linux stack size, creating 1024 threads can cause
|
||||||
VM exhausiton on 32-bit machines. Reduce stack size of each thread to
|
VM exhausiton on 32-bit machines. Reduce stack size of each thread to
|
||||||
128KiB for a maximum required VM size of 128MiB. */
|
128KiB for a maximum required VM size of 128MiB. */
|
||||||
|
size_t kStacksize =
|
||||||
|
#ifdef PTHREAD_STACK_MIN
|
||||||
|
0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN :
|
||||||
|
#endif
|
||||||
|
0x20000;
|
||||||
|
|
||||||
xpthread_attr_setstacksize (&attr, kStacksize);
|
xpthread_attr_setstacksize (&attr, kStacksize);
|
||||||
|
|
||||||
for (i = 0; i < kNumThreads; ++i) {
|
for (i = 0; i < kNumThreads; ++i) {
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
<https://www.gnu.org/licenses/>. */
|
<https://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <support/check.h>
|
#include <support/check.h>
|
||||||
#include <support/support.h>
|
#include <support/support.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
29
sysdeps/posix/sysconf-pthread_stack_min.h
Normal file
29
sysdeps/posix/sysconf-pthread_stack_min.h
Normal file
@ -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
|
||||||
|
}
|
@ -31,6 +31,7 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
|
#include <sysconf-pthread_stack_min.h>
|
||||||
|
|
||||||
#define NEED_SPEC_ARRAY 0
|
#define NEED_SPEC_ARRAY 0
|
||||||
#include <posix-conf-vars.h>
|
#include <posix-conf-vars.h>
|
||||||
@ -569,11 +570,7 @@ __sysconf (int name)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
case _SC_THREAD_STACK_MIN:
|
case _SC_THREAD_STACK_MIN:
|
||||||
#ifdef PTHREAD_STACK_MIN
|
return __get_pthread_stack_min ();
|
||||||
return PTHREAD_STACK_MIN;
|
|
||||||
#else
|
|
||||||
return -1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
case _SC_THREAD_THREADS_MAX:
|
case _SC_THREAD_THREADS_MAX:
|
||||||
#ifdef PTHREAD_THREADS_MAX
|
#ifdef PTHREAD_THREADS_MAX
|
||||||
|
@ -108,7 +108,8 @@ sysdep_headers += sys/mount.h sys/acct.h \
|
|||||||
bits/types/struct_semid64_ds.h \
|
bits/types/struct_semid64_ds.h \
|
||||||
bits/types/struct_semid64_ds_helper.h \
|
bits/types/struct_semid64_ds_helper.h \
|
||||||
bits/types/struct_shmid64_ds.h \
|
bits/types/struct_shmid64_ds.h \
|
||||||
bits/types/struct_shmid64_ds_helper.h
|
bits/types/struct_shmid64_ds_helper.h \
|
||||||
|
bits/pthread_stack_min.h
|
||||||
|
|
||||||
tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
|
tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
|
||||||
tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
|
tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
/* Minimum guaranteed maximum values for system limits. Linux version.
|
|
||||||
Copyright (C) 1993-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/>. */
|
|
||||||
|
|
||||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
|
||||||
and defines LINK_MAX although filesystems have different maxima. A
|
|
||||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
|
||||||
runtime and therefore the macro must not be defined. Remove this
|
|
||||||
after including the header if necessary. */
|
|
||||||
#ifndef NR_OPEN
|
|
||||||
# define __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
#ifndef LINK_MAX
|
|
||||||
# define __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef OPEN_MAX
|
|
||||||
# define __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef ARG_MAX
|
|
||||||
# define __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The kernel sources contain a file with all the needed information. */
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
/* Have to remove NR_OPEN? */
|
|
||||||
#ifdef __undef_NR_OPEN
|
|
||||||
# undef NR_OPEN
|
|
||||||
# undef __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
/* Have to remove LINK_MAX? */
|
|
||||||
#ifdef __undef_LINK_MAX
|
|
||||||
# undef LINK_MAX
|
|
||||||
# undef __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove OPEN_MAX? */
|
|
||||||
#ifdef __undef_OPEN_MAX
|
|
||||||
# undef OPEN_MAX
|
|
||||||
# undef __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove ARG_MAX? */
|
|
||||||
#ifdef __undef_ARG_MAX
|
|
||||||
# undef ARG_MAX
|
|
||||||
# undef __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The number of data keys per process. */
|
|
||||||
#define _POSIX_THREAD_KEYS_MAX 128
|
|
||||||
/* This is the value this implementation supports. */
|
|
||||||
#define PTHREAD_KEYS_MAX 1024
|
|
||||||
|
|
||||||
/* Controlling the iterations of destructors for thread-specific data. */
|
|
||||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
|
||||||
/* Number of iterations this implementation does. */
|
|
||||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
|
||||||
|
|
||||||
/* The number of threads per process. */
|
|
||||||
#define _POSIX_THREAD_THREADS_MAX 64
|
|
||||||
/* We have no predefined limit on the number of threads. */
|
|
||||||
#undef PTHREAD_THREADS_MAX
|
|
||||||
|
|
||||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
|
||||||
priority level. */
|
|
||||||
#define AIO_PRIO_DELTA_MAX 20
|
|
||||||
|
|
||||||
/* Minimum size for a thread. At least two pages for systems with 64k
|
|
||||||
pages. */
|
|
||||||
#define PTHREAD_STACK_MIN 131072
|
|
||||||
|
|
||||||
/* Maximum number of timer expiration overruns. */
|
|
||||||
#define DELAYTIMER_MAX 2147483647
|
|
||||||
|
|
||||||
/* Maximum tty name length. */
|
|
||||||
#define TTY_NAME_MAX 32
|
|
||||||
|
|
||||||
/* Maximum login name length. This is arbitrary. */
|
|
||||||
#define LOGIN_NAME_MAX 256
|
|
||||||
|
|
||||||
/* Maximum host name length. */
|
|
||||||
#define HOST_NAME_MAX 64
|
|
||||||
|
|
||||||
/* Maximum message queue priority level. */
|
|
||||||
#define MQ_PRIO_MAX 32768
|
|
||||||
|
|
||||||
/* Maximum value the semaphore can have. */
|
|
||||||
#define SEM_VALUE_MAX (2147483647)
|
|
22
sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
Normal file
22
sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* Definition of PTHREAD_STACK_MIN. Linux/aarch64 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. At least two pages for systems with 64k
|
||||||
|
pages. */
|
||||||
|
#define PTHREAD_STACK_MIN 131072
|
@ -1,99 +0,0 @@
|
|||||||
/* Minimum guaranteed maximum values for system limits. Linux/Alpha version.
|
|
||||||
Copyright (C) 1993-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 Library General Public License as
|
|
||||||
published by the Free Software Foundation; either version 2 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
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with the GNU C Library. If not, see
|
|
||||||
<https://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
|
||||||
and defines LINK_MAX although filesystems have different maxima. A
|
|
||||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
|
||||||
runtime and therefore the macro must not be defined. Remove this
|
|
||||||
after including the header if necessary. */
|
|
||||||
#ifndef NR_OPEN
|
|
||||||
# define __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
#ifndef LINK_MAX
|
|
||||||
# define __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef OPEN_MAX
|
|
||||||
# define __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef ARG_MAX
|
|
||||||
# define __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The kernel sources contain a file with all the needed information. */
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
/* Have to remove NR_OPEN? */
|
|
||||||
#ifdef __undef_NR_OPEN
|
|
||||||
# undef NR_OPEN
|
|
||||||
# undef __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
/* Have to remove LINK_MAX? */
|
|
||||||
#ifdef __undef_LINK_MAX
|
|
||||||
# undef LINK_MAX
|
|
||||||
# undef __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove OPEN_MAX? */
|
|
||||||
#ifdef __undef_OPEN_MAX
|
|
||||||
# undef OPEN_MAX
|
|
||||||
# undef __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove ARG_MAX? */
|
|
||||||
#ifdef __undef_ARG_MAX
|
|
||||||
# undef ARG_MAX
|
|
||||||
# undef __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The number of data keys per process. */
|
|
||||||
#define _POSIX_THREAD_KEYS_MAX 128
|
|
||||||
/* This is the value this implementation supports. */
|
|
||||||
#define PTHREAD_KEYS_MAX 1024
|
|
||||||
|
|
||||||
/* Controlling the iterations of destructors for thread-specific data. */
|
|
||||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
|
||||||
/* Number of iterations this implementation does. */
|
|
||||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
|
||||||
|
|
||||||
/* The number of threads per process. */
|
|
||||||
#define _POSIX_THREAD_THREADS_MAX 64
|
|
||||||
/* We have no predefined limit on the number of threads. */
|
|
||||||
#undef PTHREAD_THREADS_MAX
|
|
||||||
|
|
||||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
|
||||||
priority level. */
|
|
||||||
#define AIO_PRIO_DELTA_MAX 20
|
|
||||||
|
|
||||||
/* Minimum size for a thread. We are free to choose a reasonable value. */
|
|
||||||
#define PTHREAD_STACK_MIN 24576
|
|
||||||
|
|
||||||
/* Maximum number of timer expiration overruns. */
|
|
||||||
#define DELAYTIMER_MAX 2147483647
|
|
||||||
|
|
||||||
/* Maximum tty name length. */
|
|
||||||
#define TTY_NAME_MAX 32
|
|
||||||
|
|
||||||
/* Maximum login name length. This is arbitrary. */
|
|
||||||
#define LOGIN_NAME_MAX 256
|
|
||||||
|
|
||||||
/* Maximum host name length. */
|
|
||||||
#define HOST_NAME_MAX 64
|
|
||||||
|
|
||||||
/* Maximum message queue priority level. */
|
|
||||||
#define MQ_PRIO_MAX 32768
|
|
||||||
|
|
||||||
/* Maximum value the semaphore can have. */
|
|
||||||
#define SEM_VALUE_MAX (2147483647)
|
|
20
sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
Normal file
20
sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Definition of PTHREAD_STACK_MIN. Linux/Alpha 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 Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 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
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library 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 24576
|
@ -78,7 +78,13 @@
|
|||||||
#define AIO_PRIO_DELTA_MAX 20
|
#define AIO_PRIO_DELTA_MAX 20
|
||||||
|
|
||||||
/* Minimum size for a thread. We are free to choose a reasonable value. */
|
/* 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. */
|
/* Maximum number of timer expiration overruns. */
|
||||||
#define DELAYTIMER_MAX 2147483647
|
#define DELAYTIMER_MAX 2147483647
|
||||||
|
20
sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
Normal file
20
sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
Normal file
@ -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
|
@ -20,7 +20,7 @@
|
|||||||
# error "Never include <bits/sigstksz.h> directly; use <signal.h> instead."
|
# error "Never include <bits/sigstksz.h> directly; use <signal.h> instead."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __USE_SC_SIGSTKSZ && __USE_SC_SIGSTKSZ
|
#if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
|
|
||||||
/* Default stack size for a signal handler: sysconf (SC_SIGSTKSZ). */
|
/* Default stack size for a signal handler: sysconf (SC_SIGSTKSZ). */
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
/* Minimum guaranteed maximum values for system limits. Linux/IA-64 version.
|
|
||||||
Copyright (C) 1993-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/>. */
|
|
||||||
|
|
||||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
|
||||||
and defines LINK_MAX although filesystems have different maxima. A
|
|
||||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
|
||||||
runtime and therefore the macro must not be defined. Remove this
|
|
||||||
after including the header if necessary. */
|
|
||||||
#ifndef NR_OPEN
|
|
||||||
# define __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
#ifndef LINK_MAX
|
|
||||||
# define __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef OPEN_MAX
|
|
||||||
# define __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef ARG_MAX
|
|
||||||
# define __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The kernel sources contain a file with all the needed information. */
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
/* Have to remove NR_OPEN? */
|
|
||||||
#ifdef __undef_NR_OPEN
|
|
||||||
# undef NR_OPEN
|
|
||||||
# undef __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
/* Have to remove LINK_MAX? */
|
|
||||||
#ifdef __undef_LINK_MAX
|
|
||||||
# undef LINK_MAX
|
|
||||||
# undef __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove OPEN_MAX? */
|
|
||||||
#ifdef __undef_OPEN_MAX
|
|
||||||
# undef OPEN_MAX
|
|
||||||
# undef __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove ARG_MAX? */
|
|
||||||
#ifdef __undef_ARG_MAX
|
|
||||||
# undef ARG_MAX
|
|
||||||
# undef __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The number of data keys per process. */
|
|
||||||
#define _POSIX_THREAD_KEYS_MAX 128
|
|
||||||
/* This is the value this implementation supports. */
|
|
||||||
#define PTHREAD_KEYS_MAX 1024
|
|
||||||
|
|
||||||
/* Controlling the iterations of destructors for thread-specific data. */
|
|
||||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
|
||||||
/* Number of iterations this implementation does. */
|
|
||||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
|
||||||
|
|
||||||
/* The number of threads per process. */
|
|
||||||
#define _POSIX_THREAD_THREADS_MAX 64
|
|
||||||
/* We have no predefined limit on the number of threads. */
|
|
||||||
#undef PTHREAD_THREADS_MAX
|
|
||||||
|
|
||||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
|
||||||
priority level. */
|
|
||||||
#define AIO_PRIO_DELTA_MAX 20
|
|
||||||
|
|
||||||
/* Minimum size for a thread. We are free to choose a reasonable value. */
|
|
||||||
#define PTHREAD_STACK_MIN 196608
|
|
||||||
|
|
||||||
/* Maximum number of timer expiration overruns. */
|
|
||||||
#define DELAYTIMER_MAX 2147483647
|
|
||||||
|
|
||||||
/* Maximum tty name length. */
|
|
||||||
#define TTY_NAME_MAX 32
|
|
||||||
|
|
||||||
/* Maximum login name length. This is arbitrary. */
|
|
||||||
#define LOGIN_NAME_MAX 256
|
|
||||||
|
|
||||||
/* Maximum host name length. */
|
|
||||||
#define HOST_NAME_MAX 64
|
|
||||||
|
|
||||||
/* Maximum message queue priority level. */
|
|
||||||
#define MQ_PRIO_MAX 32768
|
|
||||||
|
|
||||||
/* Maximum value the semaphore can have. */
|
|
||||||
#define SEM_VALUE_MAX (2147483647)
|
|
20
sysdeps/unix/sysv/linux/ia64/bits/pthread_stack_min.h
Normal file
20
sysdeps/unix/sysv/linux/ia64/bits/pthread_stack_min.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Definition of PTHREAD_STACK_MIN. Linux/IA-64 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 196608
|
@ -1,99 +0,0 @@
|
|||||||
/* Minimum guaranteed maximum values for system limits. MIPS Linux version.
|
|
||||||
Copyright (C) 1993-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/>. */
|
|
||||||
|
|
||||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
|
||||||
and defines LINK_MAX although filesystems have different maxima. A
|
|
||||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
|
||||||
runtime and therefore the macro must not be defined. Remove this
|
|
||||||
after including the header if necessary. */
|
|
||||||
#ifndef NR_OPEN
|
|
||||||
# define __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
#ifndef LINK_MAX
|
|
||||||
# define __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef OPEN_MAX
|
|
||||||
# define __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef ARG_MAX
|
|
||||||
# define __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The kernel sources contain a file with all the needed information. */
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
/* Have to remove NR_OPEN? */
|
|
||||||
#ifdef __undef_NR_OPEN
|
|
||||||
# undef NR_OPEN
|
|
||||||
# undef __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
/* Have to remove LINK_MAX? */
|
|
||||||
#ifdef __undef_LINK_MAX
|
|
||||||
# undef LINK_MAX
|
|
||||||
# undef __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove OPEN_MAX? */
|
|
||||||
#ifdef __undef_OPEN_MAX
|
|
||||||
# undef OPEN_MAX
|
|
||||||
# undef __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove ARG_MAX? */
|
|
||||||
#ifdef __undef_ARG_MAX
|
|
||||||
# undef ARG_MAX
|
|
||||||
# undef __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The number of data keys per process. */
|
|
||||||
#define _POSIX_THREAD_KEYS_MAX 128
|
|
||||||
/* This is the value this implementation supports. */
|
|
||||||
#define PTHREAD_KEYS_MAX 1024
|
|
||||||
|
|
||||||
/* Controlling the iterations of destructors for thread-specific data. */
|
|
||||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
|
||||||
/* Number of iterations this implementation does. */
|
|
||||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
|
||||||
|
|
||||||
/* The number of threads per process. */
|
|
||||||
#define _POSIX_THREAD_THREADS_MAX 64
|
|
||||||
/* We have no predefined limit on the number of threads. */
|
|
||||||
#undef PTHREAD_THREADS_MAX
|
|
||||||
|
|
||||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
|
||||||
priority level. */
|
|
||||||
#define AIO_PRIO_DELTA_MAX 20
|
|
||||||
|
|
||||||
/* Minimum size for a thread. At least two pages with 64k pages. */
|
|
||||||
#define PTHREAD_STACK_MIN 131072
|
|
||||||
|
|
||||||
/* Maximum number of timer expiration overruns. */
|
|
||||||
#define DELAYTIMER_MAX 2147483647
|
|
||||||
|
|
||||||
/* Maximum tty name length. */
|
|
||||||
#define TTY_NAME_MAX 32
|
|
||||||
|
|
||||||
/* Maximum login name length. This is arbitrary. */
|
|
||||||
#define LOGIN_NAME_MAX 256
|
|
||||||
|
|
||||||
/* Maximum host name length. */
|
|
||||||
#define HOST_NAME_MAX 64
|
|
||||||
|
|
||||||
/* Maximum message queue priority level. */
|
|
||||||
#define MQ_PRIO_MAX 32768
|
|
||||||
|
|
||||||
/* Maximum value the semaphore can have. */
|
|
||||||
#define SEM_VALUE_MAX (2147483647)
|
|
20
sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
Normal file
20
sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Definition of PTHREAD_STACK_MIN. MIPS 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. At least two pages with 64k pages. */
|
||||||
|
#define PTHREAD_STACK_MIN 131072
|
@ -1,100 +0,0 @@
|
|||||||
/* Minimum guaranteed maximum values for system limits. Linux/PPC version.
|
|
||||||
Copyright (C) 1993-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; see the file COPYING.LIB. If
|
|
||||||
not, see <https://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
|
||||||
and defines LINK_MAX although filesystems have different maxima. A
|
|
||||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
|
||||||
runtime and therefore the macro must not be defined. Remove this
|
|
||||||
after including the header if necessary. */
|
|
||||||
#ifndef NR_OPEN
|
|
||||||
# define __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
#ifndef LINK_MAX
|
|
||||||
# define __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef OPEN_MAX
|
|
||||||
# define __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef ARG_MAX
|
|
||||||
# define __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The kernel sources contain a file with all the needed information. */
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
/* Have to remove NR_OPEN? */
|
|
||||||
#ifdef __undef_NR_OPEN
|
|
||||||
# undef NR_OPEN
|
|
||||||
# undef __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
/* Have to remove LINK_MAX? */
|
|
||||||
#ifdef __undef_LINK_MAX
|
|
||||||
# undef LINK_MAX
|
|
||||||
# undef __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove OPEN_MAX? */
|
|
||||||
#ifdef __undef_OPEN_MAX
|
|
||||||
# undef OPEN_MAX
|
|
||||||
# undef __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove ARG_MAX? */
|
|
||||||
#ifdef __undef_ARG_MAX
|
|
||||||
# undef ARG_MAX
|
|
||||||
# undef __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The number of data keys per process. */
|
|
||||||
#define _POSIX_THREAD_KEYS_MAX 128
|
|
||||||
/* This is the value this implementation supports. */
|
|
||||||
#define PTHREAD_KEYS_MAX 1024
|
|
||||||
|
|
||||||
/* Controlling the iterations of destructors for thread-specific data. */
|
|
||||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
|
||||||
/* Number of iterations this implementation does. */
|
|
||||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
|
||||||
|
|
||||||
/* The number of threads per process. */
|
|
||||||
#define _POSIX_THREAD_THREADS_MAX 64
|
|
||||||
/* We have no predefined limit on the number of threads. */
|
|
||||||
#undef PTHREAD_THREADS_MAX
|
|
||||||
|
|
||||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
|
||||||
priority level. */
|
|
||||||
#define AIO_PRIO_DELTA_MAX 20
|
|
||||||
|
|
||||||
/* Minimum size for a thread. At least two pages for systems with 64k
|
|
||||||
pages. */
|
|
||||||
#define PTHREAD_STACK_MIN 131072
|
|
||||||
|
|
||||||
/* Maximum number of timer expiration overruns. */
|
|
||||||
#define DELAYTIMER_MAX 2147483647
|
|
||||||
|
|
||||||
/* Maximum tty name length. */
|
|
||||||
#define TTY_NAME_MAX 32
|
|
||||||
|
|
||||||
/* Maximum login name length. This is arbitrary. */
|
|
||||||
#define LOGIN_NAME_MAX 256
|
|
||||||
|
|
||||||
/* Maximum host name length. */
|
|
||||||
#define HOST_NAME_MAX 64
|
|
||||||
|
|
||||||
/* Maximum message queue priority level. */
|
|
||||||
#define MQ_PRIO_MAX 32768
|
|
||||||
|
|
||||||
/* Maximum value the semaphore can have. */
|
|
||||||
#define SEM_VALUE_MAX (2147483647)
|
|
21
sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
Normal file
21
sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/* Definition of PTHREAD_STACK_MIN. Linux/PPC 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; see the file COPYING.LIB. If
|
||||||
|
not, see <https://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Minimum size for a thread. At least two pages for systems with 64k
|
||||||
|
pages. */
|
||||||
|
#define PTHREAD_STACK_MIN 131072
|
@ -1,99 +0,0 @@
|
|||||||
/* Minimum guaranteed maximum values for system limits. Linux/SPARC version.
|
|
||||||
Copyright (C) 1993-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 Library General Public License as
|
|
||||||
published by the Free Software Foundation; either version 2 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
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with the GNU C Library; see the file COPYING.LIB. If
|
|
||||||
not, see <https://www.gnu.org/licenses/>. */
|
|
||||||
|
|
||||||
/* The kernel header pollutes the namespace with the NR_OPEN symbol
|
|
||||||
and defines LINK_MAX although filesystems have different maxima. A
|
|
||||||
similar thing is true for OPEN_MAX: the limit can be changed at
|
|
||||||
runtime and therefore the macro must not be defined. Remove this
|
|
||||||
after including the header if necessary. */
|
|
||||||
#ifndef NR_OPEN
|
|
||||||
# define __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
#ifndef LINK_MAX
|
|
||||||
# define __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef OPEN_MAX
|
|
||||||
# define __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
#ifndef ARG_MAX
|
|
||||||
# define __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The kernel sources contain a file with all the needed information. */
|
|
||||||
#include <linux/limits.h>
|
|
||||||
|
|
||||||
/* Have to remove NR_OPEN? */
|
|
||||||
#ifdef __undef_NR_OPEN
|
|
||||||
# undef NR_OPEN
|
|
||||||
# undef __undef_NR_OPEN
|
|
||||||
#endif
|
|
||||||
/* Have to remove LINK_MAX? */
|
|
||||||
#ifdef __undef_LINK_MAX
|
|
||||||
# undef LINK_MAX
|
|
||||||
# undef __undef_LINK_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove OPEN_MAX? */
|
|
||||||
#ifdef __undef_OPEN_MAX
|
|
||||||
# undef OPEN_MAX
|
|
||||||
# undef __undef_OPEN_MAX
|
|
||||||
#endif
|
|
||||||
/* Have to remove ARG_MAX? */
|
|
||||||
#ifdef __undef_ARG_MAX
|
|
||||||
# undef ARG_MAX
|
|
||||||
# undef __undef_ARG_MAX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The number of data keys per process. */
|
|
||||||
#define _POSIX_THREAD_KEYS_MAX 128
|
|
||||||
/* This is the value this implementation supports. */
|
|
||||||
#define PTHREAD_KEYS_MAX 1024
|
|
||||||
|
|
||||||
/* Controlling the iterations of destructors for thread-specific data. */
|
|
||||||
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
|
|
||||||
/* Number of iterations this implementation does. */
|
|
||||||
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
|
|
||||||
|
|
||||||
/* The number of threads per process. */
|
|
||||||
#define _POSIX_THREAD_THREADS_MAX 64
|
|
||||||
/* We have no predefined limit on the number of threads. */
|
|
||||||
#undef PTHREAD_THREADS_MAX
|
|
||||||
|
|
||||||
/* Maximum amount by which a process can descrease its asynchronous I/O
|
|
||||||
priority level. */
|
|
||||||
#define AIO_PRIO_DELTA_MAX 20
|
|
||||||
|
|
||||||
/* Minimum size for a thread. We are free to choose a reasonable value. */
|
|
||||||
#define PTHREAD_STACK_MIN 24576
|
|
||||||
|
|
||||||
/* Maximum number of timer expiration overruns. */
|
|
||||||
#define DELAYTIMER_MAX 2147483647
|
|
||||||
|
|
||||||
/* Maximum tty name length. */
|
|
||||||
#define TTY_NAME_MAX 32
|
|
||||||
|
|
||||||
/* Maximum login name length. This is arbitrary. */
|
|
||||||
#define LOGIN_NAME_MAX 256
|
|
||||||
|
|
||||||
/* Maximum host name length. */
|
|
||||||
#define HOST_NAME_MAX 64
|
|
||||||
|
|
||||||
/* Maximum message queue priority level. */
|
|
||||||
#define MQ_PRIO_MAX 32768
|
|
||||||
|
|
||||||
/* Maximum value the semaphore can have. */
|
|
||||||
#define SEM_VALUE_MAX (2147483647)
|
|
20
sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
Normal file
20
sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Definition of PTHREAD_STACK_MIN. Linux/SPARC 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 Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 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
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. 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 24576
|
39
sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
Normal file
39
sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/* __get_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/>. */
|
||||||
|
|
||||||
|
/* Return sysconf (_SC_THREAD_STACK_MIN). */
|
||||||
|
|
||||||
|
static inline long int
|
||||||
|
__get_pthread_stack_min (void)
|
||||||
|
{
|
||||||
|
/* sysconf (_SC_THREAD_STACK_MIN) >= sysconf (_SC_MINSIGSTKSZ). */
|
||||||
|
long int pthread_stack_min = GLRO(dl_minsigstacksize);
|
||||||
|
assert (pthread_stack_min != 0);
|
||||||
|
_Static_assert (__builtin_constant_p (PTHREAD_STACK_MIN),
|
||||||
|
"PTHREAD_STACK_MIN is constant");
|
||||||
|
/* Return MAX (PTHREAD_STACK_MIN, pthread_stack_min). */
|
||||||
|
if (pthread_stack_min < PTHREAD_STACK_MIN)
|
||||||
|
pthread_stack_min = PTHREAD_STACK_MIN;
|
||||||
|
/* We have a private interface, __pthread_get_minstack@GLIBC_PRIVATE
|
||||||
|
which returns a larger size that includes the required TLS variable
|
||||||
|
space which has been determined at startup. For sysconf here we are
|
||||||
|
conservative and don't include the space required for TLS access.
|
||||||
|
Eventually the TLS variable space will not be part of the stack
|
||||||
|
(Bug 11787). */
|
||||||
|
return pthread_stack_min;
|
||||||
|
}
|
Reference in New Issue
Block a user