
1: /* Mark end of data space to dump as pure, for GNU Emacs. 2: Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005, 3: 2006, 2007 Free Software Foundation, Inc. 4: 5: This file is part of GNU Emacs. 6: 7: GNU Emacs is free software; you can redistribute it and/or modify 8: it under the terms of the GNU General Public License as published by 9: the Free Software Foundation; either version 2, or (at your option) 10: any later version. 11: 12: GNU Emacs is distributed in the hope that it will be useful, 13: but WITHOUT ANY WARRANTY; without even the implied warranty of 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: GNU General Public License for more details. 16: 17: You should have received a copy of the GNU General Public License 18: along with GNU Emacs; see the file COPYING. If not, write to 19: the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20: Boston, MA 02110-1301, USA. */ 21: 22: 23: /* How this works: 24: 25: Fdump_emacs dumps everything up to my_edata as text space (pure). 26: 27: The files of Emacs are written so as to have no initialized 28: data that can ever need to be altered except at the first startup. 29: This is so that those words can be dumped as sharable text. 30: 31: It is not possible to exercise such control over library files. 32: So it is necessary to refrain from making their data areas shared. 33: Therefore, this file is loaded following all the files of Emacs 34: but before library files. 35: As a result, the symbol my_edata indicates the point 36: in data space between data coming from Emacs and data 37: coming from libraries. 38: */ 39: 40: #include <config.h> 41: 42: char my_edata[] = "End of Emacs initialized data"; 43: 44: /* Help unexec locate the end of the .bss area used by Emacs (which 45: isn't always a separate section in NT executables). */ 46: char my_endbss[1]; 47: 48: /* The Alpha MSVC linker globally segregates all static and public bss 49: data, so we must take both into account to determine the true extent 50: of the bss area used by Emacs. */ 51: static char _my_endbss[1]; 52: char * my_endbss_static = _my_endbss; 53: 54: /* arch-tag: 67e81ab4-e14f-44b2-8875-c0c12252223e 55: (do not change this comment) */