Freepascal & Lazarus on the RaspberryPi Zero

Start with the Seed-Compiler from freepascal.org. The currently active Version is 3.0.4. You can compile a newer version using this one later on, but it’s not necessary (currently).

The “official” guides to install FPC + Lazaurs on Linux (and therefore the Raspberry Pi) are in the Wiki, for Linux and the Raspberry Pi. However, as IDE and compiler ar getting bigger, a little extra settings are required.

Download, Extract and install:

wget ftp://freepascal.stack.nl/pub/mirrors/fpc/dist/3.0.4/arm-linux/fpc-3.0.4.arm-linux-eabihf-raspberry.tar
tar -xf fpc-3.0.4.arm-linux-eabihf-raspberry.tar
sudo ./fpc-3.0.4.arm-linux/install.sh

Afterwards, you should have FreePascal available as text-mode, command line compiler:

pi@raspberrypi:~/Download/fpc-3.0.4.arm-linux $ fpc
Free Pascal Compiler version 3.0.4 [2017/10/11] for arm
Copyright (c) 1993-2017 by Florian Klaempfl and others

Now, download Lazarus. You might create a new directory for this, and you will probably need to install subversion, too:

sudo apt-get install subversion
svn co http://svn.freepascal.org/svn/lazarus/branches/fixes_1_8 fixes_1_8_5

To compile Lazarus, a few lot of dependencies are required, on a fresh install of Raspbian it’s something like

sudo apt-get install build-essential libgtk2.0-dev libgdk-pixbuf2.0-dev

This little line pulls > 200MB to the Pi, which might take a while. Before we can start to compile the lot, we need to increase available swap-space on the pi. Otherwise, linking Lazarus 1.8 will fail on the Pi Zero at least.

sudo su -c 'echo "CONF_SWAPSIZE=1024" > /etc/dphys-swapfile'
sudo dphys-swapfile setup
sudo dphys-swapfile swapon

Then, building Lazarus is as simple as that (however, it might take 1 hour to complete….):

make all
sudo make install

Sometimes, “make bigide” is recommended. It will almost certainly not work, and compile a lot of packages that you probably don’t need. You can then install Lazarus by invoking “sudo make install”, or start it using “startlazarus”.

But: as we used the binary distribution of the compiler, Lazarus will not be able to find the compiler sources; specifically, those of the runtime library. You can probably ignore this; it’s better, however, to get those sources:

wget ftp://freepascal.stack.nl/pub/mirrors/fpc/dist/3.0.4/source/fpc-3.0.4.source.tar.gz
tar -xf fpc-3.0.4.source.tar.gz
cd fpc-3.0.4
sudo make fpc_sourceinstall

You might want to delete the extracted directory before starting Lazarus, to prevent it from finding this directory while searching for the Freepascal sources. If it does not find the directory on it’s own, you can point it to “/usr/local/share/src/fpc-3.0.4/fpc”.

Version 1.8.5 of Lazarus running in XRDP with the Raspbian Pixel desktop on a Raspberry Pi zero.

Other variants:

An older version of FPC and Lazarus is allways available in the standard packages of your system. Also, fpxdeluxe does a very goot job in pulling and installing FPC and Lazarus of any desired revision; however, the armhf6 Version required for the Raspberry Pi Zero (and A…) does not currently work.