++2014-03-21 Daniel Colascione <dancol@dancol.org>
++
++ Always prohibit dumping a dumped Emacs.
++
++ * emacs.c (might_dump): New variable.
++ (Fdump_emacs): Always prohibit dumping of dumped Emacs.
++ * lisp.h (might_dump): Declare.
++ * unexcw.c (unexec): Remove now-redundant multiple-dump detection code.
++
2014-03-20 Paul Eggert <eggert@cs.ucla.edu>
* doc.c (store_function_docstring): Fix pointer signedness mismatch.
on subsequent starts. */
bool initialized;
++/* Set to true if this instance of Emacs might dump. */
++bool might_dump;
++
#ifdef DARWIN_OS
extern void unexec_init_emacs_zone (void);
#endif
#endif
#endif
++#ifndef CANNOT_DUMP
++ might_dump = !initialized;
++#endif
++
initialized = 1;
#ifdef LOCALTIME_CACHE
if (! noninteractive)
error ("Dumping Emacs works only in batch mode");
++ if (!might_dump)
++ error ("Emacs can be dumped only once");
++
#ifdef GNU_LINUX
/* Warn if the gap between BSS end and heap start is larger than this. */
/* Defined in emacs.c. */
extern bool initialized;
++extern bool might_dump;
/* Defined in eval.c. */
extern Lisp_Object Qautoload;
int ret;
int ret2;
-- if (bss_sbrk_did_unexec)
-- {
-- /* can only dump once */
-- printf ("You can only dump Emacs once on this platform.\n");
-- return;
-- }
--
report_sheap_usage (1);
infile = add_exe_suffix_if_necessary (infile, infile_buffer);