ci/debian: Upgrade Debian images to LLVM 19

LLVM 15 is pretty old, and notably not supported by either ANGLE nor
Skia anymore. So let's move up to LLVM 19 using packages provided by
LLVM themselves, apart from PPC and ARMv7 which don't have builds.

The Skia build now requires a bunch of new warning exclusions; hopefully
most of these are no longer needed when we can upgrade Skia shortly.

The ci-deb-repo revision has also been bumped to get us a new version of
xtensor which builds with LLVM 19, and a version of spirv-tools which
also works with LLVM 19.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Closes: mesa/mesa#11538
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33137>
This commit is contained in:
Daniel Stone 2024-10-25 19:50:41 +01:00 committed by Marge Bot
parent 55e9fe9d37
commit 101065642d
15 changed files with 160 additions and 18 deletions

View file

@ -708,6 +708,7 @@ debian-clang:
-Wno-error=overloaded-virtual
-Wno-error=tautological-constant-out-of-range-compare
-Wno-error=unused-private-field
-Wno-error=vla-cxx-extension
DRI_LOADERS: >
-D glx=dri
-D gbm=enabled

View file

@ -4,7 +4,11 @@ set -ex
uncollapsed_section_start llvm-spirv "Building LLVM-SPIRV-Translator"
VER="${LLVM_VERSION:?llvm not set}.0.0"
if [ "${LLVM_VERSION:?llvm version not set}" -ge 18 ]; then
VER="${LLVM_VERSION}.1.0"
else
VER="${LLVM_VERSION}.0.0"
fi
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
-O "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${VER}.tar.gz"

View file

@ -34,6 +34,11 @@ extra_cflags_cc = [
"-Wno-unused-but-set-variable",
"-Wno-sizeof-array-div",
"-Wno-string-concatenation",
"-Wno-unsafe-buffer-usage",
"-Wno-switch-default",
"-Wno-cast-function-type-strict",
"-Wno-format",
"-Wno-enum-constexpr-conversion",
]
cc_wrapper = "ccache"

View file

@ -9,10 +9,11 @@ set -o xtrace
: "${LLVM_VERSION:?llvm version not set}"
apt-get -y install ca-certificates
apt-get -y install ca-certificates curl gnupg2
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/*
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
apt-get update
. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
@ -81,6 +82,8 @@ DEPS=(
zstd
)
apt-get update
apt-get -y install "${DEPS[@]}" "${EPHEMERAL[@]}"
pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2

View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Check to see if we need a separate repo to install LLVM.
case "${FDO_DISTRIBUTION_VERSION%-*},${LLVM_VERSION}" in
bookworm,15)
NEED_LLVM_REPO="false"
;;
*)
NEED_LLVM_REPO="true"
;;
esac
if [ "$NEED_LLVM_REPO" = "true" ]; then
curl -s https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
export LLVM_APT_REPO="deb [trusted=yes] https://apt.llvm.org/${FDO_DISTRIBUTION_VERSION%-*}/ llvm-toolchain-${FDO_DISTRIBUTION_VERSION%-*}-${LLVM_VERSION} main"
echo "$LLVM_APT_REPO" | tee /etc/apt/sources.list.d/llvm.list
fi

View file

@ -15,7 +15,7 @@ uncollapsed_section_start debian_setup "Base Debian system setup"
export DEBIAN_FRONTEND=noninteractive
apt-get install -y ca-certificates gnupg2 software-properties-common
apt-get install -y curl ca-certificates gnupg2 software-properties-common
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/*
@ -23,6 +23,8 @@ echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/
: "${LLVM_VERSION:?llvm version not set!}"
. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh
# Ephemeral packages (installed for this script and removed again at the end)
EPHEMERAL=(
autoconf
@ -40,6 +42,7 @@ EPHEMERAL=(
libasound2-dev
libcap-dev
"libclang-cpp${LLVM_VERSION}-dev"
"libclang-rt-${LLVM_VERSION}-dev"
libdrm-dev
libegl-dev
libelf-dev

View file

@ -14,10 +14,12 @@ set -o xtrace
export DEBIAN_FRONTEND=noninteractive
: "${LLVM_VERSION:?llvm version not set!}"
apt-get install -y ca-certificates
apt-get install -y ca-certificates curl gnupg2
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/*
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh
# Ephemeral packages (installed for this script and removed again at
# the end)
EPHEMERAL=(

View file

@ -31,6 +31,7 @@ DEPS=(
libarchive-dev
libdrm-dev
"libclang-cpp${LLVM_VERSION}-dev"
"libclang-rt-${LLVM_VERSION}-dev"
libgbm-dev
libglvnd-dev
liblua5.3-dev

View file

@ -72,7 +72,7 @@ debian/x86_64_build-base:
- .debian-container
variables:
MESA_IMAGE_TAG: &debian-x86_64_build-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
LLVM_VERSION: &debian-x86_64-llvm 15
LLVM_VERSION: &debian-x86_64-llvm 19
.use-debian/x86_64_build-base:
extends:
@ -130,6 +130,7 @@ debian/ppc64el_build:
- .use-debian/x86_64_build-base
variables:
MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG}
LLVM_VERSION: &debian-ppc64el-llvm 15 # no LLVM packages for PPC
.use-debian/ppc64el_build:
extends:
@ -138,7 +139,7 @@ debian/ppc64el_build:
MESA_BASE_TAG: *debian-x86_64_build-base
MESA_IMAGE_PATH: "debian/ppc64el_build"
MESA_IMAGE_TAG: *debian-ppc64el_build
LLVM_VERSION: *debian-x86_64-llvm
LLVM_VERSION: *debian-ppc64el-llvm
needs:
- debian/ppc64el_build
@ -148,6 +149,7 @@ debian/s390x_build:
- .use-debian/x86_64_build-base
variables:
MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG}
LLVM_VERSION: &debian-s390x-llvm 19
.use-debian/s390x_build:
extends:
@ -156,7 +158,7 @@ debian/s390x_build:
MESA_BASE_TAG: *debian-x86_64_build-base
MESA_IMAGE_PATH: "debian/s390x_build"
MESA_IMAGE_TAG: *debian-s390x_build
LLVM_VERSION: *debian-x86_64-llvm
LLVM_VERSION: *debian-s390x-llvm
needs:
- debian/s390x_build
@ -200,7 +202,7 @@ debian/arm64_build:
- aarch64
variables:
MESA_IMAGE_TAG: &debian-arm64_build "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
LLVM_VERSION: &debian-arm64-llvm 15
LLVM_VERSION: &debian-arm64-llvm 19
.use-debian/arm64_build:
extends:
@ -485,7 +487,7 @@ kernel+rootfs_arm32:
- .firmware_arm32
variables:
DEBIAN_ARCH: "armhf"
LLVM_VERSION: *debian-arm64-llvm # these are tied together as arm32 is built within aarch64
LLVM_VERSION: &debian-arm32-llvm 15 # no armhf builds for LLVM
# Cannot use anchors defined here from included files, so use extends: instead
.use-kernel+rootfs-arm:

View file

@ -183,6 +183,8 @@ CONTAINER_EPHEMERAL=(
echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list
. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh
apt-get update
apt-get install -y --no-remove \
-o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' \
@ -266,7 +268,8 @@ mmdebstrap \
bookworm \
"$ROOTFS/" \
"http://deb.debian.org/debian" \
"deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main"
"deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" \
"${LLVM_APT_REPO:-}"
############### Install mold
. .gitlab-ci/container/build-mold.sh

View file

@ -13,10 +13,10 @@
variables:
DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base"
DEBIAN_BASE_TAG: "20250128-llversionm1"
DEBIAN_BASE_TAG: "20250128-llvm19-up"
DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build"
DEBIAN_BUILD_TAG: "20250128-llversionm1"
DEBIAN_BUILD_TAG: "20250128-llvm19-up"
DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base"
DEBIAN_ARM64_TEST_BASE_IMAGE: "debian/arm64_test-base"
@ -27,10 +27,10 @@ variables:
DEBIAN_ARM64_TEST_IMAGE_VK_PATH: "debian/arm64_test-vk"
DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android"
DEBIAN_TEST_ANDROID_TAG: "20250128-llversionm1"
DEBIAN_TEST_GL_TAG: "20250128-llversionm1"
DEBIAN_TEST_VK_TAG: "20250128-llversionm1"
KERNEL_ROOTFS_TAG: "20250128-llversionm1"
DEBIAN_TEST_ANDROID_TAG: "20250128-llvm19-up"
DEBIAN_TEST_GL_TAG: "20250128-llvm19-up"
DEBIAN_TEST_VK_TAG: "20250128-llvm19-up"
KERNEL_ROOTFS_TAG: "20250128-llvm19-up"
DEBIAN_PYUTILS_IMAGE: "debian/x86_64_pyutils"
DEBIAN_PYUTILS_TAG: "20241223-pyutils"
@ -41,7 +41,7 @@ variables:
KERNEL_TAG: "v6.13-rc4-mesa-5e77"
KERNEL_REPO: "gfx-ci/linux"
PKG_REPO_REV: "bca9635d"
PKG_REPO_REV: "95bf62c"
FLUSTER_VECTORS_VERSION: "5"

View file

@ -311,3 +311,94 @@ program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float16,
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float2,Fail
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float4,Fail
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float8,Fail
# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i".
program@execute@vector-conversion,Fail
# piles of new fails since updating skqp; to be re-evaluated with new upstream
gl_all_bitmap_configs,Fail
gl_androidblendmodes,Fail
gl_annotated_text,Fail
gl_arithmode,Fail
gl_bitmapcopy,Fail
gl_blob_rsxform,Fail
gl_blurSmallRadii,Fail
gl_coloremoji_blendmodes,Fail
gl_colorwheelnative,Fail
gl_combinemaskfilter,Fail
gl_dashtextcaps,Fail
gl_degenerate_gradients,Fail
gl_draw-atlas-colors,Fail
gl_encode,Fail
gl_gammagradienttext,Fail
gl_gammatext,Fail
gl_gpusamplerstress,Fail
gl_gradtext,Fail
gl_highcontrastfilter,Fail
gl_image-surface,Fail
gl_imageblur2,Fail
gl_imageblur_large,Fail
gl_imageblurtiled,Fail
gl_lcdblendmodes,Fail
gl_lcdtextsize,Fail
gl_scaled_tilemode_bitmap,Fail
gl_scaled_tilemode_gradient,Fail
gl_scaled_tilemodes,Fail
gl_simpleaaclip_aaclip,Fail
gl_skbug_5321,Fail
gl_srcmode,Fail
gl_surfaceprops,Fail
gl_textblob_intercepts,Fail
gl_textblobblockreordering,Fail
gl_textblobcolortrans,Fail
gl_textfilter_color,Fail
gl_textfilter_image,Fail
gl_tilemode_bitmap,Fail
gl_typefacestyles,Fail
gl_wacky_yuv_formats,Fail
gl_wacky_yuv_formats_cs,Fail
gl_xfermodes2,Fail
gl_xfermodes3,Fail
vk_all_bitmap_configs,Fail
vk_androidblendmodes,Fail
vk_annotated_text,Fail
vk_arithmode,Fail
vk_bitmapcopy,Fail
vk_blob_rsxform,Fail
vk_blurSmallRadii,Fail
vk_coloremoji_blendmodes,Fail
vk_colorwheelnative,Fail
vk_combinemaskfilter,Fail
vk_dashtextcaps,Fail
vk_degenerate_gradients,Fail
vk_draw-atlas-colors,Fail
vk_encode,Fail
vk_gammagradienttext,Fail
vk_gammatext,Fail
vk_gpusamplerstress,Fail
vk_gradtext,Fail
vk_highcontrastfilter,Fail
vk_image-surface,Fail
vk_imageblur2,Fail
vk_imageblur_large,Fail
vk_imageblurtiled,Fail
vk_lcdblendmodes,Fail
vk_lcdtextsize,Fail
vk_scaled_tilemode_bitmap,Fail
vk_scaled_tilemode_gradient,Fail
vk_scaled_tilemodes,Fail
vk_simpleaaclip_aaclip,Fail
vk_skbug_5321,Fail
vk_srcmode,Fail
vk_surfaceprops,Fail
vk_textblob_intercepts,Fail
vk_textblobblockreordering,Fail
vk_textblobcolortrans,Fail
vk_textfilter_color,Fail
vk_textfilter_image,Fail
vk_tilemode_bitmap,Fail
vk_typefacestyles,Fail
vk_wacky_yuv_formats,Fail
vk_wacky_yuv_formats_cs,Fail
vk_xfermodes2,Fail
vk_xfermodes3,Fail

View file

@ -80,3 +80,6 @@ program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float16,
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float2,Fail
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float4,Fail
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float8,Fail
# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i".
program@execute@vector-conversion,Fail

View file

@ -42,3 +42,6 @@ api@clgetcommandqueueinfo,Fail
# demands at least 1/4 system RAM be allocatable, which we can't guarantee
api@clgetdeviceinfo,Fail
# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i".
program@execute@vector-conversion,Fail

View file

@ -12,6 +12,9 @@ program@execute@vstore@vstore-uchar-private,Crash
program@execute@vstore@vstore-ushort-private,Crash
program@execute@vstore@vstore_half-float-private,Crash
# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i".
program@execute@vector-conversion,Fail
# Piglit CL bug
program@execute@builtin@builtin-float-nextafter-1.0.generated,Fail
program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float1,Fail