Project

General

Profile

Bug #13438 » 0001-Remove-overriding-of-HEAP_PAGE_ALIGN_LOG.patch

jeremyevans0 (Jeremy Evans), 04/18/2017 11:47 PM

View differences:

configure.in
AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)
fi
# posix_memalign(memptr, alignment, size) implemented for OpenBSD 4.8 doesn't work if alignment > MALLOC_PAGESIZE.
# [ruby-core:42158] https://bugs.ruby-lang.org/issues/5901
# OpenBSD 5.2 fixed the problem. (src/lib/libc/stdlib/malloc.c:1.142)
# MirOS #10semel has the problem but fixed in the repository. (src/lib/libc/stdlib/malloc.c:1.9)
AS_CASE(["$target_os"],
[openbsd*|mirbsd*], [
AC_CACHE_CHECK(for heap align log on openbsd, rb_cv_page_size_log,
[rb_cv_page_size_log=no
for page_log in 12 13; do
AC_TRY_RUN([
#include <math.h>
#include <unistd.h>
int
main() {
if ((int)log2((double)sysconf(_SC_PAGESIZE)) != $page_log) return 1;
return 0;
}
],
rb_cv_page_size_log="$page_log"; break)
done])
if test $rb_cv_page_size_log != no; then
AC_DEFINE_UNQUOTED(HEAP_ALIGN_LOG, $rb_cv_page_size_log)
else
AC_DEFINE_UNQUOTED(HEAP_ALIGN_LOG, 12)
fi
])
dnl Checks for library functions.
AC_TYPE_GETGROUPS
AC_TYPE_SIGNAL
gc.c
} rb_objspace_t;
#ifndef HEAP_PAGE_ALIGN_LOG
/* default tiny heap size: 16KB */
#define HEAP_PAGE_ALIGN_LOG 14
#endif
#define CEILDIV(i, mod) (((i) + (mod) - 1)/(mod))
enum {
HEAP_PAGE_ALIGN = (1UL << HEAP_PAGE_ALIGN_LOG),
(3-3/4)