[libc-commits] [libc] [libc] fix rv32 mmap in auxv library (PR #162519)
Schrodinger ZHU Yifan via libc-commits
libc-commits at lists.llvm.org
Wed Oct 8 11:11:32 PDT 2025
https://github.com/SchrodingerZhu created https://github.com/llvm/llvm-project/pull/162519
None
>From b5a990636da6540ce03426b7895892459886d444 Mon Sep 17 00:00:00 2001
From: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
Date: Wed, 8 Oct 2025 14:10:57 -0400
Subject: [PATCH] [libc] fix rv32 mmap in auxv library
---
libc/src/__support/OSUtil/linux/auxv.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libc/src/__support/OSUtil/linux/auxv.h b/libc/src/__support/OSUtil/linux/auxv.h
index 7fb996f01dd84..894868ae5824d 100644
--- a/libc/src/__support/OSUtil/linux/auxv.h
+++ b/libc/src/__support/OSUtil/linux/auxv.h
@@ -81,7 +81,12 @@ LIBC_INLINE void Vector::initialize_unsafe(const Entry *auxv) {
[[gnu::cold]]
LIBC_INLINE void Vector::fallback_initialize_unsync() {
constexpr size_t AUXV_MMAP_SIZE = FALLBACK_AUXV_ENTRIES * sizeof(Entry);
- long mmap_ret = syscall_impl<long>(SYS_mmap, nullptr, AUXV_MMAP_SIZE,
+#ifdef SYS_mmap2
+ constexpr int MMAP_SYSNO = SYS_mmap2;
+#else
+ constexpr int MMAP_SYSNO = SYS_mmap;
+#endif
+ long mmap_ret = syscall_impl<long>(MMAP_SYSNO, nullptr, AUXV_MMAP_SIZE,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
// We do not proceed if mmap fails.
More information about the libc-commits
mailing list