summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch43
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc1
2 files changed, 44 insertions, 0 deletions
diff --git a/meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch b/meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch
new file mode 100644
index 0000000000..118b52a227
--- /dev/null
+++ b/meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch
@@ -0,0 +1,43 @@
1From b9d43acde2d2e21d321e57d632cac199e41048ef Mon Sep 17 00:00:00 2001
2From: Quentin Schulz <quentin.schulz@cherry.de>
3Date: Thu, 21 Aug 2025 17:24:08 +0200
4Subject: [PATCH] meson: fix libcl assert() reproducibility
5
6The current -fmacro-prefix-map only handles removal of relative paths
7but we still need to handle absolute paths.
8
9The following path can be found in libvulkan_panfrost.so when building
10with Yocto for example:
11/work/build/tmp/work/cortexa76-cortexa55-crypto-poky-linux/mesa/25.2.0/sources/mesa-25.2.0/src/panfrost/libpan/../../util/bitpack_helpers.h
12
13These paths currently seem to only appear in the binary in strings that
14start with "Shader assertion fail at " which seems to indicate there are
15calls to assert() with absolute paths as well as relative paths (which
16are already patched with fmacro-prefix-map).
17
18By stripping the global source and build root directories from the paths
19with -fmacro-prefix-map, we get rid of this reproducibility issue (which
20incidentally makes the build fail due to buildpaths QA issue).
21
22Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
23
24Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36927]
25
26Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
27---
28 meson.build | 2 ++
29 1 file changed, 2 insertions(+)
30
31diff --git a/meson.build b/meson.build
32index 9cc75f6636e..d4779905020 100644
33--- a/meson.build
34+++ b/meson.build
35@@ -52,6 +52,8 @@ relative_dir = fs.relative_to(meson.global_source_root(), meson.global_build_roo
36
37 cl_args = [
38 '-fmacro-prefix-map=@0@/='.format(relative_dir),
39+ '-fmacro-prefix-map=@0@/='.format(meson.global_source_root()),
40+ '-fmacro-prefix-map=@0@/='.format(meson.global_build_root()),
41
42 # Set the OpenCL standard to CL 2.0, enabling everything at a frontend.
43 # Drivers may not actually support everything but that's ok.
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index 4b1c11be55..beaf99b796 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -17,6 +17,7 @@ PE = "2"
17SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ 17SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
18 file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ 18 file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
19 file://0001-freedreno-don-t-encode-build-path-into-binaries.patch \ 19 file://0001-freedreno-don-t-encode-build-path-into-binaries.patch \
20 file://0001-meson-fix-libcl-assert-reproducibility.patch \
20" 21"
21 22
22SRC_URI[sha256sum] = "7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f" 23SRC_URI[sha256sum] = "7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f"