Subject: Re: bug#33174: 27.0.50; Dump fails on GNU/Linux ppc64le

From: Thomas Fitzsimmons <[email-masked]>
Date: Sat, 27 Oct 2018 09:16:17 -0400

Thomas Fitzsimmons <[email-masked]> writes:

> Hi Paul,
>
> On ppc64le Debian GNU/Linux 9, I'm seeing a bootstrap failure on the
> master and emacs-26 branches that I didn't see the last time I built
> Emacs:
>
> [...]
> Dumping under the name emacs
> **************************************************
> Warning: Your system has a gap between BSS and the
> heap (424960392 bytes).  This usually means that exec-shield
> or something similar is in effect.  The dump may
> fail because of this.  See the section about
> exec-shield in etc/PROBLEMS for more information.
> **************************************************
> 22496304 of 33554432 static heap bytes used
> Makefile:749: recipe for target 'bootstrap-emacs' failed
> make[1]: *** [bootstrap-emacs] Segmentation fault
> make[1]: Leaving directory '/home/fitzsim/sources/emacs/src'
> Makefile:421: recipe for target 'src' failed
> make: *** [src] Error 2
>
> I bisected the failure to:
>
> commit 65889a6d127fcbbbdc1e74d26036e91bd24d1405
> Author: Paul Eggert <[email-masked]>
> Date:   Sun Jul 8 09:04:02 2018 -0700
>
>     Fix bootstrap infloop in GNU/Linux alpha
>     
>     * src/emacs.c (main): Do not re-exec if EMACS_HEAP_EXEC
>     is already set (Bug#32083).
>
> If I revert that commit's patch, the build succeeds.

It looks like this segmentation fault is influenced by the setting in
/proc/sys/kernel/randomize_va_space.

Running by hand in src (with the patch in question applied):

./temacs --batch --load loadup bootstrap

- if randomize_va_space contains 2, bootstrap fails:

  segfaults:

  Dumping under the name emacs
  **************************************************
  Warning: Your system has a gap between BSS and the
  heap (752378248 bytes).  This usually means that exec-shield
  or something similar is in effect.  The dump may
  fail because of this.  See the section about
  exec-shield in etc/PROBLEMS for more information.
  **************************************************
  22496304 of 33554432 static heap bytes used
  Segmentation fault

- if randomize_va_space contains 1 or 0, bootstrap succeeds:

  Loading /home/fitzsim/sources/emacs/lisp/tooltip.el (source)...
  Finding pointers to doc strings...
  Finding pointers to doc strings...done
  Dumping under the name emacs
  22496304 of 33554432 static heap bytes used
  99079 pure bytes used

Thomas