[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Cross-compilation, with a twist



	Dear list,

Recently I acquired an arm64 SBC to replace my aging PC, installed
Debian buster on it (had to use third-party kernel and u-boot, but
that's beside the point), and started using the thing.
And I can tell that you really start believing in progress then you see
a box of the size and weight of two cigarette packs that can do the same
as your old 10kg dusty metal box.

I'm a man of simple tastes, so most of the stuff I needed was at Debian
main already, built the way I needed. But, there are some exceptions.

Hence the need of building packages for arm64.
I've tried the SBC itself, the results were as expected - suboptimal.
I've tried Amazon AWS (you can rent arm64 there) - the results were
mixed. 

So I poked around a bit, and got an access to an old 2 Intel CPU 96Gb
RAM server, where they gave an LXC container with a Debian inside, and a
root password to it.

Most of the self-built packages that I tend to use are primitive C
programs, so cross-compiling them with gcc-8-aarch64-linux-gnu was not
that time-consuming.
It even was not that hard, considering that I've learned the way to do
it with armel and armhf.

But, here's the problem, and the problem is called chromium, with a set
of custom patches I've collected.

Recently they've uploaded chromium version 80 to unstable (two different
versions, in fact).
Along with the other things, package maintainer switched from using gcc
to build to the package to clang. To spare you the details - yes, it's
needed, and yes, it's a Google who's responsible for this.

The problem is - I can use gcc-8-aarch64-linux-gnu to cross-build
chromium-79, and it takes about 1.5 hours.
I can use QEMU user emulation and gcc-8 built for arm64, and it takes
more than a day to build the same chromium-79.

But I cannot use gcc-8-aarch64-linux-gnu for chromium-80, and running a
clang toolchain in a QEMU user emulation is something I'd like to avoid.

What I do not see in Debian main is a clang compiler suite that's built
for cross-compilation.
Is there such a thing?

Reco


Reply to: