Want to run L4Re on Raspberry PI.

Lei Zhou lezhou at blackberry.com
Wed May 29 22:39:06 CEST 2019

When I cross compiled Fiasco for Raspberry PI3 B,   running into this compiling error as below.

Here are what I did:
  1. use Linaro cross compiler
  2. // cross compiling for Rpi 3b+
      $make BUILDDIR=build-rpi3-ukernel
      $make O=build-rpi3-ukernel config    // pick aarch64, broadcom 2837, and rpi 3b
      $make O=build-rpi3-ukernel -j4

Compiling error:
  ... Making arm_control-arm-bcm283x.o
  ... Making irq_handler-arm-bcm283x.o
  ... Making uart_console.o
  ... Making vgic.o
  ==> Linking tcboffset.bin
  ... Making jdb.o
In file included from auto/vgic.cc:4:0:
/home/lezhou/workspace/l4re/src/kernel/fiasco/src/kern/arm/vgic.cpp: In constructor ‘Gic_h_init::Gic_h_init(Cpu_number)’:
/home/lezhou/workspace/l4re/src/kernel/fiasco/src/kern/arm/vgic.cpp:153:59: error: ‘Gic_h_phys_base’ is not a member of ‘Mem_layout’
/home/lezhou/workspace/l4re/src/kernel/fiasco/src/Makerules.global:118: recipe for target 'vgic.o' failed   <<<====== compiling error
make[2]: *** [vgic.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/lezhou/workspace/l4re/src/kernel/fiasco/build-ukernel-pi3'
/home/lezhou/workspace/l4re/src/kernel/fiasco/src/Makefile:153: recipe for target 'all' failed

Any inputs would be appreciated!

From: l4-hackers [l4-hackers-bounces at os.inf.tu-dresden.de] on behalf of Paul Boddie [paul at boddie.org.uk]
Sent: Wednesday, May 29, 2019 12:27 PM 
To: l4-hackers at os.inf.tu-dresden.de
Subject: Re: Want to run L4Re on Raspberry PI.

On Wednesday 29. May 2019 15.20.01 Matthias Lange wrote:
> The issue we have with "standard" cross toolchains is the libgcc they are
> shipping. It is compiled for ARMv7 and contains instructions that are
> unknown / illegal on ARMv6k. The mean thing is, that our build system tells
> GCC via "-march=armv6zk" what code to generate but then links the wrong
> libgcc.

Some of these compiler configuration issues are awkward. My problem was that
although there are switches for hard- and soft-float, appropriate libgcc
variants need to be available, and the Debian toolchains do not provide them
all. I actually don't remember if there is a need for completely separate
compilers, but I would hope not (and yet not be surprised if it were the

Of course, it is one thing to be able to avoid certain instructions in one's
own code, quite another to have to deal with library code liberally using
"illegal" instructions. I got quite far with bare metal code, even targeting
microcontrollers like the PIC32 with the MIPS compilers, for instance.

So, the Buildroot compiler it had to be.


P.S. I have a selfish interest in following this as I could imagine also
trying out L4Re on the Raspberry Pi at some point. I guess that the
framebuffer isn't currently supported though.

l4-hackers mailing list
l4-hackers at os.inf.tu-dresden.de

More information about the l4-hackers mailing list