Bug #13438 » 0001-Remove-overriding-of-HEAP_PAGE_ALIGN_LOG.patch
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),
|