diff options
| -rw-r--r-- | configure.ac | 2 | ||||
| -rw-r--r-- | src/alloc.c | 22 | ||||
| -rw-r--r-- | src/emacs.c | 10 | ||||
| -rw-r--r-- | src/image.c | 3 | ||||
| -rw-r--r-- | src/lastfile.c | 4 | ||||
| -rw-r--r-- | test/Makefile.in | 7 |
6 files changed, 35 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac index c9759e18a02..2d116de3b6b 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -1366,6 +1366,7 @@ case "$opsys" in | |||
| 1366 | UNEXEC_OBJ=unexsol.o | 1366 | UNEXEC_OBJ=unexsol.o |
| 1367 | ;; | 1367 | ;; |
| 1368 | esac | 1368 | esac |
| 1369 | test "$CANNOT_DUMP" = "yes" && UNEXEC_OBJ= | ||
| 1369 | 1370 | ||
| 1370 | LD_SWITCH_SYSTEM= | 1371 | LD_SWITCH_SYSTEM= |
| 1371 | case "$opsys" in | 1372 | case "$opsys" in |
| @@ -2154,6 +2155,7 @@ doug_lea_malloc=$emacs_cv_var_doug_lea_malloc | |||
| 2154 | hybrid_malloc= | 2155 | hybrid_malloc= |
| 2155 | system_malloc=yes | 2156 | system_malloc=yes |
| 2156 | 2157 | ||
| 2158 | test "$CANNOT_DUMP" = yes || | ||
| 2157 | case "$opsys" in | 2159 | case "$opsys" in |
| 2158 | ## darwin ld insists on the use of malloc routines in the System framework. | 2160 | ## darwin ld insists on the use of malloc routines in the System framework. |
| 2159 | darwin | mingw32 | nacl | sol2-10) ;; | 2161 | darwin | mingw32 | nacl | sol2-10) ;; |
diff --git a/src/alloc.c b/src/alloc.c index 90c6f9441fa..175dcab2487 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -173,31 +173,34 @@ voidfuncptr __MALLOC_HOOK_VOLATILE __malloc_initialize_hook EXTERNALLY_VISIBLE | |||
| 173 | 173 | ||
| 174 | #endif | 174 | #endif |
| 175 | 175 | ||
| 176 | #if defined DOUG_LEA_MALLOC || !defined CANNOT_DUMP | ||
| 177 | |||
| 176 | /* Allocator-related actions to do just before and after unexec. */ | 178 | /* Allocator-related actions to do just before and after unexec. */ |
| 177 | 179 | ||
| 178 | void | 180 | void |
| 179 | alloc_unexec_pre (void) | 181 | alloc_unexec_pre (void) |
| 180 | { | 182 | { |
| 181 | #ifdef DOUG_LEA_MALLOC | 183 | # ifdef DOUG_LEA_MALLOC |
| 182 | malloc_state_ptr = malloc_get_state (); | 184 | malloc_state_ptr = malloc_get_state (); |
| 183 | if (!malloc_state_ptr) | 185 | if (!malloc_state_ptr) |
| 184 | fatal ("malloc_get_state: %s", strerror (errno)); | 186 | fatal ("malloc_get_state: %s", strerror (errno)); |
| 185 | #endif | 187 | # endif |
| 186 | #ifdef HYBRID_MALLOC | 188 | # ifdef HYBRID_MALLOC |
| 187 | bss_sbrk_did_unexec = true; | 189 | bss_sbrk_did_unexec = true; |
| 188 | #endif | 190 | # endif |
| 189 | } | 191 | } |
| 190 | 192 | ||
| 191 | void | 193 | void |
| 192 | alloc_unexec_post (void) | 194 | alloc_unexec_post (void) |
| 193 | { | 195 | { |
| 194 | #ifdef DOUG_LEA_MALLOC | 196 | # ifdef DOUG_LEA_MALLOC |
| 195 | free (malloc_state_ptr); | 197 | free (malloc_state_ptr); |
| 196 | #endif | 198 | # endif |
| 197 | #ifdef HYBRID_MALLOC | 199 | # ifdef HYBRID_MALLOC |
| 198 | bss_sbrk_did_unexec = false; | 200 | bss_sbrk_did_unexec = false; |
| 199 | #endif | 201 | # endif |
| 200 | } | 202 | } |
| 203 | #endif | ||
| 201 | 204 | ||
| 202 | /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer | 205 | /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer |
| 203 | to a struct Lisp_String. */ | 206 | to a struct Lisp_String. */ |
| @@ -5216,6 +5219,8 @@ pure_alloc (size_t size, int type) | |||
| 5216 | } | 5219 | } |
| 5217 | 5220 | ||
| 5218 | 5221 | ||
| 5222 | #ifndef CANNOT_DUMP | ||
| 5223 | |||
| 5219 | /* Print a warning if PURESIZE is too small. */ | 5224 | /* Print a warning if PURESIZE is too small. */ |
| 5220 | 5225 | ||
| 5221 | void | 5226 | void |
| @@ -5226,6 +5231,7 @@ check_pure_size (void) | |||
| 5226 | " bytes needed)"), | 5231 | " bytes needed)"), |
| 5227 | pure_bytes_used + pure_bytes_used_before_overflow); | 5232 | pure_bytes_used + pure_bytes_used_before_overflow); |
| 5228 | } | 5233 | } |
| 5234 | #endif | ||
| 5229 | 5235 | ||
| 5230 | 5236 | ||
| 5231 | /* Find the byte sequence {DATA[0], ..., DATA[NBYTES-1], '\0'} from | 5237 | /* Find the byte sequence {DATA[0], ..., DATA[NBYTES-1], '\0'} from |
diff --git a/src/emacs.c b/src/emacs.c index efd4fa329df..ac9b6495337 100644 --- a/src/emacs.c +++ b/src/emacs.c | |||
| @@ -130,11 +130,15 @@ Lisp_Object Vlibrary_cache; | |||
| 130 | on subsequent starts. */ | 130 | on subsequent starts. */ |
| 131 | bool initialized; | 131 | bool initialized; |
| 132 | 132 | ||
| 133 | #ifdef CANNOT_DUMP | ||
| 134 | enum { might_dump = false }; | ||
| 135 | #else | ||
| 133 | /* Set to true if this instance of Emacs might dump. */ | 136 | /* Set to true if this instance of Emacs might dump. */ |
| 134 | #ifndef DOUG_LEA_MALLOC | 137 | # ifndef DOUG_LEA_MALLOC |
| 135 | static | 138 | static |
| 136 | #endif | 139 | # endif |
| 137 | bool might_dump; | 140 | bool might_dump; |
| 141 | #endif | ||
| 138 | 142 | ||
| 139 | #ifdef DARWIN_OS | 143 | #ifdef DARWIN_OS |
| 140 | extern void unexec_init_emacs_zone (void); | 144 | extern void unexec_init_emacs_zone (void); |
| @@ -196,7 +200,7 @@ int daemon_type; | |||
| 196 | #ifndef WINDOWSNT | 200 | #ifndef WINDOWSNT |
| 197 | /* Pipe used to send exit notification to the background daemon parent at | 201 | /* Pipe used to send exit notification to the background daemon parent at |
| 198 | startup. On Windows, we use a kernel event instead. */ | 202 | startup. On Windows, we use a kernel event instead. */ |
| 199 | int daemon_pipe[2]; | 203 | static int daemon_pipe[2]; |
| 200 | #else | 204 | #else |
| 201 | HANDLE w32_daemon_event; | 205 | HANDLE w32_daemon_event; |
| 202 | #endif | 206 | #endif |
diff --git a/src/image.c b/src/image.c index d82fedb8dea..5614f39e15b 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -9776,6 +9776,8 @@ lookup_image_type (Lisp_Object type) | |||
| 9776 | return NULL; | 9776 | return NULL; |
| 9777 | } | 9777 | } |
| 9778 | 9778 | ||
| 9779 | #if !defined CANNOT_DUMP && defined HAVE_WINDOW_SYSTEM | ||
| 9780 | |||
| 9779 | /* Reset image_types before dumping. | 9781 | /* Reset image_types before dumping. |
| 9780 | Called from Fdump_emacs. */ | 9782 | Called from Fdump_emacs. */ |
| 9781 | 9783 | ||
| @@ -9789,6 +9791,7 @@ reset_image_types (void) | |||
| 9789 | image_types = next; | 9791 | image_types = next; |
| 9790 | } | 9792 | } |
| 9791 | } | 9793 | } |
| 9794 | #endif | ||
| 9792 | 9795 | ||
| 9793 | void | 9796 | void |
| 9794 | syms_of_image (void) | 9797 | syms_of_image (void) |
diff --git a/src/lastfile.c b/src/lastfile.c index 9d70b001d11..27602bd6a44 100644 --- a/src/lastfile.c +++ b/src/lastfile.c | |||
| @@ -43,6 +43,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 43 | char my_edata[] = "End of Emacs initialized data"; | 43 | char my_edata[] = "End of Emacs initialized data"; |
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||
| 46 | #ifndef CANNOT_DUMP | ||
| 47 | |||
| 46 | /* Help unexec locate the end of the .bss area used by Emacs (which | 48 | /* Help unexec locate the end of the .bss area used by Emacs (which |
| 47 | isn't always a separate section in NT executables). */ | 49 | isn't always a separate section in NT executables). */ |
| 48 | char my_endbss[1]; | 50 | char my_endbss[1]; |
| @@ -52,3 +54,5 @@ char my_endbss[1]; | |||
| 52 | of the bss area used by Emacs. */ | 54 | of the bss area used by Emacs. */ |
| 53 | static char _my_endbss[1]; | 55 | static char _my_endbss[1]; |
| 54 | char * my_endbss_static = _my_endbss; | 56 | char * my_endbss_static = _my_endbss; |
| 57 | |||
| 58 | #endif | ||
diff --git a/test/Makefile.in b/test/Makefile.in index 33e625fc996..f2f27634c24 100644 --- a/test/Makefile.in +++ b/test/Makefile.in | |||
| @@ -190,6 +190,7 @@ check-doit: ${LOGFILES} | |||
| 190 | 190 | ||
| 191 | mostlyclean: | 191 | mostlyclean: |
| 192 | -@for f in ${LOGFILES}; do test ! -f $$f || mv $$f $$f~; done | 192 | -@for f in ${LOGFILES}; do test ! -f $$f || mv $$f $$f~; done |
| 193 | rm -f *.tmp | ||
| 193 | 194 | ||
| 194 | clean: | 195 | clean: |
| 195 | -rm -f ${LOGFILES} ${LOGSAVEFILES} | 196 | -rm -f ${LOGFILES} ${LOGSAVEFILES} |
| @@ -206,5 +207,7 @@ maintainer-clean: distclean bootstrap-clean | |||
| 206 | make-test-deps.mk: $(ELFILES) make-test-deps.emacs-lisp | 207 | make-test-deps.mk: $(ELFILES) make-test-deps.emacs-lisp |
| 207 | $(EMACS) --batch -l $(srcdir)/make-test-deps.emacs-lisp \ | 208 | $(EMACS) --batch -l $(srcdir)/make-test-deps.emacs-lisp \ |
| 208 | --eval "(make-test-deps \"$(srcdir)\")" \ | 209 | --eval "(make-test-deps \"$(srcdir)\")" \ |
| 209 | 2> $@ | 210 | 2> $@.tmp |
| 210 | # Makefile ends here. | 211 | # Hack to elide any CANNOT_DUMP=yes chatter. |
| 212 | sed '/\.log: /!d' $@.tmp >$@ | ||
| 213 | rm -f $@.tmp | ||