fpc trunk r26906, cross compiled fpcup for ARMHF; running on Odroid U3
Xubuntu; ran under gdb:
fpcup stops with a SIGSEGV:
...
fpcup: info: Created launcher script for
FPC:/home/odroid/development/fpctrunk/bin/arm-linux/fpc.sh
Executing : /home/odroid/development/fpctrunk/compiler/ppc1 -iV
(working dir: )
2.7.1
Executing : /home/odroid/development/fpctrunk/bin/arm-linux/fpcmkcfg
-h (working dir: )
Program received signal SIGSEGV, Segmentation fault.
0x00029998 in SYSTEM_$$_PUSHEXCEPTOBJECT$TOBJECT$POINTER$POINTER ()
(gdb) bt
#0 0x00029998 in SYSTEM_$$_PUSHEXCEPTOBJECT$TOBJECT$POINTER$POINTER ()
#1 0x00083800 in EXECUTECOMMANDINDIR (
COMMANDLINE=0xb6e6e00c
/home/odroid/development/fpctrunk/bin/arm-linux/fpcmkcfg -h,
DIRECTORY=0x0, OUTPUT=0x0, VERBOSE=true) at processutils.pas:445
#2 0x000836a8 in EXECUTECOMMAND (
COMMANDLINE=0xb6e6e00c
/home/odroid/development/fpctrunk/bin/arm-linux/fpcmkcfg -h,
OUTPUT=0x0, VERBOSE=true) at processutils.pas:431
#3 0x000b92ac in TINSTALLER__CHECKEXECUTABLE (
EXECUTABLE=0xb6e6f22c
/home/odroid/development/fpctrunk/bin/arm-linux/fpcmkcfg,
PARAMETERS=0x160480 -h, EXPECTOUTPUT=0x16091c fpcmkcfg,
this=error reading variable) at installercore.pas:457
#4 0x000c1428 in TFPCINSTALLER__BUILDMODULE (MODULENAME=0xb6fc84ac FPC,
this=error reading variable) at installerfpc.pas:1198
#5 0x000d1a54 in TSEQUENCER__DOBUILDMODULE (MODULENAME=0xb6fc84ac FPC,
this=error reading variable) at installermanager.pas:624
#6 0x000d4e50 in TSEQUENCER__RUN (SEQUENCENAME=0xb6fccf4c FPCBuildOnly,
this=error reading variable) at installermanager.pas:1224
#7 0x000d4ccc in TSEQUENCER__RUN (SEQUENCENAME=0x1662e4 Only,
this=error reading variable) at installermanager.pas:1214
#8 0x000d12fc in TFPCUPMANAGER__RUN (this=error reading variable)
at installermanager.pas:536
#9 0xdc24 in main () at fpcup.lpr:802
The executable processutils is trying to execute does not exist. This is
not a problem on e.g. Windows/x64 Linux.
What I don't understand: the last line of fpcup output above seems to
indicate the code has actually reached the execution part in my code,
TProcessEx.Execute.
The TProcessEx.ExecuteCommandInDir call in #1 calls overloaded versions
of ExecuteCommandIndir until they end up calling TProcessEx.Execute.
Why doesn't that show up in the backtrace?
What does this line mean:
#0 0x00029998 in SYSTEM_$$_PUSHEXCEPTOBJECT$TOBJECT$POINTER$POINTER ()
... part of the FPC exception handling code perhaps?
I'm now going to go back to a revision of end January (where I had a
working fpcup) to see if that fixes things.
Suggestions/tips welcome.
Thanks,
Reinier
More details:
fpcup revision 416db02e900c
Source:
https://bitbucket.org/reiniero/fpcup/src/?at=processutils_bug_on_armhf
___
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal