Subject: Re: bug#57789: Emacs 28.1 clone build with native compilation crashes on s390x

From: Stefan Kangas <[email-masked]>
Date: Fri, 3 Jan 2025 12:59:24 -0600

Rob Browning <[email-masked]> writes:

> In any case, I just tried both the current Debian package and an
> upstream emcs-29.4 checkout on zelenka.debian.org, and both fail.
>
> The emacs-29.4 tree fails like this:
>
> make[3]: Entering directory '/home/rlb/emacs/admin/unidata'
> make[3]: Nothing to be done for 'charscript.el'.
> make[3]: Leaving directory '/home/rlb/emacs/admin/unidata'
> make -C ../admin/unidata emoji-zwj.el
> make[3]: Entering directory '/home/rlb/emacs/admin/unidata'
> make[3]: Nothing to be done for 'emoji-zwj.el'.
> make[3]: Leaving directory '/home/rlb/emacs/admin/unidata'
>   ELC+ELN  ../lisp/emacs-lisp/eldoc.elc
>
> Error: wrong-type-argument ("../lisp/emacs-lisp/eldoc.el" hash-table-p [unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound unbound])
> Fatal error 11: Segmentation fault
> Backtrace:
> ../src/bootstrap-emacs(emacs_backtrace+0x46) [0x2aa1c2f12f6]
> ../src/bootstrap-emacs(terminate_due_to_signal+0x9e) [0x2aa1c18fb76]
> ../src/bootstrap-emacs(+0x8fdde) [0x2aa1c18fdde]
> ../src/bootstrap-emacs(+0x1ef45a) [0x2aa1c2ef45a]
> ../src/bootstrap-emacs(+0x1ef4a2) [0x2aa1c2ef4a2]
> linux-vdso64.so.1(__kernel_rt_sigreturn+0x0) [0x3ffdc0e5480]
> ../src/bootstrap-emacs(+0x2433a4) [0x2aa1c3433a4]
> ../src/bootstrap-emacs(visit_static_gc_roots+0x196) [0x2aa1c342dae]
> ../src/bootstrap-emacs(garbage_collect+0x1e6) [0x2aa1c3445d6]
> ../src/bootstrap-emacs(eval_sub+0x54c) [0x2aa1c370244]
> ../src/bootstrap-emacs(eval_sub+0x4ac) [0x2aa1c3701a4]
> ../src/bootstrap-emacs(Fcond+0x84) [0x2aa1c3711f4]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Fwhile+0x6e) [0x2aa1c370fb6]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Flet+0x2e2) [0x2aa1c374012]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Fcond+0x84) [0x2aa1c3711f4]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(+0x271716) [0x2aa1c371716]
> ../src/bootstrap-emacs(+0x27362c) [0x2aa1c37362c]
> ../src/bootstrap-emacs(eval_sub+0x290) [0x2aa1c36ff88]
> ../src/bootstrap-emacs(Fsetq+0xa8) [0x2aa1c370ab0]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Fwhile+0x6e) [0x2aa1c370fb6]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Flet+0x2e2) [0x2aa1c374012]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Fcond+0x84) [0x2aa1c3711f4]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(+0x271716) [0x2aa1c371716]
> ../src/bootstrap-emacs(+0x27362c) [0x2aa1c37362c]
> ../src/bootstrap-emacs(eval_sub+0x290) [0x2aa1c36ff88]
> ../src/bootstrap-emacs(Fsetq+0xa8) [0x2aa1c370ab0]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Fwhile+0x6e) [0x2aa1c370fb6]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Flet+0x2e2) [0x2aa1c374012]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ../src/bootstrap-emacs(Fcond+0x84) [0x2aa1c3711f4]
> ../src/bootstrap-emacs(eval_sub+0x8d2) [0x2aa1c3705ca]
> ...
> make[3]: *** [Makefile:282: ../lisp/emacs-lisp/eldoc.elc] Segmentation fault
> make[2]: *** [Makefile:841: ../lisp/emacs-lisp/eldoc.elc] Error 2
> make[2]: Leaving directory '/home/rlb/emacs/src'
> make[1]: *** [Makefile:544: src] Error 2
> make[1]: Leaving directory '/home/rlb/emacs'
> make[1]: Entering directory '/home/rlb/emacs'
> ***
> *** "make all" failed with exit status 2.
> ***
> *** You could try to:
> *** - run "make bootstrap", which might fix the problem
> *** - run "make V=1", which displays the full commands invoked by make,
> ***   to further investigate the problem
> ***
> make[1]: *** [Makefile:414: advice-on-failure] Error 2
> make[1]: Leaving directory '/home/rlb/emacs'
> make: *** [Makefile:370: all] Error 2
>
> Hope this helps

Thanks.

Could you run the crashing command under GDB, and when it segfaults,
produce the C-level and Lisp-level backtrace, and post them here?
There are instructions in DEBUG for how to do it.

Make sure to configure the build according to DEBUG, i.e. something like

  ./configure --enable-checking='yes,glyphs' --enable-check-lisp-object-type \
    CFLAGS='-O0 -g3'