patch 8.2.2550: signal stack size is wrong with latest glibc 2.34

Problem:    Signal stack size is wrong with latest glibc 2.34.
Solution:   Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes
            #7895)
diff --git a/src/os_unix.c b/src/os_unix.c
index 1edc7e6..1c80799 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -783,7 +783,7 @@
  * completely full.
  */
 
-#ifndef SIGSTKSZ
+#if !defined SIGSTKSZ && !defined(HAVE_SYSCONF_SIGSTKSZ)
 # define SIGSTKSZ 8000    // just a guess of how much stack is needed...
 #endif
 
@@ -806,13 +806,21 @@
 #  else
 	sigstk.ss_sp = signal_stack;
 #  endif
+#  ifdef HAVE_SYSCONF_SIGSTKSZ
+	sigstk.ss_size = sysconf(_SC_SIGSTKSZ);
+#  else
 	sigstk.ss_size = SIGSTKSZ;
+#  endif
 	sigstk.ss_flags = 0;
 	(void)sigaltstack(&sigstk, NULL);
 # else
 	sigstk.ss_sp = signal_stack;
 	if (stack_grows_downwards)
+#  ifdef HAVE_SYSCONF_SIGSTKSZ
+	    sigstk.ss_sp += sysconf(_SC_SIGSTKSZ) - 1;
+#  else
 	    sigstk.ss_sp += SIGSTKSZ - 1;
+#  endif
 	sigstk.ss_onstack = 0;
 	(void)sigstack(&sigstk, NULL);
 # endif
@@ -3261,7 +3269,11 @@
      * Ignore any errors.
      */
 #if defined(HAVE_SIGALTSTACK) || defined(HAVE_SIGSTACK)
+# ifdef HAVE_SYSCONF_SIGSTKSZ
+    signal_stack = alloc(sysconf(_SC_SIGSTKSZ));
+# else
     signal_stack = alloc(SIGSTKSZ);
+# endif
     init_signal_stack();
 #endif
 }