From ae51f304d28ca8ff3e0680448371c936f10490d0 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Fri, 7 Jan 2022 00:07:14 +0900 Subject: [PATCH] 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 5a6b074f8a..b870896b5d 100644 --- a/configure.ac +++ b/configure.ac @@ -2032,6 +2032,7 @@ AC_CHECK_FUNCS(mkfifo) 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 71136d4eb6..fb18e729a6 100644 --- a/io_buffer.c +++ b/io_buffer.c @@ -1239,7 +1239,7 @@ rb_io_buffer_resize(VALUE self, size_t size) 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);