I'm going to push the commit to all active branches (except master).

The patch is needed in order to support recent glibc (2.34).

libsanitizer/ChangeLog:

        PR sanitizer/101749
        * sanitizer_common/sanitizer_posix_libcdep.cpp: Prevent
        generation of dependency on _cxa_guard for static
        initialization.
---
 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 
b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
index 7ff48c35851..a65b16f5290 100644
--- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp
@@ -166,9 +166,10 @@ bool SupportsColoredOutput(fd_t fd) {
 #if !SANITIZER_GO
 // TODO(glider): different tools may require different altstack size.
 static uptr GetAltStackSize() {
-  // SIGSTKSZ is not enough.
-  static const uptr kAltStackSize = SIGSTKSZ * 4;
-  return kAltStackSize;
+  // Note: since GLIBC_2.31, SIGSTKSZ may be a function call, so this may be
+  // more costly that you think. However GetAltStackSize is only call 2-3 times
+  // per thread so don't cache the evaluation.
+  return SIGSTKSZ * 4;
 }
void SetAlternateSignalStack() {
--
2.32.0

Reply via email to