You got an error if you cross compile it. There is a missing file, but this happens after building the cross compiler. In /tmp/fpc-pack is the cross compiler and all compiled units for arm-linux. Copy them to fpc lib directory, mostly in /usr/lib/ or /usr/local/lib/, where the i386 files for fpc386 are.

I had changed in svn tree "packages/sdl/src/sdl_mixer.pas" before cross compiling, the unit smpeg not working under gp2x. Replace around line 450 this

Code:
{$IFNDEF DARWIN}
 5 : ( mp3 : PSMPEG );
{$ENDIF}
with this
Code:
{$IFNDEF DARWIN}
{$IFNDEF no_smpeg}
5 : ( mp3 : PSMPEG );
{$ENDIF}
{$ENDIF}
Copy a local version of fpc.cfg to your develop directory and add following lines to it:

Code:
#ifdef GP2X
#define gp2x
#endif

#ifdef gp2x
#define GP2X
#endif

#ifdef gp2x
#define no_smpeg
-Fl/usr/local/devkits/gp2xdev/lib ##// <-- where you have installed you binutils for arm
-XPgp2x- 
-Xd 
-Xr/usr/local/devkits/gp2xdev ##<-- where you have installed you binutils for arm
#endif
For gp2xwiz i have started to write an opengl es unit, which loads all functions dynamically, but i got an access exception on gp2xwiz, on windows it works now.

Thomas