[Lazarus] Cross-compiling -> MIPS

SkyDiablo skydiablo at gmx.net
Wed Oct 24 22:08:05 CEST 2012


wow ! thats amazing!

okay, i create the follow batch-file:

=======================================================
set PATH=C:\lazarus\fpc\2.6.0\bin\i386-win32;C:\Program Files 
(x86)\CodeSourcery\Sourcery G++ Lite\lib\gcc
set PREFIX=mips-linux-
set BINUTILSDIR="C:\Program Files (x86)\CodeSourcery\Sourcery G++ Lite\bin"
set INSTALLDIR="D:\fpc\install"

cd D:\fpc\trunc\2.7.x\fpcbuild\fpcsrc

make all OS_TARGET=linux CPU_TARGET=mips BINUTILSPREFIX=%PREFIX% 
CROSSBINDIR=%BINUTILSDIR%
make crossinstall OS_TARGET=linux CPU_TARGET=mips 
BINUTILSPREFIX=%PREFIX% CROSSBINDIR=%BINUTILSDIR% 
INSTALL_PREFIX=%INSTALLDIR%

pause
=======================================================

so, it runs and runs and runs... but then:

=======================================================
C:/lazarus/fpc/2.6.0/bin/i386-win32/rm.exe -rf units_bs
make[4]: Leaving directory 
`D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/packages/fpmkunit
'
make[3]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/packages'
make[2]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc'
make rtl_smart 
FPC=D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/compiler/ppcrossmips.exe R
ELEASE=1
make[2]: Entering directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc'
make -C rtl smart
make[3]: Entering directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl'
make -C linux smart
make[4]: Entering directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl/linux'
make all LINKSMART=1 CREATESMART=1
make[5]: Entering directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl/linux'
C:\Program Files (x86)\CodeSourcery\Sourcery G++ 
Lite\bin/mips-linux-as.exe -EB
-o D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl/units/mips-linux/prt0.o 
mips/prt0.as
process_begin: CreateProcess((null), C:\Program Files 
(x86)\CodeSourcery\Sourcer
y G++ Lite\bin/mips-linux-as.exe -EB -o 
D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl/u
nits/mips-linux/prt0.o mips/prt0.as, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
make[5]: *** [prt0.o] Error 2
make[5]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl/linux'
make[4]: *** [fpc_smart] Error 2
make[4]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl/linux'
make[3]: *** [linux_smart] Error 2
make[3]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc/rtl'
make[2]: *** [rtl_smart] Error 2
make[2]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc'
make[1]: *** [build-stamp.mips-linux] Error 2
make[1]: Leaving directory `D:/fpc/trunc/2.7.x/fpcbuild/fpcsrc'
make: *** [crossinstall] Error 2
=======================================================

ERROR ALARM !!!! *fu...*

so i checked the path:

D:\fpc\trunc\2.7.x\fpcbuild\fpcsrc\rtl\units\mips-linux

the path exists, but it is emty !!! so i dont know what should i do now 
? a another path exists too:

D:\fpc\trunc\2.7.x\fpcbuild\fpcsrc\rtl\units\i386-win32

there are many files inside... Sven Barth, can you held me again ?

greez & big thx,
    sky...


Am 23.10.2012 23:09, schrieb Sven Barth:
> On 23.10.2012 15:49, SkyDiablo wrote:
>> okay, what i have to try:
>>
>> 1. use lazarus 1.1 with FPC 2.7.1 (i386-win32-win32/win64) SVN-Revision
>> 39124
>> 2. download current fpc-build trunk 2.7.x -> D:\pas\trunc\fpcbuild\
>> 3. compile with lazarus:
>> D:\pas\trunc\fpcbuild\fpcsrc\compiler\ppmipsel.lpi ->
>> D:\pas\trunc\fpcbuild\fpcsrc\compiler\mipsel\pp.exe
>
> The first step is wrong. Compiling trunk is only supported by the last 
> release of FPC which currently is 2.6.0.
>
> Also the last step is wrong. That is only for compiler developers.
>
> The correct way is the following:
>
> Open a command line and navigate to D:\pas\trunc\fpcbuild\fpcsrc.
> Execute the following command (placeholders that you need to replace 
> correctly are marked as %...% and commented on below):
>
> make all OS_TARGET=linux CPU_TARGET=mips BINUTILSPREFIX=%PREFIX% 
> CROSSBINDIR=%BINUTILSDIR%
> make crossinstall OS_TARGET=linux CPU_TARGET=mips 
> BINUTILSPREFIX=%PREFIX% CROSSBINDIR=%BINUTILSDIR% 
> INSTALL_PREFIX=%INSTALLDIR%
>
> PREFIX is the prefix of the GNU binutils you have either downloaded or 
> build yourself. For MIPS it should be something like "mips-elf-" or 
> "mips-linux-".
> BINUTILSDIR is the directory where the binutils binaries are located. 
> Most especially "as" and "ld" (both with the %PREFIX% given above).
> INSTALLDIR is the directory where you want to install that FPC to. It 
> should be a different directory from the "fpcsrc" directory. E.g.: 
> D:\pas\trunc\fpcbuild\fpcsrc-install
>
> Note: If your FPC 2.6.0 installation is not in "PATH" you need to add 
> "FPC=path\to\your\fpc.exe" to your the commands containing "all".
>
> Eventually you'll might also want to do a "make all install 
> INSTALL_PREFIX=%INSTALLDIR%" before all that to install a win32 
> compiler and (to ease usage) the "fpc" binary.
>
> You then need to add a fpc.cfg to %INSTALLDIR%\bin\i386-win32 (or to 
> be more precise: the directory where the ppcrossmips binary is 
> located). You can e.g. copy the one from your 2.6.0 installation and 
> adjust the paths in it.
>
> Then it should work to call either "INSTALLDIR\bin\i386-win32\fpc 
> -Pmips" or "ppcrossmips" to compile for MIPS. You also need to either 
> specify the values given for %PREFIX% and %BINUTILSDIR% either on the 
> command line (using -XP%PREFIX% (e.g. "-XPmips-elf-") and 
> -FD%BINUTILSDIR%) or in the fpc.cfg in the following way:
>
> ifdef CROSSCOMPILING
> ifdef CPUMIPS
> -XP%PREFIX%
> -FD%BINUTILSDIR%
> endif
> endif
>
> If you use any Linux libraries (e.g. libc, sqlite, etc.) you need to 
> have those available on your development system as well and pass the 
> correct paths to the compiler (I don't remember the correct parameters 
> though as I'm rather seldomly doing a cross compile... :( )
>
> Regards,
> Sven
>
> -- 
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus





More information about the Lazarus mailing list