Cross-Compiling RPi Ports From amd64 Using Native Toolchain
Tur-Wei Chan
twchan at singnet.com.sg
Tue Dec 30 15:01:28 UTC 2014
Hi,
On 30/12/2014 6:35 AM, Jeremy Brown wrote:
> I'm trying to write a script that will create a custom FreeBSD image for a
> Raspberry Pi that includes a precompiled set of ports. I'm using Crochet
> for the heavy lifting and it's mostly finished except for the compiling the
> ports on the image. I managed to get it working using full-emulation with
> qemu but it's ridiculously slow, and now I'm trying to use the native
> toolchain to speed up the build.
> This is where everything's gotten difficult. I've been beating my head for
> the past week or so and I can't even get make to proceed past the configure
> stage. Right now I have two issues:
> 1) cpp fails the sanity check with a syntax error around the headers; I
> don't know why, as I've replaced the toolchain's include directory with a
> symlink to the system's directory.
> 2) I get the error ELF interpreter /libexec/elf-ldconfig.so.1 cannot be
> found, more or less. I've tried symlinking the system's file in to replace
> the toolchain's one, but I didn't suppose that didn't help since they were
> for different architectures.
> Can anyone help me solve these, or point me to a location where they've
> been solved already? I've tried following the qemu howto
> <https://wiki.freebsd.org/QemuUserModeHowTo> but it doesn't work for me.
>
> -Jeremy
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
I managed to use crochet and the QemuUserModeHowTo to build some ports
for the RPi. What bit me in the process was that the "Cross Building
Using The Host Cross Compiler" section had to be followed to a T - in
particular, the built cross toolchain in /usr/obj/usr/src/tmp must be
moved to <chroot_root>/usr/obj wholesale, the local headers symlink
made, and the cross-CC environment variables set up. The error in #2
above seems to indicate that the cross tool is not statically linked, so
maybe the wrong toolchain is in use.
The second gotcha turned out to be the mysterious-sounding "Add the
miscellaneous binary image activator patch to FreeBSD" section. I
didn't understand what that was for till various python scripts that
start with shebangs (#!/usr/local/bin/python2.7) would fail to be loaded
as python scripts. Invoking the image activator magic allowed that part
to be solved.
Regards
-T.W.Chan-
More information about the freebsd-arm
mailing list