dynwind fixes
[bpt/emacs.git] / src / lastfile.c
CommitLineData
d427b66a 1/* Mark end of data space to dump as pure, for GNU Emacs.
ba318903 2 Copyright (C) 1985, 2001-2014 Free Software Foundation, Inc.
d427b66a
JB
3
4This file is part of GNU Emacs.
5
9ec0b715 6GNU Emacs is free software: you can redistribute it and/or modify
d427b66a 7it under the terms of the GNU General Public License as published by
9ec0b715
GM
8the Free Software Foundation, either version 3 of the License, or
9(at your option) any later version.
d427b66a
JB
10
11GNU Emacs is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
9ec0b715 17along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
d427b66a
JB
18
19
20/* How this works:
21
22 Fdump_emacs dumps everything up to my_edata as text space (pure).
23
24 The files of Emacs are written so as to have no initialized
25 data that can ever need to be altered except at the first startup.
333f9019 26 This is so that those words can be dumped as shareable text.
d427b66a
JB
27
28 It is not possible to exercise such control over library files.
29 So it is necessary to refrain from making their data areas shared.
30 Therefore, this file is loaded following all the files of Emacs
31 but before library files.
32 As a result, the symbol my_edata indicates the point
33 in data space between data coming from Emacs and data
34 coming from libraries.
35*/
36
cfe8de43
AI
37#include <config.h>
38
bb8a51f5
RS
39char my_edata[] = "End of Emacs initialized data";
40
f516a861
GV
41/* Help unexec locate the end of the .bss area used by Emacs (which
42 isn't always a separate section in NT executables). */
43char my_endbss[1];
cfe8de43 44
4a3bf565
GV
45/* The Alpha MSVC linker globally segregates all static and public bss
46 data, so we must take both into account to determine the true extent
47 of the bss area used by Emacs. */
48static char _my_endbss[1];
49char * my_endbss_static = _my_endbss;