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  0x0000dc24 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

Reply via email to