diff options
author | Fabrice Popineau <[email protected]> | 2014-05-27 20:31:17 +0300 |
---|---|---|
committer | Eli Zaretskii <[email protected]> | 2014-05-27 20:31:17 +0300 |
commit | 587fd086a045f715932f886ecf31015932464ce6 (patch) | |
tree | d8c647af107ef94318fd920a05da09af654ef1c9 /configure.ac | |
parent | 0da7d35c6754b44d1ef4383e4a8ba9b98afc3a4c (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.ac | 22 |
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 |