diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-05-14 09:33:20 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-05-14 09:33:20 +0900 |
commit | 7cf90f99f5674fdadc0ff9d8341b315b2490ea26 (patch) | |
tree | 39d4e1992719680e2ebaf23fd10d6c76bfa0ded6 | |
parent | a168c4772827bc6105177c4b605dcf6e6e1943a5 (diff) |
Refix PAGE_SIZE
* honor actually used headers
* include sys/user.h only when `PAGE_SIZE` is not defined
-rw-r--r-- | configure.ac | 11 | ||||
-rw-r--r-- | gc.c | 11 |
2 files changed, 11 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac index ac737f6cc8..da65b16ccc 100644 --- a/configure.ac +++ b/configure.ac @@ -2732,14 +2732,11 @@ main(int argc, char *argv[]) test x$rb_cv_fork_with_pthread = xyes || AC_DEFINE(CANNOT_FORK_WITH_PTHREAD) ]) -AS_CASE([$target_os], - [darwin*], [ac_cv_header_sys_user_h=no], dnl LIST_HEAD conflicts with sys/queue.h - [AC_CHECK_HEADERS([sys/user.h])] -) -AS_IF([test "x$ac_cv_func_mmap:$ac_cv_header_sys_user_h" = xyes:yes], [ +AC_CHECK_HEADERS([sys/user.h]) +AS_IF([test "x$ac_cv_func_mmap" = xyes], [ AC_CACHE_CHECK([whether PAGE_SIZE is compile-time const], rb_cv_const_page_size, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ - @%:@include <sys/user.h> + [malloc_headers=`sed -n '/MALLOC_HEADERS_BEGIN/,/MALLOC_HEADERS_END/p' ${srcdir}/gc.c` + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$malloc_headers typedef char conftest_page[PAGE_SIZE]; ]], [[]])], [rb_cv_const_page_size=yes], @@ -32,6 +32,7 @@ #include <stdarg.h> #include <stdio.h> +/* MALLOC_HEADERS_BEGIN */ #ifndef HAVE_MALLOC_USABLE_SIZE # ifdef _WIN32 # define HAVE_MALLOC_USABLE_SIZE @@ -54,6 +55,12 @@ # endif #endif +#if !defined(PAGE_SIZE) && defined(HAVE_SYS_USER_H) +/* LIST_HEAD conflicts with sys/queue.h on macOS */ +# include <sys/user.h> +#endif +/* MALLOC_HEADERS_END */ + #ifdef HAVE_SYS_TIME_H # include <sys/time.h> #endif @@ -71,10 +78,6 @@ #include <sys/types.h> -#ifdef HAVE_SYS_USER_H -# include <sys/user.h> -#endif - #ifdef __EMSCRIPTEN__ #include <emscripten.h> #endif |