From: Pip Cet via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Rob Browning <rlb@defaultvalue.org>
Cc: gerd.moellmann@gmail.com, 57789@debbugs.gnu.org,
Eli Zaretskii <eliz@gnu.org>, Andrea Corallo <acorallo@gnu.org>,
Stefan Kangas <stefankangas@gmail.com>
Subject: bug#57789: Emacs 28.1 clone build with native compilation crashes on s390x
Date: Fri, 03 Jan 2025 18:57:55 +0000 [thread overview]
Message-ID: <877c7bk9ov.fsf@protonmail.com> (raw)
In-Reply-To: <87r05jagqq.fsf@trouble.defaultvalue.org>
"Rob Browning" <rlb@defaultvalue.org> writes:
> Stefan Kangas <stefankangas@gmail.com> writes:
>
>> Thanks. I guess not a lot of us have access to an s390x machine, so I
>> don't think anyone has been able to test it.
>
> Hmm, I think I've heard there may be (or were?) some public instances
> that provide short-term dev access, but have never looked in to it.
I have cfarm access, but cfarm doesn't have an s390 machine :-(
> I was also going to outline an easy way to test in a vm at least on a
> Debian system via debvm/mmdebstrap, but after doing that, I wasn't able
> to reproduce the problem there. (Happy to provide instructions for
> anyone interested, otherwise.)
Same compiler? Is ASLR in use? In any case, I'm always interested in
weird machines, even if they're virtual, so I'd appreciate such
instructions.
> 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
Two random guesses:
1. purespace overflow. This causes erratic behavior of pretty much
every description. The tell-tale sign would be a "Pure Lisp storage
overflowed" message at some point in the "make bootstrap" log, maybe a
very long time before we crash.
2. GC problem. One possible problem is that Emacs currently relies on
__builtin_unwind_init to do the right thing. If __builtin_unwind_init
isn't implemented on s390, but is necessary (the second part is very
likely), we'll fail to mark some objects on the stack.
(2) seems more likely.
> 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]
Can you disassemble the Fwhile, eval_sub, and visit_static_gc_roots
functions? I assume s390 disassembled code isn't too hard to read...
Random aside: is 0x2aa1c3705ca a likely S390 program counter? The
number looks familiar because it looks similar to a Lisp_Object
representing a symbol on x86-64 without ASLR (an example would be
0x2aaa8dac00e8). I guess it's just a coincidence though.
Thanks!
Pip
next prev parent reply other threads:[~2025-01-03 18:57 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-14 1:04 bug#57789: Emacs 28.1 clone build with native compilation crashes on s390x Rob Browning
2022-09-14 2:42 ` Eli Zaretskii
2022-09-14 3:06 ` Rob Browning
2022-09-14 3:20 ` Rob Browning
2022-09-14 20:19 ` Rob Browning
2022-09-14 20:21 ` Rob Browning
2022-09-16 6:04 ` Gerd Möllmann
2022-09-17 21:04 ` Rob Browning
2022-09-18 5:22 ` Gerd Möllmann
2022-09-18 5:49 ` Eli Zaretskii
2022-09-18 5:55 ` Gerd Möllmann
2022-09-18 5:33 ` Eli Zaretskii
2022-09-24 21:06 ` Rob Browning
2023-06-07 21:15 ` Andrea Corallo
2023-09-11 18:08 ` Stefan Kangas
2025-01-02 1:07 ` Stefan Kangas
2025-01-02 3:40 ` Rob Browning
2025-01-02 5:04 ` Stefan Kangas
2025-01-03 18:34 ` Rob Browning
2025-01-03 18:57 ` Pip Cet via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2025-01-05 19:18 ` Rob Browning
2025-01-03 18:59 ` Stefan Kangas
2025-01-05 19:23 ` Rob Browning
2022-09-15 7:10 ` Eli Zaretskii
2022-09-15 14:51 ` Paul Eggert via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-15 16:26 ` Rob Browning
2022-09-16 8:43 ` Andrea Corallo
2022-09-16 8:39 ` Andrea Corallo
2022-09-17 21:00 ` Rob Browning
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877c7bk9ov.fsf@protonmail.com \
--to=bug-gnu-emacs@gnu.org \
--cc=57789@debbugs.gnu.org \
--cc=acorallo@gnu.org \
--cc=eliz@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=pipcet@protonmail.com \
--cc=rlb@defaultvalue.org \
--cc=stefankangas@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).