summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasatake YAMATO <jet@gyve.org>2005-06-30 16:30:53 +0000
committerMasatake YAMATO <jet@gyve.org>2005-06-30 16:30:53 +0000
commit711877f36a52e234c80f8cecbae3d3d03c388ba9 (patch)
tree300878da5fae0b758f2bd4f30ba0102eb2d2ce0c
parent63f7ffb3deb917b90fd7119c5ff09875863329fd (diff)
downloademacs-711877f36a52e234c80f8cecbae3d3d03c388ba9.tar.gz
2005-07-01 Masatake YAMATO <jet@gyve.org>
* emacs.c (main): Passing ADD_NO_RANDOMIZE to `personality'.
-rw-r--r--etc/PROBLEMS17
-rw-r--r--src/ChangeLog5
-rw-r--r--src/emacs.c8
3 files changed, 12 insertions, 18 deletions
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 73da2666f97..73fe4615bf9 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2378,8 +2378,6 @@ The fix is to install a newer version of ncurses, such as version 4.2.
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 @@ command when running temacs like this:
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
diff --git a/src/ChangeLog b/src/ChangeLog
index 85c3b747424..4c3c6a80d49 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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
diff --git a/src/emacs.c b/src/emacs.c
index fd38268386a..89d6070b176 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -918,7 +918,13 @@ main (argc, argv
{
/* 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. */