changeset 63883:53559de8d502

2005-07-01 Masatake YAMATO <jet@gyve.org> * emacs.c (main): Passing ADD_NO_RANDOMIZE to `personality'.
author Masatake YAMATO <jet@gyve.org>
date Thu, 30 Jun 2005 16:30:53 +0000
parents 35bc84251d54
children 3caa4e1966cf
files etc/PROBLEMS src/ChangeLog src/emacs.c
diffstat 3 files changed, 12 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/etc/PROBLEMS	Thu Jun 30 15:06:33 2005 +0000
+++ b/etc/PROBLEMS	Thu Jun 30 16:30:53 2005 +0000
@@ -2378,8 +2378,6 @@
 With certain recent Linux kernels (like the one of Redhat Fedora Core
 1 and 2), the new "Exec-shield" functionality is enabled by default, which
 creates a different memory layout that breaks the emacs dumper. 
-The work-around explained here is not enough on Fedora Core 4. Read the
-next item.
 
 Configure can overcome the problem of exec-shield if the architecture is
 x86 and the program setarch is present.  On other architectures no
@@ -2406,21 +2404,6 @@
 
     setarch i386 ./temacs --batch --load loadup [dump|bootstrap]
 
-*** Fedora Core 4 GNU/Linux: Segfault during dumping.
-
-In addition to exec-shield explained above "Linux: Segfault during
-`make bootstrap' under certain recent versions of the Linux kernel"
-item, Linux kernel shipped with Fedora Core 4 randomizes the virtual
-address space of a process. As the result dumping is failed even if
-you turn off the exec-shield. In such case use -R option of setarch
-command:
-
-   setarch -R i386 ./temacs --batch --load loadup [dump|bootstrap]
-
-or
-
-   setarch -R i386 make bootstrap	
-
 *** Fatal signal in the command  temacs -l loadup inc dump.
 
 This command is the final stage of building Emacs.  It is run by the
--- a/src/ChangeLog	Thu Jun 30 15:06:33 2005 +0000
+++ b/src/ChangeLog	Thu Jun 30 16:30:53 2005 +0000
@@ -1,3 +1,8 @@
+2005-07-01  Masatake YAMATO  <jet@gyve.org>
+
+	* emacs.c (main): Passing ADD_NO_RANDOMIZE to
+	`personality'.
+
 2005-06-30  Juri Linkov  <juri@jurta.org>
 
 	* xdisp.c (x_draw_vertical_border): If left fringe is not present
--- a/src/emacs.c	Thu Jun 30 15:06:33 2005 +0000
+++ b/src/emacs.c	Thu Jun 30 16:30:53 2005 +0000
@@ -918,7 +918,13 @@
         {
           /* Set this so we only do this once.  */
           putenv("EMACS_HEAP_EXEC=true");
-          personality (PER_LINUX32);
+
+	  /* A flag to turn off address randomization which is introduced
+	   in linux kernel shipped with fedora core 4 */
+#define ADD_NO_RANDOMIZE 0x0040000
+	  personality (PER_LINUX32 | ADD_NO_RANDOMIZE);
+#undef  ADD_NO_RANDOMIZE
+
           execvp (argv[0], argv);
 
           /* If the exec fails, try to dump anyway.  */