Subject: [alpine-devel] How to Qt 5 packages are built for architecture aarch64 (i.e. Raspberry Pi 3)

From: Pablo Rogina <[email-masked]>
Date: Sun, 5 May 2019 17:49:59 -0300

Hi,

I like to ask please how the packages Qt5* (i.e. qt5-base [1],
qt5-qtlocation [2]) are built for architecture aarch64, are they build
natively in real Raspberry Pi devices or are they cross-compiled in
some other architecture (i.e. X86_64)?

Best regards,

Pablo J. Rogina

[1] https://pkgs.alpinelinux.org/package/v3.9/community/aarch64/qt5-qtbase
[2] https://pkgs.alpinelinux.org/package/v3.9/community/aarch64/qt5-qtlocation

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Milan P. Stanić <[email-masked]>
Date: Sun, 5 May 2019 23:20:04 +0200

Hi,

> some other architecture (i.e. X86_64)?

Alpine build packages native, i.e. not cross build.
Although it is not RPi3 for aarch64 but some more powerful ARM64
machines.

---

---

From: Pablo Rogina <[email-masked]>
Date: Mon, 6 May 2019 11:40:51 -0300

Hi Milan, thank you for your reply.

> Although it is not RPi3 for aarch64 but some more powerful ARM64

Given I don't have "more powerful ARM64 machines" at hand:
1. could it be possible to cross-compile those packages under a X86_64
machine using the Linario binary toolchain [1]?
2 do I need to do something special because musl library?

[1] https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/

---

---

From: Rasmus Thomsen <[email-masked]>
Date: Mon, 06 May 2019 14:55:35 +0000

Hello,

1.
since crosscompiling isn't really tested on Alpine (nor supported) I can suggest you to instead compile in a virtual machine (via Qemu, you can use the scripts from here if you want to: http://arvanta.net/mps/)
2.
I don't think you can use these since they're most likely linked against glibc. Maybe they'll work with gcompat though.

Regards,

Rasmus Thomsen

---

From: Milan P. Stanić <[email-masked]>
Date: Mon, 6 May 2019 21:05:49 +0200

Hi,

> [1] https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/

Sorry if was not more clear answering your question. I thought you ask
how Alpine builds packages.

Of course, you can build them on RPi3 or other smaller boxes and (as
Rasmus wrote in response to you) under qemu.
Personally I built a lot of them on small ARM SBC's with 1GB RAM, one or
two CPU's and filesystem on SD cards. For smaller packages it works fine
although not fine as on big boxes.

Big packages require more RAM and some tweaks. For example I've built
llvm, rust lang, crystal lang, firefox and some other on ARM64 with 4GB
RAM with help form zram swap and stopping all other processes (Xwin and
similar) and build set to just one job (i.e. not paralel, 'make -j1').
It is slow for such big packages but it works, and slowness is mostly
becuase filesystem is on SD cards. I tried also with SSD attached over
USB-C and then it is somewhat faster.

Now I have both arm machines (arm32 and arm64) with 4GB and eMMC cards
so it is easier for me, but remember when I built most of them under
qemu.

-- 
regards

---

---

From: Pablo Rogina <[email-masked]>
Date: Fri, 17 May 2019 10:58:42 -0300

Guys, thank you very much for the tips and details about packages
building approach for RPi devices.

I'm not sure I have enough spare time but I might give the qemu based
scenario a try.

Regards. Pablo

---