[-- Attachment #1: Type: text/plain, Size: 1149 bytes --] Greetings. Could you explain how a portable dumper Emacs works (bootstrap-emacs.pdmp) and where it is placed in sources? I just haven't time to examine all the source code. Forgive me for that. It crashes. That's okay, because I'm with my protege porting Emacs to a new platform (e2k). Here are logs with errors. Wrong type argument: listp, make[1]: * [Makefile:824: bootstrap-emacs.pdmp] Ошибка сегментированияmake[1]: выход из каталога ((exit from directory)) «/root/emacs-27.2/src»make: * [Makefile:424: src] Ошибка ((error)) 2 Wrong type argument: listp, make[1]: *** [Makefile:824: bootstrap-emacs.pdmp] Segmentation fault make[1]: выход из каталога ((exit from directory)) «/home/ddrdmakar/emacs/emacs-27.2/src» make: *** [Makefile:424: src] Ошибка ((error)) 2 With --with-dumping=none it builds successfully, it works, but crashes sometimes. That will be fixed by simple debugging. BTW, could you send me instructions about working with your repo me to merge changes right? I mean to give our changes to you properly . Best regards, Gregory. [-- Attachment #2: Type: text/html, Size: 1372 bytes --]
Рабочая Почта <work.mail.for.me.tgg@gmail.com> writes:
> Wrong type argument: listp, make[1]: * [Makefile:824:
> bootstrap-emacs.pdmp] Ошибка сегментированияmake[1]: выход из каталога
> ((exit from directory)) «/root/emacs-27.2/src»make: * [Makefile:424:
> src] Ошибка ((error)) 2
>
> Wrong type argument: listp, make[1]: *** [Makefile:824:
> bootstrap-emacs.pdmp] Segmentation fault make[1]: выход из каталога
> ((exit from directory)) «/home/ddrdmakar/emacs/emacs-27.2/src» make:
> *** [Makefile:424: src] Ошибка ((error)) 2
If I'm not mistaken, this bug does not lie in the portable dumper.
Instead, I think, something is corrupting memory during loadup, which is
causing Emacs to try to print an invalid object.
> From: Рабочая Почта > <work.mail.for.me.tgg@gmail.com> > Date: Wed, 15 Sep 2021 01:27:55 +0300 > > Could you explain how a portable dumper Emacs works (bootstrap-emacs.pdmp) and where it is placed in > sources? The portable dumper code is mainly in pdumper.c and pdumper.h. > I just haven't time to examine all the source code. Forgive me for that. > It crashes. That's okay, because I'm with my protege porting Emacs to a new platform (e2k). What is special about that platform? Which OS kernel and what C library are you using to build Emacs? Is e2k similar to any other common Posix platforms? > Here are logs with errors. > > Wrong type argument: listp, make[1]: * [Makefile:824: bootstrap-emacs.pdmp] Ошибка > сегментированияmake[1]: выход из каталога ((exit from directory)) «/root/emacs-27.2/src»make: * > [Makefile:424: src] Ошибка ((error)) 2 > > Wrong type argument: listp, make[1]: *** [Makefile:824: bootstrap-emacs.pdmp] Segmentation fault > make[1]: выход из каталога ((exit from directory)) «/home/ddrdmakar/emacs/emacs-27.2/src» > make: *** [Makefile:424: src] Ошибка ((error)) 2 These just say Emacs segfaulted, but not much else. If there are other messages around this one, please show them as well. > With --with-dumping=none it builds successfully, it works, but crashes sometimes. That will be fixed by > simple debugging. Regardless of whether it works with pdumper or not, the first step towards understanding the problem is to run the failing command line under GDB and getting the backtrace from the crash site, preferably also understanding what was the immediate cause of the crash. Only then it would be possible to tell whether the code in pdumper.c is part of the issue. > BTW, could you send me instructions about working with your repo me to merge changes right? I mean to > give our changes to you properly . We prefer patches in "git format-patch" form, but if that's hard for you, diffs produced by the Diff utility will also be okay. See the file CONTRIBUTE for more about this. Thank you for your interest in Emacs.
[-- Attachment #1: Type: text/plain, Size: 1296 bytes --] Thanks for answering. This is a bug of building Emacs, not using it. ./autogen.sh ./configure --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no make make install You can't repeat this bug. Because this bug is due to a new processor. But I would be happy if you said how to set flags to compile Emacs with debug information. ср, 15 сент. 2021 г. в 04:15, Po Lu <luangruo@yahoo.com>: > Рабочая Почта <work.mail.for.me.tgg@gmail.com> writes: > > > Wrong type argument: listp, make[1]: * [Makefile:824: > > bootstrap-emacs.pdmp] Ошибка сегментированияmake[1]: выход из каталога > > ((exit from directory)) «/root/emacs-27.2/src»make: * [Makefile:424: > > src] Ошибка ((error)) 2 > > > > Wrong type argument: listp, make[1]: *** [Makefile:824: > > bootstrap-emacs.pdmp] Segmentation fault make[1]: выход из каталога > > ((exit from directory)) «/home/ddrdmakar/emacs/emacs-27.2/src» make: > > *** [Makefile:424: src] Ошибка ((error)) 2 > > If I'm not mistaken, this bug does not lie in the portable dumper. > Instead, I think, something is corrupting memory during loadup, which is > causing Emacs to try to print an invalid object. > [-- Attachment #2: Type: text/html, Size: 1788 bytes --]
[-- Attachment #1: Type: text/plain, Size: 3032 bytes --] Thanks for answering. Thanks for pointing out where places dumper in. Yes, E2K, when Linux is installed, is a common Posix platform. No important messages around, only in/out directory and compiling. But i can send this btw, then will be working with the machine again. Could you say, how to compile emacs with debugging information? I mean proper building with scripts like this: ./autogen.sh ./configure --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no make make install And how do you advise debugging Elisp code? And where to send the patches? To this mail? Thanks for helping. ср, 15 сент. 2021 г. в 09:06, Eli Zaretskii <eliz@gnu.org>: > > From: Рабочая Почта > > <work.mail.for.me.tgg@gmail.com> > > Date: Wed, 15 Sep 2021 01:27:55 +0300 > > > > Could you explain how a portable dumper Emacs works > (bootstrap-emacs.pdmp) and where it is placed in > > sources? > > The portable dumper code is mainly in pdumper.c and pdumper.h. > > > I just haven't time to examine all the source code. Forgive me for that. > > It crashes. That's okay, because I'm with my protege porting Emacs to a > new platform (e2k). > > What is special about that platform? Which OS kernel and what C > library are you using to build Emacs? Is e2k similar to any other > common Posix platforms? > > > Here are logs with errors. > > > > Wrong type argument: listp, make[1]: * [Makefile:824: > bootstrap-emacs.pdmp] Ошибка > > сегментированияmake[1]: выход из каталога ((exit from directory)) > «/root/emacs-27.2/src»make: * > > [Makefile:424: src] Ошибка ((error)) 2 > > > > Wrong type argument: listp, make[1]: *** [Makefile:824: > bootstrap-emacs.pdmp] Segmentation fault > > make[1]: выход из каталога ((exit from directory)) > «/home/ddrdmakar/emacs/emacs-27.2/src» > > make: *** [Makefile:424: src] Ошибка ((error)) 2 > > These just say Emacs segfaulted, but not much else. If there are > other messages around this one, please show them as well. > > > With --with-dumping=none it builds successfully, it works, but crashes > sometimes. That will be fixed by > > simple debugging. > > Regardless of whether it works with pdumper or not, the first step > towards understanding the problem is to run the failing command line > under GDB and getting the backtrace from the crash site, preferably > also understanding what was the immediate cause of the crash. Only > then it would be possible to tell whether the code in pdumper.c is > part of the issue. > > > BTW, could you send me instructions about working with your repo me to > merge changes right? I mean to > > give our changes to you properly . > > We prefer patches in "git format-patch" form, but if that's hard for > you, diffs produced by the Diff utility will also be okay. See the > file CONTRIBUTE for more about this. > > Thank you for your interest in Emacs. > [-- Attachment #2: Type: text/html, Size: 3667 bytes --]
On Thu, 16 Sep 2021 01:20:46 +0300 Рабочая Почта <work.mail.for.me.tgg@gmail.com> wrote: > Thanks for answering. > > Thanks for pointing out where places dumper in. > Yes, E2K, when Linux is installed, is a common Posix platform. > No important messages around, only in/out directory and compiling. But > i can send this btw, then will > be working with the machine again. > Could you say, how to compile emacs with debugging information? I mean > proper building with scripts like this: > ./autogen.sh > ./configure --with-x-toolkit=no --with-xpm=no --with-jpeg=no > --with-png=no --with-gif=no --with-tiff=no > make > make install <emacs>/etc/DEBUG say this: *** Configuring Emacs for debugging It is best to configure and build Emacs with special options that will make the debugging easier. Here are the configure-time options we recommend (they are in addition to any other options you might need, such as --prefix): ./configure --enable-checking='yes,glyphs' --enable-check-lisp-object-type \ CFLAGS='-O0 -g3' The -O0 flag is important, as debugging optimized code can be hard. If the problem happens only with optimized code, you may need to enable optimizations. If that happens, try using -Og first instead of -O2, as -Og disables some optimizations that make debugging some code exceptionally hard. > And how do you advise debugging Elisp code? See the above mentioned file for more details. > And where to send the patches? To this mail? Probably best to send to the debbugs issue tracker; using `M-x submit-emacs-patch' might be helpful for that. > Thanks for helping. Steve Berman
Рабочая Почта <work.mail.for.me.tgg@gmail.com> writes:
> Thanks for answering.
>
> This is a bug of building Emacs, not using it.
>
> ./autogen.sh
> ./configure --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no
> make
> make install
>
> You can't repeat this bug. Because this bug is due to a new processor.
> But I would be happy if you said how to set flags to compile Emacs with debug information.
Please compile Emacs with:
./configure --enable-checking='yes,glyphs' --enable-check-lisp-object-type \
CFLAGS='-O0 -g3'
> From: Рабочая Почта
> <work.mail.for.me.tgg@gmail.com>
> Date: Thu, 16 Sep 2021 00:32:26 +0300
> Cc: emacs-devel@gnu.org
>
> This is a bug of building Emacs, not using it.
>
> ./autogen.sh
> ./configure --with-x-toolkit=no --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no
> make
> make install
But building Emacs involves running the built Emacs binary, so these
two are not really separated.
On Sep 15 2021, Рабочая Почта wrote:
> With --with-dumping=none it builds successfully, it works, but crashes
> sometimes. That will be fixed by simple debugging.
This could be a GC problem. Perhaps stack marking doesn't find all live
roots, causing objects to be collected too early.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."