-/* Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 2001, 2002, 2003,
- 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 1985-1988, 1992-1994, 2001-2013 Free Software
+ * Foundation, Inc.
This file is part of GNU Emacs.
*/
#include <config.h>
+#include "unexec.h"
+
#define PERROR(file) report_error (file, new)
#ifndef CANNOT_DUMP /* all rest of file! */
#include <sys/file.h>
-extern char *start_of_data (void); /* Start of initialized data */
+#include "mem-limits.h"
static long block_copy_start; /* Old executable start point */
static struct filehdr f_hdr; /* File header */
#define ADDR_CORRECT(x) ((char *)(x) - (char*)0)
-#include <setjmp.h>
#include "lisp.h"
static void
a gap between the old text segment and the old data segment.
This gap has probably been remapped into part of the text segment.
So write zeros for it. */
- if (ret == -1
-#ifdef EFAULT
- && errno == EFAULT
-#endif
- )
+ if (ret == -1 && errno == EFAULT)
{
/* Write only a page of zeros at once,
so that we don't overshoot the start
*
* driving logic.
*/
-int
+void
unexec (const char *new_name, const char *a_name)
{
int new = -1, a_out = -1;
)
{
close (new);
- return -1;
+ return;
}
close (new);
if (a_out >= 0)
close (a_out);
mark_x (new_name);
- return 0;
}
#endif /* not CANNOT_DUMP */
-