From patchwork Thu Jul 15 08:13:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Majewski X-Patchwork-Id: 44345 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B18163AA990D for ; Thu, 15 Jul 2021 08:14:21 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) by sourceware.org (Postfix) with ESMTPS id CFEE13861800 for ; Thu, 15 Jul 2021 08:14:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CFEE13861800 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=denx.de Received: from localhost.localdomain (85-222-111-42.dynamic.chello.pl [85.222.111.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: lukma@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id 0166B829B7; Thu, 15 Jul 2021 10:14:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1626336842; bh=46XX+7Dy+ob5l78jsqh5yJXadFHVJnbarWrAQTfcGCc=; h=From:To:Cc:Subject:Date:From; b=oeIJ8mTFIyXNddEI3aRFHnM2dx5rU1t/NBiG0CrnKmGVDhEy4EZBaV457VOXjzTct VGjMJKAT2gOS0VObhXVCGTPOsbxPiif24F2WkC6jBqTg0MH6lKiR565QHRYZcZ6eJz 6rqP6Xtst168i1dZgpZCPpnjquIzDnV/1q9ymGO9eilHWzgucfzVz691O/34Fb28mh AMv9OhDUV168evC3PhO4N/WBxMoQwhjBds1TBdhI7FWbTKKH8Y/LoqQ0/PkQ9UN0ku eVj1ov4pzLRRgVv9CFCu8053TwcwCjH1pFkousZPmNR/kE6ZGnht8HPynB7/W/J1/b S6XrIum7QQnSQ== From: Lukasz Majewski To: Adhemerval Zanella , "H . J . Lu" Subject: [PATCH] Revert "Define PTHREAD_STACK_MIN to sysconf(_SC_THREAD_STACK_MIN)" Date: Thu, 15 Jul 2021 10:13:39 +0200 Message-Id: <20210715081339.1057-1-lukma@denx.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_BARRACUDACENTRAL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libc-alpha Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" This reverts commit 5d98a7dae955bafa6740c26eaba9c86060ae0344. The problem is with building gcc-runtime recipe (libgomp to be precise) under Yocto/OE (newest master). This library calls sysconf function from glibc. Before this commit it gave back the value based on some preprocessor defines. Now it wants to call the sysconf syscall, which cannot be properly served with the Yocto/OE environment and results if following error: libgomp/config/linux/proc.c:85: undefined reference to `sysconf' --- I've double checked and the sysconf symbol from glibc is properly exported. The SHA1 of glibc: 8235f9311bddbe4cf8ff1fa8f72f41aa77e27e00 Branch: -master --- NEWS | 8 +- include/bits/local_lim.h | 7 -- include/features.h | 18 ++-- manual/creature.texi | 4 +- nptl/tst-context1.c | 15 +-- stdlib/test-atexit-race-common.c | 11 +- support/support_path_support_time64.c | 1 - sysdeps/posix/sysconf-pthread_stack_min.h | 29 ----- sysdeps/posix/sysconf.c | 7 +- sysdeps/unix/sysv/linux/Makefile | 3 +- .../unix/sysv/linux/aarch64/bits/local_lim.h | 101 ++++++++++++++++++ .../linux/aarch64/bits/pthread_stack_min.h | 22 ---- .../unix/sysv/linux/alpha/bits/local_lim.h | 99 +++++++++++++++++ .../sysv/linux/alpha/bits/pthread_stack_min.h | 20 ---- sysdeps/unix/sysv/linux/bits/local_lim.h | 8 +- .../unix/sysv/linux/bits/pthread_stack_min.h | 20 ---- sysdeps/unix/sysv/linux/bits/sigstksz.h | 2 +- sysdeps/unix/sysv/linux/ia64/bits/local_lim.h | 99 +++++++++++++++++ .../sysv/linux/ia64/bits/pthread_stack_min.h | 20 ---- sysdeps/unix/sysv/linux/mips/bits/local_lim.h | 99 +++++++++++++++++ .../sysv/linux/mips/bits/pthread_stack_min.h | 20 ---- .../unix/sysv/linux/powerpc/bits/local_lim.h | 100 +++++++++++++++++ .../linux/powerpc/bits/pthread_stack_min.h | 21 ---- .../unix/sysv/linux/sparc/bits/local_lim.h | 99 +++++++++++++++++ .../sysv/linux/sparc/bits/pthread_stack_min.h | 20 ---- .../sysv/linux/sysconf-pthread_stack_min.h | 39 ------- 26 files changed, 626 insertions(+), 266 deletions(-) delete mode 100644 include/bits/local_lim.h delete mode 100644 sysdeps/posix/sysconf-pthread_stack_min.h create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h delete mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/local_lim.h delete mode 100644 sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h delete mode 100644 sysdeps/unix/sysv/linux/bits/pthread_stack_min.h create mode 100644 sysdeps/unix/sysv/linux/ia64/bits/local_lim.h delete mode 100644 sysdeps/unix/sysv/linux/ia64/bits/pthread_stack_min.h create mode 100644 sysdeps/unix/sysv/linux/mips/bits/local_lim.h delete mode 100644 sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h delete mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/local_lim.h delete mode 100644 sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h delete mode 100644 sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h diff --git a/NEWS b/NEWS index 13ffe627da5..91d5f175989 100644 --- a/NEWS +++ b/NEWS @@ -9,12 +9,8 @@ Version 2.34 Major new features: -* When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, - 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 +* Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ. When _SC_SIGSTKSZ_SOURCE or + _GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer constant on Linux. MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ) and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ). diff --git a/include/bits/local_lim.h b/include/bits/local_lim.h deleted file mode 100644 index 46d82dc7298..00000000000 --- a/include/bits/local_lim.h +++ /dev/null @@ -1,7 +0,0 @@ -/* 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 diff --git a/include/features.h b/include/features.h index 51c8a98fb0b..039bcb112be 100644 --- a/include/features.h +++ b/include/features.h @@ -50,8 +50,8 @@ _LARGEFILE64_SOURCE Additional functionality from LFS for large files. _FILE_OFFSET_BITS=N Select default filesystem interface. _ATFILE_SOURCE Additional *at interfaces. - _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) - MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. + _SC_SIGSTKSZ_SOURCE Select correct (but non compile-time constant) + MINSIGSTKSZ and SIGSTKSZ. _GNU_SOURCE All of the above, plus GNU extensions. _DEFAULT_SOURCE The default set of features (taking precedence over __STRICT_ANSI__). @@ -98,8 +98,8 @@ __USE_FILE_OFFSET64 Define 64bit interface as default. __USE_MISC Define things from 4.3BSD or System V Unix. __USE_ATFILE Define *at interfaces and AT_* constants for them. - __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) - MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. + __USE_SC_SIGSTKSZ Define correct (but non compile-time constant) + MINSIGSTKSZ and SIGSTKSZ. __USE_GNU Define GNU extensions. __USE_FORTIFY_LEVEL Additional security measures used, according to level. @@ -143,7 +143,7 @@ #undef __USE_FILE_OFFSET64 #undef __USE_MISC #undef __USE_ATFILE -#undef __USE_DYNAMIC_STACK_SIZE +#undef __USE_SC_SIGSTKSZ #undef __USE_GNU #undef __USE_FORTIFY_LEVEL #undef __KERNEL_STRICT_NAMES @@ -220,8 +220,8 @@ # define _DEFAULT_SOURCE 1 # undef _ATFILE_SOURCE # define _ATFILE_SOURCE 1 -# undef _DYNAMIC_STACK_SIZE_SOURCE -# define _DYNAMIC_STACK_SIZE_SOURCE 1 +# undef _SC_SIGSTKSZ_SOURCE +# define _SC_SIGSTKSZ_SOURCE 1 #endif /* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, @@ -399,8 +399,8 @@ # define __USE_ATFILE 1 #endif -#ifdef _DYNAMIC_STACK_SIZE_SOURCE -# define __USE_DYNAMIC_STACK_SIZE 1 +#ifdef _SC_SIGSTKSZ_SOURCE +# define __USE_SC_SIGSTKSZ 1 #endif #ifdef _GNU_SOURCE diff --git a/manual/creature.texi b/manual/creature.texi index c13de52f1f0..d3c4fa4702d 100644 --- a/manual/creature.texi +++ b/manual/creature.texi @@ -308,10 +308,10 @@ checks are applied. If defined to @math{3}, @theglibc{} may also use checks that may have an additional performance overhead. @end defvr -@defvr Macro _DYNAMIC_STACK_SIZE_SOURCE +@defvr Macro _SC_SIGSTKSZ_SOURCE @standards{GNU, (none)} If this macro is defined, correct (but non compile-time constant) -MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN are defined. +MINSIGSTKSZ and SIGSTKSZ are defined. @end defvr @defvr Macro _REENTRANT diff --git a/nptl/tst-context1.c b/nptl/tst-context1.c index 00e39aff9f8..821f3c21337 100644 --- a/nptl/tst-context1.c +++ b/nptl/tst-context1.c @@ -23,7 +23,6 @@ #include #include #include -#include #define N 4 #if __WORDSIZE == 64 @@ -37,8 +36,7 @@ typedef struct { unsigned long guard[3]; } tst_context_t; -static char *stacks[N]; -static size_t stack_size; +static char stacks[N][2 * PTHREAD_STACK_MIN]; static tst_context_t ctx[N][2]; static volatile int failures; @@ -81,7 +79,7 @@ fct (long int n) exit (1); } - if (on_stack < stacks[n] || on_stack >= stacks[n] + stack_size) + if (on_stack < stacks[n] || on_stack >= stacks[n] + sizeof (stacks[0])) { printf ("%ld: on_stack not on appropriate stack\n", n); exit (1); @@ -111,7 +109,7 @@ tf (void *arg) 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_size = stack_size; + ctx[n][1].uctx.uc_stack.ss_size = sizeof (stacks[n]); ctx[n][1].uctx.uc_link = &ctx[n][0].uctx; makecontext (&ctx[n][1].uctx, (void (*) (void)) fct, 1, (long int) n); @@ -139,10 +137,6 @@ do_test (void) pthread_t th[N]; ucontext_t mctx; - stack_size = 2 * PTHREAD_STACK_MIN; - for (int i = 0; i < N; i++) - stacks[i] = xmalloc (stack_size); - puts ("making contexts"); if (getcontext (&mctx) != 0) { @@ -204,9 +198,6 @@ do_test (void) exit (1); } - for (int i = 0; i < N; i++) - free (stacks[i]); - return failures; } diff --git a/stdlib/test-atexit-race-common.c b/stdlib/test-atexit-race-common.c index b48bb162853..a2b54685803 100644 --- a/stdlib/test-atexit-race-common.c +++ b/stdlib/test-atexit-race-common.c @@ -38,6 +38,11 @@ const size_t kNumThreads = 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 * threadfunc (void *unused) @@ -61,12 +66,6 @@ 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. */ - size_t kStacksize = -#ifdef PTHREAD_STACK_MIN - 0x20000 < PTHREAD_STACK_MIN ? PTHREAD_STACK_MIN : -#endif - 0x20000; - xpthread_attr_setstacksize (&attr, kStacksize); for (i = 0; i < kNumThreads; ++i) { diff --git a/support/support_path_support_time64.c b/support/support_path_support_time64.c index 619a4eab00e..33b2bdff668 100644 --- a/support/support_path_support_time64.c +++ b/support/support_path_support_time64.c @@ -17,7 +17,6 @@ . */ #include -#include #include #include #include diff --git a/sysdeps/posix/sysconf-pthread_stack_min.h b/sysdeps/posix/sysconf-pthread_stack_min.h deleted file mode 100644 index f5be2e6f9f8..00000000000 --- a/sysdeps/posix/sysconf-pthread_stack_min.h +++ /dev/null @@ -1,29 +0,0 @@ -/* __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 - . */ - -/* 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 5fb3fb6c1c3..3e8ec5cd512 100644 --- a/sysdeps/posix/sysconf.c +++ b/sysdeps/posix/sysconf.c @@ -31,7 +31,6 @@ #include #include #include -#include #define NEED_SPEC_ARRAY 0 #include @@ -570,7 +569,11 @@ __sysconf (int name) #endif case _SC_THREAD_STACK_MIN: - return __get_pthread_stack_min (); +#ifdef PTHREAD_STACK_MIN + return PTHREAD_STACK_MIN; +#else + return -1; +#endif case _SC_THREAD_THREADS_MAX: #ifdef PTHREAD_THREADS_MAX diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 7d43dc95f25..d45a16af8ba 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -108,8 +108,7 @@ sysdep_headers += sys/mount.h sys/acct.h \ bits/types/struct_semid64_ds.h \ bits/types/struct_semid64_ds_helper.h \ bits/types/struct_shmid64_ds.h \ - bits/types/struct_shmid64_ds_helper.h \ - bits/pthread_stack_min.h + bits/types/struct_shmid64_ds_helper.h tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \ diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h b/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h new file mode 100644 index 00000000000..0652bf4a068 --- /dev/null +++ b/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h @@ -0,0 +1,101 @@ +/* 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 + . */ + +/* 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 + +/* 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) diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h deleted file mode 100644 index 97215687ad2..00000000000 --- a/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h +++ /dev/null @@ -1,22 +0,0 @@ -/* 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 - . */ - -/* Minimum size for a thread. At least two pages for systems with 64k - pages. */ -#define PTHREAD_STACK_MIN 131072 diff --git a/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h b/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h new file mode 100644 index 00000000000..523407dc486 --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h @@ -0,0 +1,99 @@ +/* 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 + . */ + +/* 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 + +/* 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) diff --git a/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h deleted file mode 100644 index 5bfb0e10dd6..00000000000 --- a/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h +++ /dev/null @@ -1,20 +0,0 @@ -/* 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 - . */ - -/* Minimum size for a thread. We are free to choose a reasonable value. */ -#define PTHREAD_STACK_MIN 24576 diff --git a/sysdeps/unix/sysv/linux/bits/local_lim.h b/sysdeps/unix/sysv/linux/bits/local_lim.h index 0b1c7f40be6..b88ca3d4d20 100644 --- a/sysdeps/unix/sysv/linux/bits/local_lim.h +++ b/sysdeps/unix/sysv/linux/bits/local_lim.h @@ -78,13 +78,7 @@ #define AIO_PRIO_DELTA_MAX 20 /* Minimum size for a thread. We are free to choose a reasonable value. */ -#undef PTHREAD_STACK_MIN -#if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE -# include -# define PTHREAD_STACK_MIN sysconf (_SC_THREAD_STACK_MIN) -#else -# include -#endif +#define PTHREAD_STACK_MIN 16384 /* 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 deleted file mode 100644 index 7bd6fa1242e..00000000000 --- a/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h +++ /dev/null @@ -1,20 +0,0 @@ -/* 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 - . */ - -/* 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 cd45d122e09..926508f2b45 100644 --- a/sysdeps/unix/sysv/linux/bits/sigstksz.h +++ b/sysdeps/unix/sysv/linux/bits/sigstksz.h @@ -20,7 +20,7 @@ # error "Never include directly; use instead." #endif -#if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE +#if defined __USE_SC_SIGSTKSZ && __USE_SC_SIGSTKSZ # include /* Default stack size for a signal handler: sysconf (SC_SIGSTKSZ). */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h b/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h new file mode 100644 index 00000000000..7a9f677ec86 --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h @@ -0,0 +1,99 @@ +/* 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 + . */ + +/* 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 + +/* 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) diff --git a/sysdeps/unix/sysv/linux/ia64/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/ia64/bits/pthread_stack_min.h deleted file mode 100644 index 73581506b26..00000000000 --- a/sysdeps/unix/sysv/linux/ia64/bits/pthread_stack_min.h +++ /dev/null @@ -1,20 +0,0 @@ -/* 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 - . */ - -/* Minimum size for a thread. We are free to choose a reasonable value. */ -#define PTHREAD_STACK_MIN 196608 diff --git a/sysdeps/unix/sysv/linux/mips/bits/local_lim.h b/sysdeps/unix/sysv/linux/mips/bits/local_lim.h new file mode 100644 index 00000000000..a6a0d8a9800 --- /dev/null +++ b/sysdeps/unix/sysv/linux/mips/bits/local_lim.h @@ -0,0 +1,99 @@ +/* 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 + . */ + +/* 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 + +/* 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) diff --git a/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h deleted file mode 100644 index 132f1704a57..00000000000 --- a/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h +++ /dev/null @@ -1,20 +0,0 @@ -/* 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 - . */ - -/* Minimum size for a thread. At least two pages with 64k pages. */ -#define PTHREAD_STACK_MIN 131072 diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h b/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h new file mode 100644 index 00000000000..6caa627506a --- /dev/null +++ b/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h @@ -0,0 +1,100 @@ +/* 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 . */ + +/* 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 + +/* 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) diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h deleted file mode 100644 index d7017e7b244..00000000000 --- a/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h +++ /dev/null @@ -1,21 +0,0 @@ -/* 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 . */ - -/* Minimum size for a thread. At least two pages for systems with 64k - pages. */ -#define PTHREAD_STACK_MIN 131072 diff --git a/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h b/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h new file mode 100644 index 00000000000..4a9a8c1325d --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h @@ -0,0 +1,99 @@ +/* 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 . */ + +/* 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 + +/* 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) diff --git a/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h deleted file mode 100644 index bcacedb73b3..00000000000 --- a/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h +++ /dev/null @@ -1,20 +0,0 @@ -/* 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 . */ - -/* Minimum size for a thread. We are free to choose a reasonable value. */ -#define PTHREAD_STACK_MIN 24576 diff --git a/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h b/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h deleted file mode 100644 index 9e0eb0f7fc1..00000000000 --- a/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h +++ /dev/null @@ -1,39 +0,0 @@ -/* __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 - . */ - -/* 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; -}