diff options
author | Rich Felker <dalias@aerifal.cx> | 2022-08-26 10:20:46 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2022-08-26 10:20:46 -0400 |
commit | 25340a93375fc6d3324ab65c154edbf8d1701801 (patch) | |
tree | e1f93eb27e55276222bdaa7141314c86841bc8e2 | |
parent | d8fddb964108e57e670d20c36e6da84796617d78 (diff) | |
download | musl-25340a93375fc6d3324ab65c154edbf8d1701801.tar.gz musl-25340a93375fc6d3324ab65c154edbf8d1701801.tar.bz2 musl-25340a93375fc6d3324ab65c154edbf8d1701801.tar.xz musl-25340a93375fc6d3324ab65c154edbf8d1701801.zip |
add sysconf keys/values for signal stack size
as a result of ISA extensions exploding register file sizes on some
archs, using a constant for minimum signal stack size no longer seems
viably future-proof. add sysconf keys allowing the kernel to provide a
machine-dependent minimum applications can query to ensure they
allocate sufficient space for stacks. the key names and indices align
with the same functionality in glibc.
see commit d5a5045382315e36588ca225889baa36ed0ed38f for previous
action on this subject.
ultimately, the macros MINSIGSTKSZ and SIGSTKSZ probably need to be
deprecated, but that is standards-amendment work outside the scope of
a single implementation.
-rw-r--r-- | include/unistd.h | 2 | ||||
-rw-r--r-- | src/conf/sysconf.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/unistd.h b/include/unistd.h index 80be3b26..0e8149e4 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -425,6 +425,8 @@ pid_t gettid(void); #define _SC_XOPEN_STREAMS 246 #define _SC_THREAD_ROBUST_PRIO_INHERIT 247 #define _SC_THREAD_ROBUST_PRIO_PROTECT 248 +#define _SC_MINSIGSTKSZ 249 +#define _SC_SIGSTKSZ 250 #define _CS_PATH 0 #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 1 diff --git a/src/conf/sysconf.c b/src/conf/sysconf.c index 3baaed32..33220daf 100644 --- a/src/conf/sysconf.c +++ b/src/conf/sysconf.c @@ -165,6 +165,9 @@ long sysconf(int name) [_SC_XOPEN_STREAMS] = JT_ZERO, [_SC_THREAD_ROBUST_PRIO_INHERIT] = -1, [_SC_THREAD_ROBUST_PRIO_PROTECT] = -1, + + [_SC_MINSIGSTKSZ] = MINSIGSTKSZ, + [_SC_SIGSTKSZ] = SIGSTKSZ, }; if (name >= sizeof(values)/sizeof(values[0]) || !values[name]) { |