ci: build a host version of mesa for cross builds
We're about to introduce a hard dependency on OpenCL functions in Iris & Anv to generate commands. Intel-clc has been modified to generate serialized NIR. A number of builders are doing cross builds, so we can't use the intel-clc built in that cross build. Other builds like ASAN/MSAN also complain when running the built version of intel-clc because of uninitialized values in the packaged LLVM libraries from the x86_64-base image. To solve those problems we build a host version of intel-clc and use that binary in the cross build to generate the serialized NIR. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26797>
This commit is contained in:

committed by
Marge Bot

parent
1e31fd5f42
commit
da391650f5
@@ -2,7 +2,7 @@
|
||||
# shellcheck disable=SC1003 # works for us now...
|
||||
# shellcheck disable=SC2086 # we want word splitting
|
||||
|
||||
section_switch meson-configure "meson: configure"
|
||||
section_switch meson-cross-file "meson: cross file generate"
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
@@ -49,6 +49,38 @@ if [ -n "$CROSS" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$HOST_BUILD_OPTIONS" ]; then
|
||||
section_switch meson-host-configure "meson: host configure"
|
||||
|
||||
# Stash the PKG_CONFIG_LIBDIR so that we can use the base x86_64 image
|
||||
# libraries.
|
||||
tmp_pkg_config_libdir=$PKG_CONFIG_LIBDIR
|
||||
unset PKG_CONFIG_LIBDIR
|
||||
|
||||
# Compile a host version for the few tools we need for a cross build (for
|
||||
# now just intel-clc)
|
||||
rm -rf _host_build
|
||||
meson setup _host_build \
|
||||
--native-file=native.file \
|
||||
-D prefix=/usr \
|
||||
-D libdir=lib \
|
||||
${HOST_BUILD_OPTIONS}
|
||||
|
||||
pushd _host_build
|
||||
|
||||
section_switch meson-host-build "meson: host build"
|
||||
|
||||
meson configure
|
||||
ninja
|
||||
ninja install
|
||||
popd
|
||||
|
||||
# Restore PKG_CONFIG_LIBDIR
|
||||
if [ -n "$tmp_pkg_config_libdir" ]; then
|
||||
export PKG_CONFIG_LIBDIR=$tmp_pkg_config_libdir
|
||||
fi
|
||||
fi
|
||||
|
||||
# Only use GNU time if available, not any shell built-in command
|
||||
case $CI_JOB_NAME in
|
||||
# ASAN leak detection is incompatible with strace
|
||||
@@ -66,6 +98,8 @@ case $CI_JOB_NAME in
|
||||
;;
|
||||
esac
|
||||
|
||||
section_switch meson-configure "meson: configure"
|
||||
|
||||
rm -rf _build
|
||||
meson setup _build \
|
||||
--native-file=native.file \
|
||||
|
Reference in New Issue
Block a user