diff options
-rw-r--r-- | meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch | 43 | ||||
-rw-r--r-- | meta/recipes-graphics/mesa/mesa.inc | 1 |
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 @@ | |||
1 | From b9d43acde2d2e21d321e57d632cac199e41048ef Mon Sep 17 00:00:00 2001 | ||
2 | From: Quentin Schulz <quentin.schulz@cherry.de> | ||
3 | Date: Thu, 21 Aug 2025 17:24:08 +0200 | ||
4 | Subject: [PATCH] meson: fix libcl assert() reproducibility | ||
5 | |||
6 | The current -fmacro-prefix-map only handles removal of relative paths | ||
7 | but we still need to handle absolute paths. | ||
8 | |||
9 | The following path can be found in libvulkan_panfrost.so when building | ||
10 | with 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 | |||
13 | These paths currently seem to only appear in the binary in strings that | ||
14 | start with "Shader assertion fail at " which seems to indicate there are | ||
15 | calls to assert() with absolute paths as well as relative paths (which | ||
16 | are already patched with fmacro-prefix-map). | ||
17 | |||
18 | By stripping the global source and build root directories from the paths | ||
19 | with -fmacro-prefix-map, we get rid of this reproducibility issue (which | ||
20 | incidentally makes the build fail due to buildpaths QA issue). | ||
21 | |||
22 | Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> | ||
23 | |||
24 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36927] | ||
25 | |||
26 | Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de> | ||
27 | --- | ||
28 | meson.build | 2 ++ | ||
29 | 1 file changed, 2 insertions(+) | ||
30 | |||
31 | diff --git a/meson.build b/meson.build | ||
32 | index 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" | |||
17 | SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ | 17 | SRC_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 | ||
22 | SRC_URI[sha256sum] = "7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f" | 23 | SRC_URI[sha256sum] = "7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f" |