Recently I needed to build mesa on my OrangePi One Plus to get the most out of the current Panfrost support. However the building always failed because the board locked itself up. Some research showed that it most likely ran out of memory.
So what I had to do was to create some temporary swap space and make sure that the system uses it just in emergency case.
First check the currently active swaps:
NAME TYPE SIZE USED PRIO
/dev/zram1 partition 492.6M 0B 5
As we can see zram is active. Since I wanted to keep zram in the future and needed the workaround only temporary as mentioned I simply got rid of it by executing
Now I created a new swapfile. If possible plugin a USB stick or similar to not unnecessary reduce the health of your sd card. In my case I did not care about that factor:
dd if=/dev/zero of=/swap bs=1M count=2048
This created a new 2G file, formatted it as swap and enabled it. Of course you could use
truncate for the first job too.
The last step was to tell the system not to use the swap space unless it has no choice but to do so.
Monitoring the memory usage while building clearly showed some spikes in usage that without the additional space killed the OS.