From 03b00985c181f90a927b9af5316d27a534398c24 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Thu, 7 Jan 2016 17:14:04 +0100 Subject: erts: Add config test for MAP_NORESERVE for hipe on 64-bit to get a nicer error on FreeBSD and others that does not support MAP_NORESERVE for mmap. Q: How to support this? A: Implement the "literal tag" in hipe or another way to reserve virtual address space in erl_mmap.c --- erts/configure.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'erts') diff --git a/erts/configure.in b/erts/configure.in index 20075b08c9..2f19c0f760 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -2765,6 +2765,21 @@ LM_SYS_IPV6 LM_SYS_MULTICAST ERL_TIME_CORRECTION AC_CHECK_PROG(M4, m4, m4) + + +dnl HiPE cannot run on 64-bit without MAP_FIXED and MAP_NORESERVE +if test X${enable_hipe} != Xno && test X$ac_cv_sizeof_void_p != X4; then + AC_CHECK_DECLS([MAP_FIXED, MAP_NORESERVE], [], [], [#include ]) + if test X$ac_cv_have_decl_MAP_FIXED != Xyes || test X$ac_cv_have_decl_MAP_NORESERVE != Xyes; then + if test X${enable_hipe} = Xyes; then + AC_MSG_ERROR([HiPE on 64-bit needs MAP_FIXED and MAP_NORESERVE flags for mmap()]) + else + enable_hipe=no + AC_MSG_WARN([Disable HiPE due to lack of MAP_FIXED and MAP_NORESERVE flags for mmap()]) + fi + fi +fi + dnl check to auto-enable hipe here... if test "$cross_compiling" != "yes" && test X${enable_hipe} != Xno; then if test -z "$M4"; then -- cgit v1.2.3