cross-building ARM world on amd64
Tim Kientzle
kientzle at freebsd.org
Sun Jan 12 20:16:41 UTC 2014
On Jan 12, 2014, at 11:23 AM, CeDeROM <cederom at tlen.pl> wrote:
> On Sun, Jan 12, 2014 at 7:59 PM, Timo Buhrmester <fstd.lkml at gmail.com> wrote:
>> I've been following this guide (https://wiki.freebsd.org/A_Brief_Guide_To_Cross_Compiling_FreeBSD) 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 snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC 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.
Tim
More information about the freebsd-questions
mailing list