зеркало из https://github.com/github/ruby.git
Remove HEAP_ALIGN_LOG setting in configure.ac for OpenBSD/MirOS
The ruby setting was renamed to HEAP_PAGE_ALIGN_LOG, but the configure.in (now configure.ac) file was not updated, so the setting had no effect. The configure setting is unnecessary after OpenBSD 5.2 and MirOS has been discontinued (with the last release being over 10 years ago), so it is better to just remove the related configure setting. Fix [Bug #13438] From: Jeremy Evans <code@jeremyevans.net> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
493955c692
Коммит
0b899a25f5
28
configure.ac
28
configure.ac
|
@ -1641,34 +1641,6 @@ AS_IF([test $rb_cv_stack_end_address != no], [
|
|||
AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)
|
||||
])
|
||||
|
||||
# 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])
|
||||
AS_IF([test $rb_cv_page_size_log != no], [
|
||||
AC_DEFINE_UNQUOTED(HEAP_ALIGN_LOG, $rb_cv_page_size_log)
|
||||
], [
|
||||
AC_DEFINE_UNQUOTED(HEAP_ALIGN_LOG, 12)
|
||||
])
|
||||
])
|
||||
|
||||
dnl Checks for library functions.
|
||||
AC_TYPE_GETGROUPS
|
||||
AC_TYPE_SIGNAL
|
||||
|
|
2
gc.c
2
gc.c
|
@ -649,10 +649,8 @@ typedef struct rb_objspace {
|
|||
} 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),
|
||||
|
|
Загрузка…
Ссылка в новой задаче