aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorFabrice Popineau <[email protected]>2014-05-27 20:31:17 +0300
committerEli Zaretskii <[email protected]>2014-05-27 20:31:17 +0300
commit587fd086a045f715932f886ecf31015932464ce6 (patch)
treed8c647af107ef94318fd920a05da09af654ef1c9 /configure.ac
parent0da7d35c6754b44d1ef4383e4a8ba9b98afc3a4c (diff)
Use mmap(2) emulation for buffer text on MS-Windows.
src/Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from configure. (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used. src/lisp.h (NONPOINTER_BITS): Modify the condition to define to zero for MinGW, since it no longer uses gmalloc. src/buffer.c: Do not define mmap allocations functions for Windows. Remove mmap_find which is unused. Remove mmap_set_vars which does nothing useful. [WINDOWSNT]: Include w32heap.h. (init_buffer): Always allocate new memory for buffers. src/emacs.c: Remove mmap_set_vars calls. src/image.c (free_image): Undef free for Windows because it is redirected to our private version. src/unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility. (copy_executable_and_dump_data): Remove dumping the heap section. (unexec): Restore using_dynamic_heap after dumping. src/w32heap.c (dumped_data_commit, malloc_after_dump) (malloc_before_dump, realloc_after_dump, realloc_before_dump) (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc) (mmap_free): New functions. src/w32heap.h: Declare dumped_data and mmap_* function prototypes. nt/inc/ms-w32.h: Switch to the system heap allocation scheme instead of GNU malloc and ralloc. nt/inc/sys/mman.h: New file. nt/INSTALL: Update for the new build requirements. etc/NEWS: Mention build changes on MS-Windows. configure.ac (C_HEAP_SWITCH) define for different values of dumped heap size depending on 32/64bits arch on Windows. Don't check for pthreads.h on MinGW32/64, it gets in the way. Use mmap(2) for buffers and system malloc for MinGW32/64.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac22
1 files changed, 11 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac
index d727c0253f..84f989f7f9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1973,7 +1973,7 @@ doug_lea_malloc=$emacs_cv_var_doug_lea_malloc
system_malloc=$emacs_cv_sanitize_address
case "$opsys" in
## darwin ld insists on the use of malloc routines in the System framework.
- darwin|sol2-10) system_malloc=yes ;;
+ darwin|mingw32|sol2-10) system_malloc=yes ;;
esac
GMALLOC_OBJ=
@@ -2020,7 +2020,7 @@ if test "$doug_lea_malloc" = "yes" ; then
## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
## Does the AC_FUNC_MMAP test below make this check unnecessary?
case "$opsys" in
- gnu*) REL_ALLOC=no ;;
+ mingw32|gnu*) REL_ALLOC=no ;;
esac
fi
@@ -2030,7 +2030,7 @@ fi
use_mmap_for_buffers=no
case "$opsys" in
- cygwin|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
+ cygwin|mingw32|freebsd|irix6-5) use_mmap_for_buffers=yes ;;
esac
AC_FUNC_MMAP
@@ -2046,6 +2046,7 @@ AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
dnl Check for the POSIX thread library.
LIB_PTHREAD=
+if test "$opsys" != "mingw32"; then
AC_CHECK_HEADERS_ONCE(pthread.h)
if test "$ac_cv_header_pthread_h"; then
dnl gmalloc.c uses pthread_atfork, which is not available on older-style
@@ -2066,6 +2067,7 @@ if test "$ac_cv_header_pthread_h"; then
LIBS=$OLD_LIBS
fi
AC_SUBST([LIB_PTHREAD])
+fi
dnl Check for need for bigtoc support on IBM AIX
@@ -4817,11 +4819,9 @@ case "$opsys" in
gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;;
mingw32)
- ## MinGW64 does not prepend an underscore to symbols, so we must
- ## pass a different -entry switch to linker. FIXME: It is better
- ## to make the entry points the same by changing unexw32.c.
+ ## Is it any better under MinGW64 to relocate emacs into higher addresses?
case "$canonical" in
- x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;;
+ x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x400000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;;
*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;;
esac
;;
@@ -4845,20 +4845,20 @@ AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
## MinGW-specific post-link processing of temacs.
TEMACS_POST_LINK=":"
ADDSECTION=
-EMACS_HEAPSIZE=
+C_HEAP_SWITCH=
if test "${opsys}" = "mingw32"; then
TEMACS_POST_LINK="\$(MINGW_TEMACS_POST_LINK)"
ADDSECTION="../nt/addsection\$(EXEEXT)"
## Preload heap size of temacs.exe in MB.
case "$canonical" in
- x86_64-*-*) EMACS_HEAPSIZE=42 ;;
- *) EMACS_HEAPSIZE=27 ;;
+ x86_64-*-*) C_HEAP_SWITCH="-DHEAPSIZE=18" ;;
+ *) C_HEAP_SWITCH="-DHEAPSIZE=10" ;;
esac
fi
AC_SUBST(ADDSECTION)
AC_SUBST(TEMACS_POST_LINK)
-AC_SUBST(EMACS_HEAPSIZE)
+AC_SUBST(C_HEAP_SWITCH)
## Common for all window systems
if test "$window_system" != "none"; then