[前][次][番号順一覧][スレッド一覧]

ruby-changes:70766

From: Yuta <ko1@a...>
Date: Fri, 7 Jan 2022 02:13:44 +0900 (JST)
Subject: [ruby-changes:70766] ae51f304d2 (master): io_buffer.c: use mremap based resizing only when mremap available

https://git.ruby-lang.org/ruby.git/commit/?id=ae51f304d2

From ae51f304d28ca8ff3e0680448371c936f10490d0 Mon Sep 17 00:00:00 2001
From: Yuta Saito <kateinoigakukun@g...>
Date: Fri, 7 Jan 2022 00:07:14 +0900
Subject: io_buffer.c: use mremap based resizing only when mremap available

some libc implementations (e.g. wasi-libc) define MREMAP_MAYMOVE, but
don't have mremap itself, so guard the use of mremap by HAVE_MREMAP
---
 configure.ac | 1 +
 io_buffer.c  | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 5a6b074f8a1..b870896b5d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2032,6 +2032,7 @@ AC_CHECK_FUNCS(mkfifo) https://github.com/ruby/ruby/blob/trunk/configure.ac#L2032
 AC_CHECK_FUNCS(mknod)
 AC_CHECK_FUNCS(mktime)
 AC_CHECK_FUNCS(mmap)
+AC_CHECK_FUNCS(mremap)
 AC_CHECK_FUNCS(openat)
 AC_CHECK_FUNCS(pipe2)
 AC_CHECK_FUNCS(poll)
diff --git a/io_buffer.c b/io_buffer.c
index 71136d4eb6c..fb18e729a64 100644
--- a/io_buffer.c
+++ b/io_buffer.c
@@ -1239,7 +1239,7 @@ rb_io_buffer_resize(VALUE self, size_t size) https://github.com/ruby/ruby/blob/trunk/io_buffer.c#L1239
         rb_raise(rb_eIOBufferAccessError, "Cannot resize external buffer!");
     }
 
-#ifdef MREMAP_MAYMOVE
+#if defined(HAVE_MREMAP) && defined(MREMAP_MAYMOVE)
     if (data->flags & RB_IO_BUFFER_MAPPED) {
         void *base = mremap(data->base, data->size, size, MREMAP_MAYMOVE);
 
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]