/* Dump an executable image.
- Copyright (C) 1985, 1986, 1987, 1988, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1987, 1988, 1999, 2001, 2002, 2003, 2004,
+ 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of GNU Emacs.
-GNU Emacs is free software; you can redistribute it and/or modify
+GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
+along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+/*
In other words, you are welcome to use, share and improve this program.
You are forbidden to forbid anyone else to use, share and improve
what you give them. Help stamp out software-hoarding! */
static int pagemask;
-/* Correct an int which is the bit pattern of a pointer to a byte
- into an int which is the number of a byte.
- This is a no-op on ordinary machines, but not on all. */
-
-#ifndef ADDR_CORRECT /* Let m-*.h files override this definition */
-#define ADDR_CORRECT(x) ((char *)(x) - (char*)0)
-#endif
-
#ifdef emacs
#include "lisp.h"
* driving logic.
*/
int unexec (char *new_name, char *a_name,
- uintptr_t data_start,
- uintptr_t bss_start,
- uintptr_t entry_address)
+ unsigned data_start,
+ unsigned bss_start,
+ unsigned entry_address)
{
int new = -1, a_out = -1;
|| unrelocate_symbols (new, a_out, a_name, new_name) < 0)
{
close (new);
- return -1;
+ return -1;
}
close (new);
s->s_scnptr += bias;
ptr = s->s_scnptr;
}
-
+
ptr = ptr + s->s_size;
}
}
}
\f
/* ****************************************************************
-
+
*
* Copy the text and data segments from memory to the new a.out
*/
#ifndef ALIGN_DATA_RELOC
ulong d_reloc = (ulong) &_data - f_ohdr.data_start;
#else
- /* This worked (and was needed) before AIX 4.2.
+ /* This worked (and was needed) before AIX 4.2.
I have no idea why. -- Mike */
ulong d_reloc = (ulong) &_data - ALIGN(f_ohdr.data_start, 2);
#endif
}
return 0;
}
+
+/* arch-tag: 0783857a-7c2d-456f-a426-58b722d69fd0
+ (do not change this comment) */