aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2020-01-30 18:21:15 +0100
committerMarge Bot <[email protected]>2020-02-05 10:52:31 +0000
commit65610ec774ae095cfee3602b3f06d51d0a199791 (patch)
tree99f3c837a7c5aec558cbb95bec1d96e1e0a60089
parenta443f81f2631efa0881f72472c476d9d368b5d05 (diff)
gitlab-ci: Add ppc64el and s390x cross-build jobs
Using LLVM 8 for ppc64el and 7 for s390x (which hits some coroutine related issues with LLVM 8). There are some test failures we need to ignore for now. Also, the timeout needs to be bumped from the default 30s for some tests, because they can take longer under emulation. Reviewed-by: Adam Jackson <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3643>
-rw-r--r--.gitlab-ci.yml23
-rw-r--r--.gitlab-ci/container/x86_build.sh34
-rw-r--r--.gitlab-ci/cross-xfail-ppc64el4
-rw-r--r--.gitlab-ci/cross-xfail-s390x5
-rw-r--r--src/compiler/glsl/glcpp/meson.build1
-rw-r--r--src/compiler/glsl/tests/meson.build1
-rw-r--r--src/compiler/nir/meson.build1
-rw-r--r--src/gallium/drivers/llvmpipe/meson.build2
-rw-r--r--src/util/meson.build1
-rw-r--r--src/util/tests/fast_idiv_by_const/meson.build1
-rw-r--r--src/util/tests/sparse_array/meson.build1
11 files changed, 67 insertions, 7 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c7cf8eefe38..a194d6c0838 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -112,7 +112,7 @@ x86_build:
- .debian@container-ifnot-exists
- .container
variables:
- DEBIAN_TAG: &x86_build "2020-01-14"
+ DEBIAN_TAG: &x86_build "2020-02-05"
.use-x86_build:
variables:
@@ -312,6 +312,7 @@ meson-main:
-D gallium-va=false
-D gallium-xa=false
-D gallium-nine=false
+ LLVM_VERSION: "8"
.meson-arm:
extends:
@@ -342,7 +343,6 @@ meson-arm64:
- .meson-arm
- .ci-deqp-artifacts
variables:
- LLVM_VERSION: "8"
VULKAN_DRIVERS: "freedreno,amd"
script:
- .gitlab-ci/meson-build.sh
@@ -467,6 +467,25 @@ meson-i386:
-D osmesa=classic
-D werror=true
+meson-s390x:
+ extends:
+ - .meson-cross
+ variables:
+ CROSS: s390x
+ GALLIUM_DRIVERS: "swrast"
+ LLVM_VERSION: "7"
+ script:
+ - dpkg -i /var/cache/apt/archives/$CROSS/*.deb
+ - .gitlab-ci/meson-build.sh
+
+meson-ppc64el:
+ extends:
+ - meson-s390x
+ variables:
+ CROSS: ppc64el
+ GALLIUM_DRIVERS: "nouveau,swrast,virgl"
+ LLVM_VERSION: "8"
+
meson-mingw32-x86_64:
extends: .meson-build
variables:
diff --git a/.gitlab-ci/container/x86_build.sh b/.gitlab-ci/container/x86_build.sh
index a66b1dd4a09..141c198eac8 100644
--- a/.gitlab-ci/container/x86_build.sh
+++ b/.gitlab-ci/container/x86_build.sh
@@ -5,7 +5,7 @@ set -o xtrace
export DEBIAN_FRONTEND=noninteractive
-CROSS_ARCHITECTURES="i386"
+CROSS_ARCHITECTURES="i386 ppc64el s390x"
for arch in $CROSS_ARCHITECTURES; do
dpkg --add-architecture $arch
done
@@ -75,13 +75,12 @@ apt-get install -y --no-remove \
libxvmc-dev \
libxxf86vm-dev \
llvm-6.0-dev \
- llvm-7-dev \
- llvm-8-dev \
llvm-9-dev \
meson \
pkg-config \
python-mako \
python3-mako \
+ qemu-user \
scons \
x11proto-dri2-dev \
x11proto-gl-dev \
@@ -96,8 +95,32 @@ for arch in $CROSS_ARCHITECTURES; do
libdrm-dev:${arch} \
libelf-dev:${arch} \
libexpat1-dev:${arch}
+
+ if [ "$arch" = "s390x" ]; then
+ LLVM_VERSION=7
+ else
+ LLVM_VERSION=8
+ fi
+
+ if [ "$arch" != "i386" ]; then
+ mkdir /var/cache/apt/archives/${arch}
+ apt-get install -y --no-remove \
+ libffi-dev:${arch} \
+ libllvm${LLVM_VERSION}:${arch} \
+ libstdc++6:${arch} \
+ libtinfo-dev:${arch} \
+
+ # Download llvm-* packages, but don't install them yet, since they can
+ # only be installed for one architecture at a time
+ apt-get install -o Dir::Cache::archives=/var/cache/apt/archives/$arch --download-only -y --no-remove \
+ llvm-${LLVM_VERSION}-dev:${arch}
+ fi
done
+apt-get install -y --no-remove \
+ llvm-7-dev \
+ llvm-8-dev \
+
# for 64bit windows cross-builds
apt-get install -y --no-remove \
libz-mingw-w64-dev \
@@ -193,9 +216,10 @@ for arch in $CROSS_ARCHITECTURES; do
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
+
+ # 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
diff --git a/.gitlab-ci/cross-xfail-ppc64el b/.gitlab-ci/cross-xfail-ppc64el
new file mode 100644
index 00000000000..aa120d08fe1
--- /dev/null
+++ b/.gitlab-ci/cross-xfail-ppc64el
@@ -0,0 +1,4 @@
+lp_test_arit
+roundeven
+u_format_test
+u_half_test \ No newline at end of file
diff --git a/.gitlab-ci/cross-xfail-s390x b/.gitlab-ci/cross-xfail-s390x
new file mode 100644
index 00000000000..d8f03656d94
--- /dev/null
+++ b/.gitlab-ci/cross-xfail-s390x
@@ -0,0 +1,5 @@
+load_store_vectorizer
+lp_test_arit
+lp_test_format
+lp_test_printf
+u_format_test
diff --git a/src/compiler/glsl/glcpp/meson.build b/src/compiler/glsl/glcpp/meson.build
index 9fc8d9d0286..5f3d85735af 100644
--- a/src/compiler/glsl/glcpp/meson.build
+++ b/src/compiler/glsl/glcpp/meson.build
@@ -83,6 +83,7 @@ if with_any_opengl and with_tests and host_machine.system() != 'windows'
'--@0@'.format(m),
],
suite : ['compiler', 'glcpp'],
+ timeout: 60,
)
endforeach
endif
diff --git a/src/compiler/glsl/tests/meson.build b/src/compiler/glsl/tests/meson.build
index e9272fe5fbe..5914627e194 100644
--- a/src/compiler/glsl/tests/meson.build
+++ b/src/compiler/glsl/tests/meson.build
@@ -88,6 +88,7 @@ test(
),
],
suite : ['compiler', 'glsl'],
+ timeout: 60,
)
test(
diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build
index b35eb855282..315112759e9 100644
--- a/src/compiler/nir/meson.build
+++ b/src/compiler/nir/meson.build
@@ -349,6 +349,7 @@ if with_tests
dependencies : [dep_thread, idep_gtest, idep_nir, idep_mesautil],
),
suite : ['compiler', 'nir'],
+ should_fail : meson.get_cross_property('xfail', '').contains('load_store_vectorizer'),
)
test(
diff --git a/src/gallium/drivers/llvmpipe/meson.build b/src/gallium/drivers/llvmpipe/meson.build
index d3542fa156d..570d1b221d8 100644
--- a/src/gallium/drivers/llvmpipe/meson.build
+++ b/src/gallium/drivers/llvmpipe/meson.build
@@ -125,6 +125,8 @@ if with_tests and with_gallium_softpipe and with_llvm
link_with : [libllvmpipe, libgallium],
),
suite : ['llvmpipe'],
+ should_fail : meson.get_cross_property('xfail', '').contains(t),
+ timeout: 120,
)
endforeach
endif
diff --git a/src/util/meson.build b/src/util/meson.build
index 7791be73cde..3b2ac083a14 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -248,6 +248,7 @@ if with_tests
dependencies : [dep_m],
),
suite : ['util'],
+ should_fail : meson.get_cross_property('xfail', '').contains('roundeven'),
)
# FIXME: this test crashes on windows
diff --git a/src/util/tests/fast_idiv_by_const/meson.build b/src/util/tests/fast_idiv_by_const/meson.build
index 2a341d18178..00b24678b75 100644
--- a/src/util/tests/fast_idiv_by_const/meson.build
+++ b/src/util/tests/fast_idiv_by_const/meson.build
@@ -27,4 +27,5 @@ test(
include_directories : inc_common,
),
suite : ['util'],
+ timeout: 60,
)
diff --git a/src/util/tests/sparse_array/meson.build b/src/util/tests/sparse_array/meson.build
index 036591e3bae..7c86efea29d 100644
--- a/src/util/tests/sparse_array/meson.build
+++ b/src/util/tests/sparse_array/meson.build
@@ -27,4 +27,5 @@ test(
include_directories : inc_common,
),
suite : ['util'],
+ timeout: 60,
)