Cross-compiling L4Re for MIPS32

Adam Lackorzynski adam at os.inf.tu-dresden.de
Mon Jun 13 00:41:12 CEST 2016


Hi Paul,

On Sun Jun 12, 2016 at 01:19:26 +0200, Paul Boddie wrote:
> ...I have been attempting to cross-compile Fiasco and L4Re using the l4re.org 
> sources. Getting Fiasco to cross-compile was mostly a matter of repeating the 
> same procedure as last time:
> 
> cd src/kernel/fiasco
> make BUILDDIR=mybuild
> cd mybuild/
> make config
> make
> 
> However, I needed to edit src/kernel/fiasco/src/Makeconf.mips32 to change the 
> compiler settings. I'm using the toolchains in Debian unstable:
> 
> CROSS_COMPILE             ?= mipsel-linux-gnu-
> 
> Previously, I used a Makeconf.local file to set the following:
> 
> SYSTEM_TARGET=mipsel-linux-gnu-

Please use CROSS_COMPILE=mipsel-linux-gnu- here.

> SHARED_FLAGS=-mips32r2 -EL -msoft-float -mno-abicalls -fno-pic

Setting SHARED_FLAGS flags is not required (actually must not, otherwise
I'd regard this as a bug).

> Maybe the previous work used some different mechanisms to those used by the 
> more general source distribution, but this trick didn't seem to influence the 
> build successfully this time around. However, the build did complete 
> successfully with the toolchain set appropriately.
> 
> Meanwhile, I had more problems with the L4Re part. I had expected to be able 
> to do the following:
> 
> cd src/l4
> make B=mybuild
> make O=mybuild config
> make O=mybuild E=mips-fbspectrum
> 
> (The target was something that I had managed to build previously after some 
> messing around with packages and configuration files. I'd managed to build the 
> fbspectrum example for Fiasco.OC-UX, as the list archives will attest.)
> 
> However, I also had to change the compiler settings (as done above) in 
> src/l4/mk/arch/Makeconf.mips, instead of using src/l4/Makeconf.local (as done 
> previously). Again, maybe the way of doing things was different in the 
> previous incarnation of this port.

Also use CROSS_COMPILE here.

> I also needed to edit src/l4/tool/gendep/syscall.c to add a definition before 
> unistd.h gets included:
> 
> #define __ARCH_WANT_SYSCALL_NO_AT
> 
> I can't remember if I or anyone else has mentioned this before now, but 
> without it, things like __NR_open are not defined.

On which system are you compiling this? This doesn't happen for us, so
I'm wondering.

> Unfortunately, I haven't yet reached a satisfactory conclusion in this latter 
> exercise. Looking back at my previous messages, it seems that a bit more work 
> might be needed to configure and build a suitable target, and so I was 
> wondering if anyone had done this (and written it up) for any of the MIPS 
> boards, perhaps the CI20. Indeed, I wonder if things like the framebuffer are 
> even supported for the CI20 or other MIPS boards.

We do not have any support for framebuffers on MIPS targets yet.



Adam



More information about the l4-hackers mailing list