gitlab-ci: Build radeonsi & RADV in the ppc64el job
authorMichel Dänzer <mdaenzer@redhat.com>
Fri, 31 Jan 2020 15:07:10 +0000 (16:07 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 5 Feb 2020 10:52:31 +0000 (10:52 +0000)
This requires cross-building libdrm for ppc64el.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3643>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3643>

.gitlab-ci.yml
.gitlab-ci/container/x86_build.sh

index a194d6c0838a833ed80300b99162b7f4428b3892..508ae0df36a02731fab90d3104518e57fe89ddd9 100644 (file)
@@ -483,8 +483,9 @@ meson-ppc64el:
     - meson-s390x
   variables:
     CROSS: ppc64el
-    GALLIUM_DRIVERS: "nouveau,swrast,virgl"
+    GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl"
     LLVM_VERSION: "8"
+    VULKAN_DRIVERS: "amd"
 
 meson-mingw32-x86_64:
   extends: .meson-build
index 141c198eac8cf53d8431e4cc177f59eb2c84fc1d..7fcb32ef3285c497fdbed0d1e09abb0d30ed74fd 100644 (file)
@@ -64,6 +64,7 @@ apt-get install -y --no-remove \
       libva-dev \
       libvdpau-dev \
       libvulkan-dev \
+      libvulkan-dev:ppc64el \
       libx11-dev \
       libx11-xcb-dev \
       libxdamage-dev \
@@ -139,6 +140,23 @@ PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
 EOF
 chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
 
+
+# Generate cross build files for Meson
+for arch in $CROSS_ARCHITECTURES; do
+  cross_file="/cross_file-$arch.txt"
+  /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"
+  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"
+  fi
+
+  # Rely on qemu-user being configured in binfmt_misc on the host
+  sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
+done
+
+
 # for the vulkan overlay layer
 wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
 unzip glslang-master-linux-Release.zip bin/glslangValidator
@@ -175,7 +193,10 @@ rm -rf $LIBXCB_VERSION
 
 wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
 tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
-cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
+cd $LIBDRM_VERSION
+meson build -D vc4=true -D freedreno=true -D etnaviv=true -D libdir=lib/x86_64-linux-gnu; ninja -j4 -C build install
+rm -rf build; meson --cross-file=/cross_file-ppc64el.txt build -D libdir=lib/powerpc64le-linux-gnu; ninja -j4 -C build install
+cd ..
 rm -rf $LIBDRM_VERSION
 
 wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
@@ -207,22 +228,6 @@ make -j4
 popd
 
 
-# Generate cross build files for Meson
-for arch in $CROSS_ARCHITECTURES; do
-  cross_file="/cross_file-$arch.txt"
-  /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"
-  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"
-  fi
-
-  # Rely on qemu-user being configured in binfmt_misc on the host
-  sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
-done
-
-
 # Remove ccache directory, useless for the build jobs
 rm -rf $(ccache --get-config=cache_dir)