[PATCH] features: version-gate _DYNAMIC_STACK_SIZE_SOURCE
Andrew Kelley
andrew@ziglang.org
Sat Jan 29 02:37:27 GMT 2022
Without this patch, software compiled against glibc 2.34 headers but
then executed on a system with an older glibc version will attempt to
invoke `sysconf(_SC_SIGSTKSZ)` when MINSIGSTKSZ or SIGSTKSZ are used. On
glibcs older than 2.34, this will return -1 (with an errno of EINVAL),
effectively causing MINSIGSTKSZ and SIGSTKSZ to have the value of -1.
This patch version-gates the _DYNAMIC_STACK_SIZE_SOURCE preprocessor
definition so that this problem cannot occur.
Downstream patch:
https://github.com/ziglang/zig/commit/39083c31a550ed80f369f60d35791e98904b8096
---
include/features.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/features.h b/include/features.h
index ab2b2caac4..77a8f8cc32 100644
--- a/include/features.h
+++ b/include/features.h
@@ -220,8 +220,10 @@
# define _DEFAULT_SOURCE 1
# undef _ATFILE_SOURCE
# define _ATFILE_SOURCE 1
-# undef _DYNAMIC_STACK_SIZE_SOURCE
-# define _DYNAMIC_STACK_SIZE_SOURCE 1
+# if __GNUC_PREREQ (2,34)
+# undef _DYNAMIC_STACK_SIZE_SOURCE
+# define _DYNAMIC_STACK_SIZE_SOURCE 1
+# endif
#endif
/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
--
2.33.1
More information about the Libc-alpha
mailing list