From 91f0447d4a136a3e76412f6908e6631b9f0cb4c9 Mon Sep 17 00:00:00 2001 From: TCMalloc Team Date: Tue, 4 Aug 2026 15:57:03 -0700 Subject: [PATCH] Conditionally enable process_vm_readv based on glibc version. PiperOrigin-RevId: 959276375 --- tcmalloc/internal/util.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tcmalloc/internal/util.cc b/tcmalloc/internal/util.cc index 847a0e1bb..96b41f33c 100644 --- a/tcmalloc/internal/util.cc +++ b/tcmalloc/internal/util.cc @@ -21,6 +21,10 @@ #include #if defined(__linux__) #include +#if defined(__GLIBC__) && \ + ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 15)) +#define HAS_PROCESS_VM_READV 1 +#endif #endif // defined(__linux__) #include @@ -130,7 +134,7 @@ bool SafeCopyMemory(const void* src, void* dst, size_t size) { if (src == nullptr || dst == nullptr || size == 0) { return false; } -#if defined(__linux__) +#if defined(HAS_PROCESS_VM_READV) struct iovec local_iov; local_iov.iov_base = dst; local_iov.iov_len = size; @@ -144,7 +148,7 @@ bool SafeCopyMemory(const void* src, void* dst, size_t size) { return bytes == static_cast(size); #else return false; -#endif // defined(__linux__) +#endif // defined(HAS_PROCESS_VM_READV) } } // namespace tcmalloc_internal