Package: fp-ide-3.0.0
Severity: important

The freepascal textmode IDE crashes on startup on arm64. I rebuilt it with debug symbols enabled and got the following backtrace.

root@pine64pro:/# gdb /fpc-3.0.0+dfsg/fpcsrc/ide/bin/aarch64-linux/fp
GNU gdb (Debian 7.11.1-2) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /fpc-3.0.0+dfsg/fpcsrc/ide/bin/aarch64-linux/fp...done.
(gdb) run
Starting program: /fpc-3.0.0+dfsg/fpcsrc/ide/bin/aarch64-linux/fp

Program received signal SIGSEGV, Segmentation fault.
0x000000000043851c in REGISTERTYPE (S=...) at rtl-extra/src/inc/objects.pp:2935 2935 Do P := P^.Next; { Find end of chain }
(gdb) p P
$1 = 0x0
(gdb) bt
#0  0x000000000043851c in REGISTERTYPE (S=...)
    at rtl-extra/src/inc/objects.pp:2935
#1  0x00000000006d1f4c in REGISTERTIMEDDIALOG () at fv/src/timeddlg.pas:246
#2  0x00000000006d1f6c in TIMEDDLG_$$_init () at fv/src/timeddlg.pas:252
#3  0x000000000041a4cc in fpc_initializeunits () at ../inc/system.inc:895
#4  0x0000000000400888 in main () at fp.pas:350
(gdb) p S
$2 = {OBJTYPE = 98, VMTLINK = 0x8872f8, LOAD = 0x6d1ae8, STORE = 0x6d1c58,
  NEXT = 0x0}
(gdb)

Not sure what is going wrong here. gdb tells me that P is nil and yet there is a gaurd against that in the code. Maybe a miscompilation of some sort?

The issue does not seem to appear with upstream trunk.

Reply via email to