Building an image for Raspberry Pi

Tim Kientzle tim at kientzle.com
Sat Apr 5 17:43:38 UTC 2014


On Apr 2, 2014, at 11:14 PM, Shawn Webb <lattera at gmail.com> wrote:

> On Apr 03, 2014 01:41 AM -0400, Glen Barber wrote:
>> You need to build the XDEV stuff for the build environment.
>> 
>> Something like: make -C /usr/src XDEV=arm XDEV_ARCH=armv6
>> 
>> should do the trick.
> 
> Yeah, I have the xdev stuff installed. It kinda seems like just using
> this xdev stuff isn't sufficient. It seems u-boot might require some
> gcc-centric items (though I'm unsure what they are).

Unfortunately, my time has been rather cramped, though
Tom Everett and Patrick Kelsey have been doing a bunch
of Crochet work recently.

The confusing part about U-Boot is that it requires two different compilers to build:

* Building the U-Boot loader needs an ARM cross-compiler and relies on GCC-specific options.

* U-Boot also builds some tools that run on the build host; that uses a different native compiler and does not seem to rely on GCC-specific features.

For the host tools, setting HOSTCC=cc always worked well
for me.  I never had any problems with clang or gcc as the
native host compiler for that part of U-Boot.

For the loader itself, you can try the XDEV tools (which last
I checked still built GCC) or you can try the ARM EABI
GCC cross-compiler from ports (which may be broken; I
volunteered to maintain it and then ran out of time to work on it).

One specific GCC-ism used by U-Boot (an option to reserve
a specific CPU register for global data) was added to clang
recently but I don't know if that's reached FreeBSD yet.  That
might allow clang to build the U-Boot loader, but it will require
some work: the XDEV target also builds ARM binutils and
cross-libraries which are essential.

Best luck,

Tim



More information about the freebsd-arm mailing list