Skip to content

Preparing ARM libraries for CI

Josh Matthews edited this page Apr 25, 2019 · 2 revisions

Based on instructions from http://mmatyas.github.io/blog/servo-short-cross-compilation-guide, most recently used as part of upgrading non-Taskcluster Linux CI to Xenial:

arm32:

apt install qemu-debootstrap
qemu-debootstrap --arch=armhf --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --verbose xenial rootfs-xenial-armhf
chroot rootfs-xenial-armhf /bin/bash
apt install git curl autoconf libx11-dev \
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
    g++ build-essential cmake \
    libssl-dev libbz2-dev liblzma-dev libosmesa6-dev libxmu6 libxmu-dev \
    libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev \
    libharfbuzz-dev ccache libunwind-dev \
    libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
exit
tar czfv armhf-xenial-libs.tgz -C rootfs-xenial-armhf usr/include/arm-linux-gnueabihf lib/arm-linux-gnueabihf usr/lib/arm-linux-gnueabihf

arm64:

apt install qemu-debootstrap
qemu-debootstrap --arch=arm64 --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg --verbose xenial rootfs-xenial-arm64
chroot rootfs-xenial-arm64 /bin/bash
apt install git curl autoconf libx11-dev \
    libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
    g++ build-essential cmake \
    libssl-dev libbz2-dev liblzma-dev libosmesa6-dev libxmu6 libxmu-dev \
    libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev \
    libharfbuzz-dev ccache libunwind-dev \
    libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
exit
tar czfv arm64-xenial-libs.tgz -C rootfs-xenial-arm64 usr/include/aarch64-linux-gnu lib/aarch64-linux-gnu usr/lib/aarch64-linux-gnu
Clone this wiki locally