changeset 15732:c24b00e705ba

(copy_text_and_data) [DJGPP >= 2]: Switch off two bits in `_crt0_startup_flags' so they don't go into the dumped Emacs. Restore the value of `_crt0_startup_flags' after .text and .data were dumped.
author Karl Heuer <kwzh@gnu.org>
date Fri, 19 Jul 1996 19:47:26 +0000
parents d149a26c9109
children e3d77845180c
files src/unexec.c
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/unexec.c	Fri Jul 19 19:41:03 1996 +0000
+++ b/src/unexec.c	Fri Jul 19 19:47:26 1996 +0000
@@ -178,6 +178,8 @@
 #ifdef MSDOS
 #if __DJGPP__ > 1
 #include <fcntl.h>  /* for O_RDONLY, O_RDWR */
+#include <crt0.h>   /* for _crt0_startup_flags and its bits */
+static int save_djgpp_startup_flags;
 #endif
 #include <coff.h>
 #define filehdr external_filehdr
@@ -884,6 +886,11 @@
   /* Dump the original table of exception handlers, not the one
      where our exception hooks are registered.  */
   __djgpp_exception_toggle ();
+
+  /* Switch off startup flags that might have been set at runtime
+     and which might change the way that dumped Emacs works.  */
+  save_djgpp_startup_flags = _crt0_startup_flags;
+  _crt0_startup_flags &= ~(_CRT0_FLAG_NO_LFN | _CRT0_FLAG_NEARPTR);
 #endif
 #endif
 
@@ -905,6 +912,9 @@
 #if __DJGPP__ >= 2
   /* Restore our exception hooks.  */
   __djgpp_exception_toggle ();
+
+  /* Restore the startup flags.  */
+  _crt0_startup_flags = save_djgpp_startup_flags;
 #endif
 #endif