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