From b1a28b1165bd3d749064402d08c665dd7770aa9f Mon Sep 17 00:00:00 2001 From: Quentin Schulz Date: Thu, 21 Aug 2025 17:24:08 +0200 Subject: meson: fix libcl assert() reproducibility The current -fmacro-prefix-map only handles removal of relative paths but we still need to handle absolute paths. The following path can be found in libvulkan_panfrost.so when building with Yocto for example: /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 These paths currently seem to only appear in the binary in strings that start with "Shader assertion fail at " which seems to indicate there are calls to assert() with absolute paths as well as relative paths (which are already patched with fmacro-prefix-map). By stripping the project source and build root directories from the paths with -fmacro-prefix-map, we get rid of this reproducibility issue (which incidentally makes the build fail due to buildpaths QA issue). Signed-off-by: Quentin Schulz Part-of: --- meson.build | 2 ++ 1 file changed, 2 insertions(+) (limited to 'meson.build') diff --git a/meson.build b/meson.build index 67ce350271a..ad3f677596d 100644 --- a/meson.build +++ b/meson.build @@ -52,6 +52,8 @@ relative_dir = fs.relative_to(meson.project_source_root(), meson.project_build_r cl_args = [ '-fmacro-prefix-map=@0@/='.format(relative_dir), + '-fmacro-prefix-map=@0@/='.format(meson.project_source_root()), + '-fmacro-prefix-map=@0@/='.format(meson.project_build_root()), # Set the OpenCL standard to CL 2.0, enabling everything at a frontend. # Drivers may not actually support everything but that's ok. -- cgit v1.2.3