2012
07.13

Cross-compiling AROS for ARM

On this page you will find some information on setting up linux environment to cross compile AROS as ARM linux-hosted target. This small guide is valid for Ubuntu 12.04 LTS release (you can download it here). It has been tested on 32-bit x86 machine, but should also work on any other target. Of course, you can install Ubuntu in a virtual machine (like e.g. VirtualBox) if you, just like me, don’t have Ubuntu installed on your machine. If this is the case, choose the size of virtual hard drive with care – AROS build can eat a lot of space. You’ve been warned. Let’s start.

The Ubuntu distribution has a feature I really like – the support for foreign architectures. Depending on your needs you will have to enable either softfp or hard-float ABI. I will write elsewhere about them and their impact on AROS. Whichever you want to use, it has to match the underlying ARM system. In case of EfikaMX, you need to use softfp with Ubuntu maverick and hard-float with Debian. Here are the very few necessary steps to prepare cross compiler environment for:

ARM softfp:

sudo sh
echo 'foreign-architecture armel' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armel] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armel.list
apt-get update
apt-get install gcc-arm-linux-gnueabi libx11-dev:armel libsdl-dev:armel

ARM hard-float:

sudo sh
echo 'foreign-architecture armhf' >>/etc/dpkg/dpkg.cfg.d/multiarch
echo 'deb [arch=armhf] http://ports.ubuntu.com/ precise main universe' >/etc/apt/sources.list.d/armhf.list
apt-get update
apt-get install gcc-arm-linux-gnueabihf libx11-dev:armhf libsdl-dev:armhf

Of course, none stops you from installing cross compiler for both armel and armhf targets – they coexist very nicely. Since the build environment is ready, you have to configure AROS:

./configure --target=linux-arm --x-includes=/usr/include \
            --enable-includes=/usr/arm-linux-gnueabi/include

for softfp ARM and

./configure --target=linux-armhf --x-includes=/usr/include \
            --enable-includes=/usr/arm-linux-gnueabihf/include

for hard-float ABI, respectively.

Now, the AROS build is configured properly and all you need to do is:

make

Be patient, building AROS can take a minute or two. Have fun!

Comments are closed.