diff options
-rw-r--r-- | .gitlab-ci.yml | 59 | ||||
-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.sh | 6 |
3 files changed, 59 insertions, 41 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ee6e02ca2c..7cde2945b58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,8 +14,8 @@ # repository's registry will be used there as well. variables: UPSTREAM_REPO: mesa/mesa - DEBIAN_TAG: "2019-10-16" - DEBIAN_ARM64_TAG: "arm64v8-2019-08-09" + DEBIAN_TAG: "2019-10-22" + DEBIAN_ARM64_TAG: "arm64v8-2019-10-22" STRETCH_TAG: "2019-09-18" DEBIAN_VERSION: buster-slim STRETCH_VERSION: stretch-slim @@ -67,39 +67,38 @@ stages: # no need to pull the whole repo to build the container image GIT_STRATEGY: none -debian-10: +debian-10:amd64: extends: - .debian@container-ifnot-exists - .container variables: DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh' -.use-debian-10: +.use-debian-10:amd64: image: $DEBIAN_IMAGE needs: - - debian-10 + - debian-10:amd64 -debian-9: - extends: debian-10 +debian-9:amd64: + extends: debian-10:amd64 variables: DEBIAN_TAG: $STRETCH_TAG DEBIAN_VERSION: $STRETCH_VERSION DEBIAN_IMAGE: $STRETCH_IMAGE DEBIAN_EXEC: 'bash .gitlab-ci/debian-stretch-install.sh' -.use-debian-9: +.use-debian-9:amd64: image: $STRETCH_IMAGE needs: - - debian-9 + - debian-9:amd64 -# Builds a Docker image with the native environment and VK-GL-CTS for testing. -test-container:arm64: +debian-10:arm64: extends: - .debian@container-ifnot-exists@arm64v8 - .container variables: DEBIAN_TAG: "$DEBIAN_ARM64_TAG" - DEBIAN_EXEC: 'bash .gitlab-ci/debian-test-install.sh' + DEBIAN_EXEC: 'bash .gitlab-ci/debian-arm64-install.sh' # BUILD @@ -141,14 +140,14 @@ test-container:arm64: .meson-build: extends: - .build - - .use-debian-10 + - .use-debian-10:amd64 script: - .gitlab-ci/meson-build.sh .scons-build: extends: - .build - - .use-debian-10 + - .use-debian-10:amd64 variables: SCONSFLAGS: "-j4" script: @@ -187,7 +186,6 @@ meson-main: .meson-cross: extends: - .meson-build - - .ci-deqp-artifacts variables: UNWIND: "false" DRI_LOADERS: > @@ -206,22 +204,29 @@ meson-main: -D gallium-nine=false -D llvm=false -meson-armhf: +.meson-arm: extends: .meson-cross + image: $DEBIAN_ARM64_IMAGE variables: - CROSS: armhf VULKAN_DRIVERS: freedreno GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4" - # Disable the tests since we're cross compiling. EXTRA_OPTION: > - -D build-tests=false -D I-love-half-baked-turnips=true - -D vulkan-overlay-layer=true + needs: + - debian-10:arm64 + tags: + - aarch64 + +meson-armhf: + extends: .meson-arm + variables: + CROSS: armhf meson-arm64: - extends: meson-armhf + extends: + - .meson-arm + - .ci-deqp-artifacts variables: - CROSS: arm64 BUILDTYPE: "debugoptimized" # NOTE: Building SWR is 2x (yes two) times slower than all the other @@ -300,7 +305,7 @@ meson-clover: meson-clover-old-llvm: extends: - meson-clover - - .use-debian-9 + - .use-debian-9:amd64 variables: UNWIND: "false" DRI_LOADERS: > @@ -378,7 +383,7 @@ scons: scons-old-llvm: extends: - scons - - .use-debian-9 + - .use-debian-9:amd64 script: - LLVM_VERSION=3.9 .gitlab-ci/scons-build.sh - LLVM_VERSION=4.0 .gitlab-ci/scons-build.sh @@ -393,7 +398,7 @@ scons-old-llvm: .deqp-test: extends: - .test - - .use-debian-10 + - .use-debian-10:amd64 variables: DEQP_SKIPS: deqp-default-skips.txt script: @@ -410,7 +415,7 @@ scons-old-llvm: - meson-main needs: - meson-main - - debian-10 + - debian-10:amd64 test-llvmpipe-gles2: parallel: 4 @@ -457,7 +462,7 @@ arm64_a630_gles2: - meson-arm64 needs: - meson-arm64 - - test-container:arm64 + - debian-10:arm64 arm64_a630_gles31: extends: arm64_a630_gles2 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 |