aboutsummaryrefslogtreecommitdiffstats
path: root/.gitlab-ci
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2019-10-08 19:46:11 +0200
committerMichel Dänzer <[email protected]>2019-10-22 10:26:29 +0000
commit163ec5d808189f54028860e23406e6be60423028 (patch)
tree532ff1edc5aec44e4e2335ba2a88811d481d2170 /.gitlab-ci
parentc5aa2711a45d060960e002804a6e5a7d326e8b5e (diff)
gitlab-ci: Use native aarch64 runner for ARM build jobs
This allows running the regression tests. One downside is that we can't easily build the Vulkan overlay layer, because only x86 binaries of the glslang validator are available. If that's important, we could either use those binaries via qemu, or build it from source. v2: * Add :amd64 suffix to existing debian-9/10 job names (Eric Engestrom) Acked-by: Eric Engestrom <[email protected]> # v1
Diffstat (limited to '.gitlab-ci')
-rw-r--r--.gitlab-ci/debian-arm64-install.sh (renamed from .gitlab-ci/debian-test-install.sh)35
-rw-r--r--.gitlab-ci/debian-install.sh6
2 files changed, 27 insertions, 14 deletions
diff --git a/.gitlab-ci/debian-test-install.sh b/.gitlab-ci/debian-arm64-install.sh
index 85817d161f0..1dac7b99593 100644
--- a/.gitlab-ci/debian-test-install.sh
+++ b/.gitlab-ci/debian-arm64-install.sh
@@ -6,36 +6,49 @@ set -o xtrace
############### Install packages for building
apt-get -y install ca-certificates
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
+dpkg --add-architecture armhf
apt-get update
apt-get -y install \
bc \
bison \
bzip2 \
+ ccache \
cmake \
+ crossbuild-essential-armhf \
curl \
flex \
g++ \
gettext \
git \
- libelf1 \
- libexpat1 \
+ libdrm-dev \
+ libdrm-dev:armhf \
+ libelf-dev \
+ libelf-dev:armhf \
+ libexpat1-dev \
+ libexpat1-dev:armhf \
libgbm-dev \
libgles2-mesa-dev \
libpng-dev \
libssl-dev \
+ meson \
ninja-build \
pkg-config \
procps \
python \
- python3-pip \
- python3-setuptools \
- unzip \
+ python3-mako \
wget \
zlib1g-dev
-export LIBDRM_VERSION=libdrm-2.4.99
+############### Generate cross build file for Meson
+
+cross_file="/cross_file-armhf.txt"
+/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
+# Explicitly set ccache path for cross compilers
+sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
+# Don't need wrapper for armhf executables
+sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
-pip3 install meson
+export LIBDRM_VERSION=libdrm-2.4.99
############### Build libdrm
@@ -96,12 +109,10 @@ rm -rf /VK-GL-CTS
############### Uninstall the build software
apt-get purge -y \
- bison \
cmake \
- flex \
- g++ \
- gcc \
git \
- ninja-build
+ libgbm-dev \
+ libgles2-mesa-dev \
+ wget
apt-get autoremove -y --purge
diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh
index 8a74b2877da..774b8e02128 100644
--- a/.gitlab-ci/debian-install.sh
+++ b/.gitlab-ci/debian-install.sh
@@ -5,7 +5,7 @@ set -o xtrace
export DEBIAN_FRONTEND=noninteractive
-CROSS_ARCHITECTURES="armhf arm64 i386"
+CROSS_ARCHITECTURES="i386"
for arch in $CROSS_ARCHITECTURES; do
dpkg --add-architecture $arch
done
@@ -216,9 +216,11 @@ for arch in $CROSS_ARCHITECTURES; do
/usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
# Explicitly set ccache path for cross compilers
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
- # Work around a bug in debcrossgen that should be fixed in the next release
if [ "$arch" = "i386" ]; then
+ # Work around a bug in debcrossgen that should be fixed in the next release
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
+ # Don't need wrapper for i386 executables
+ sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
fi
done