bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#28882: [bug-gnu-emacs] emacs-26.0.90 build feedback


From: Nelson H. F. Beebe
Subject: bug#28882: [bug-gnu-emacs] emacs-26.0.90 build feedback
Date: Wed, 18 Oct 2017 08:17:14 -0600

The emacs-26.0.90 etc/PROBLEMS file suggests another approach to work
around kernel memory layout randomizations for Red Hat systems.
Curiously, I had no difficulty building emacs-26.0.90 on CentOS 6 and
7 on x86-64 systems, and CentOS 5 IA-64 (Itanium), but on CentOS 5 x86
and x86-64, I get

        Dumping under the name emacs
        **************************************************
        Warning: Your system has a gap between BSS and the
        heap (8467071 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.
        **************************************************
        make[1]: *** [bootstrap-emacs] Segmentation fault

Today, as root, I ran 

        # cat /proc/sys/kernel/exec-shield
        1

        # echo 0 > /proc/sys/kernel/exec-shield

        # cat /proc/sys/kernel/exec-shield
        0

and then as an unprivileged user, restarted the make.  Unlike on
Alpine Linux, the kernel symbol-value change had no effect: the build
still gets a segmentation fault.

I then tried

        % ./src/temacs
        Loading loadup.el (source)...
        Using load-path (/local/build/cc/emacs-26.0.90/lisp)
        Loading emacs-lisp/byte-run...
        ...
        Finding pointers to doc strings...done
        Pure-hashed: 15477 strings, 4055 vectors, 40214 conses, 3919 bytecodes, 
175 others

At that point, a normal emacs X11 window appears on my screen, so most
of emacs is working.

However, the dumped executable is unusable:

        % ls -l src/*emacs
        -rwxrwxr-x 1 beebe sysstaff 84149492 Oct 18 07:40 src/emacs
        -rwxrwxr-x 1 beebe sysstaff 48352600 Oct 18 07:40 src/temacs

        % file src/emacs
        src/emacs: data

        % ./src/emacs
        src/emacs: Exec format error. Binary file not executable.

        % ldd ./src/emacs
        not a dynamic executable

In CentOS 5 and 6, the exec-shield variable is 1 by default; it does
not exist on CentOS 7.  The latter instead has
/proc/sys/kernel/randomize_va_space set to 2, but a successful dump to
create src/emacs does not require changing that variable.

Next, I tried another suggestion from etc/PROBLEMS:

        % rm src/emacs src/temacs
        $ bash
        $ export PATH=/bin:/usr/bin:/sbin:/usr/sbin
        $ setarch $(uname -m ) -R make

That one succeeded in making a usable src/emacs executable on both x86
and x86-64 CentOS 5 systems, with /usr/local hidden; I then restored
/usr/local and successfully installed emacs-26.0.90 on those servers.

Thus, the build problems for emacs-26.0.90 on CentOS 5 are resolved,
and my count of successes has increased to 138.



-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe@math.utah.edu  -
- 155 S 1400 E RM 233                       beebe@acm.org  beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]