cross-building ARM world on amd64

Tim Kientzle kientzle at
Sun Jan 12 20:16:41 UTC 2014

On Jan 12, 2014, at 11:23 AM, CeDeROM <cederom at> wrote:

> On Sun, Jan 12, 2014 at 7:59 PM, Timo Buhrmester <fstd.lkml at> wrote:
>> I've been following this guide ( in an attempt to build an armv6 world on my amd64 host running 10.0-RC4.
>> Using this command (inside /usr/src)
>>> # make TARGET="arm" TARGET_ARCH="armv6"  MAKEOBJDIRPREFIX=/usr/cross/obj buildworld
>> It eventually fails with:
>>> ./make_keys keys.list > init_keytry.h
>>> ./make_keys: Exec format error
>>> *** Error code 126
>>> Stop.
>>> make[4]: stopped in /usr/src/lib/ncurses/ncurses
>> Looking at the file in question, make_keys is an ARM binary, which obviously won't run on amd64, yet it is being executed.
>> I wonder what I'm missing here.
>> Also not quite sure what information would be helpful, but here's the host's uname -a output:
>> # uname -a
>> FreeBSD flap 10.0-RC4 FreeBSD 10.0-RC4 #0 r260130: Tue Dec 31 17:10:01 UTC 2013     root at  amd64
>> Thanks for any help,
>> Timo

Helpful information:
 * Contents of  /etc/make.conf
 * Contents of /etc/src.conf
 * More of the error message (that shows what it was trying to compile).  Usually the previous 20 lines or so are sufficient.

> Make sure you are using arm-eabi-gcc and arm-eabi-binutils, ...

No, cross-compiling FreeBSD/ARM does not require these ports at all.
These ports are needed only if you are cross-compiling other software
manually.  The FreeBSD source tree has the necessary tool support
already built in.


More information about the freebsd-questions mailing list