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
This commit is contained in:
Yuta Saito 2022-01-07 00:07:14 +09:00 коммит произвёл Yusuke Endoh
Родитель 5ad507d751
Коммит ae51f304d2
2 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -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)

Просмотреть файл

@ -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);