qemu-aarch64-static

Luca Pizzamiglio luca.pizzamiglio at gmail.com
Wed Aug 23 15:40:31 UTC 2017


If you want to cross-compile, you need
* a proper toolchain
* a project that's enable to produce cross-compiled binaries


On Tue, Aug 22, 2017 at 8:04 PM, Andrea Venturoli <ml at netfence.it> wrote:
> On 08/22/17 18:03, Luca Pizzamiglio wrote:
>>
>> yes, the qemu emulation of other architecture means that the CPU is
>> emulated by software, that's really expensive.
>> You should consider around 10x slower or even more. ccache can help a
>> lot in this case.
>
>
> Thanks.
> So you are confirming my poudriere is running an ARM compiler to produce ARM
> code?

I've played with cross-compile in the past and that's my understanding.

>
> What's the use of "-x" when creating a jail then?
> What role does the "native cross-toolchain" play?

The FreeBSD jail is built using a cross-toolchain (fast) and it
contains "cross-binaries" (in case of ARM, in the jail you will have a
compiler which host and target are ARM)
The packages are built inside a "cross-jail" (slow)

The problem is that external ports often don't support cross-compile,
so instead of modify tons of ports to add cross-tollchain support,
poudriere/FreeBSD exploit features offered by binmisc/qemu to build
binaries in a emulated environment. The big drawback is the speed.

> I understood that would mean running an AMD64 compiler to cross-build ARM
> code... and thought that its timings would be comparable to native building.
> Is that wrong?
>
>  bye & Thanks
>         av.


More information about the freebsd-ports mailing list