Setup Lazarus for cross compile

Install FPC and Lazarus

Reference: http://wiki.lazarus.freepascal.org/Setup_Cross_Compile_For_ARM

Use the script from the page. A copy is here: lazarus_first_time.sh

But the binutils part should be omitted and instead use the binutils built by OE.

Use OE built binutils

Bake the binutils-cross-sdk:

bitbake binutils-cross-sdk

Install the baked ipk, eg. binutils-cross-sdk_2.18-r13.1.6_i686-armv6-sdk.ipk, on the host:

sudo dpkg --install --force-architecture binutils-cross-sdk_2.18-r13.1.6_i686-armv6-sdk.ipk

Create links to the binutils programs:

cd ~/lazarus/fpc/binutils
ln -s /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-ld ld
ln -s /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-ar ar

cat <<EOT > as
#!/bin/sh
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-as -meabi=5 \$@
EOT

chmod 755 as

Config fpc to use the binutils, edit ~/.fpc.cfg to include:

...
#IFDEF CPUARM
-XP/home/mike/lazarus/fpc/binutils/
...

Get target library files

Copy the target library files from OE to the host:

cd /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi
sudo mkdir -p {lib/gcc,usr/lib}
sudo rsync -av 192.168.0.24::oe/build/ok6410-tmp/sysroots/armv6-angstrom-linux-gnueabi/lib/* lib/
sudo rsync -av 192.168.0.24::oe/build/ok6410-tmp/sysroots/armv6-angstrom-linux-gnueabi/usr/lib/* usr/lib/
sudo rsync -av 192.168.0.24::oe/build/ok6410-tmp/sysroots/i686-linux/usr/armv6/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/* lib/gcc/

Config fpc to use the libraries, edit ~/.fpc.cfg to include:

...
#IFDEF CPUARM
-Fl/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib
-Fl/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib
-Fl/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib/gcc
...
oe/setup_lazarus_for_cross_compile.txt · Last modified: 2010-11-11 18:19 by admin
Back to top
GNU Free Documentation License 1.3
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0