[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Help with new Windows 98 crash
From: |
Po Lu |
Subject: |
Re: Help with new Windows 98 crash |
Date: |
Tue, 06 Dec 2022 09:29:04 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Eli Zaretskii <eliz@gnu.org> writes:
>> Date: Mon, 05 Dec 2022 16:52:28 +0200
>> From: Eli Zaretskii <eliz@gnu.org>
>> Cc: emacs-devel@gnu.org
>>
>> > From: Po Lu <luangruo@yahoo.com>
>> > Date: Mon, 05 Dec 2022 22:18:18 +0800
>> >
>> > Emacs 30 (with unexec) is crashing on Windows 98 again, this time during
>> > GC.
>>
>> I tried to build it on X, but the build fails:
>>
>> xfns.c:46:10: fatal error: xcb/xcb_aux.h: No such file or directory
>> #include <xcb/xcb_aux.h>
>> ^~~~~~~~~~~~~~~
>> compilation terminated.
>>
>> can you please fix that?
>
> Never mind, I already fixed this.
>
>> Then I could see if the problem is not only Windows specific.
>
> Seems to be: the build on GNU/Linux doesn't crash. Unless there's something
> special that I need to do to crash it.
I think I have figured it out.
init_bignum must be called before make_initial_frame, because that
allocates a bignum in temacs (as set_window_buffer calls
bset_display_time and Fcurrent_time, which go through the time
arithmetic stuff), before our own allocator has been set up, which ends
up in the dumped Emacs, leading to a free of a pointer from the wrong
heap once the bignum is garbage collected.
I have installed the change on the Emacs 30 branch because I am not sure
it is safe for Emacs 29. Can you think of a safer fix?