meson: Link Gallium Nine with ld_args_build_id
authorTobias Jakobi <tjakobi@math.uni-bielefeld.de>
Thu, 9 Apr 2020 09:29:54 +0000 (11:29 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 14 Apr 2020 00:22:45 +0000 (00:22 +0000)
This fixes an assertion in iris_disk_cache_init() when the initialization
goes through drm_create_adapter(), which lives in d3dadapter9.so.
In this case build_id_find_nhdr_for_addr() fails and returns NULL, since
the shared library does not include a build ID.

The issue can be reproduced with an iris capable GPU and Xnine, while
removing the shader cache prior to launching the application.

Fix this by doing the same as in 29ea92e6a1e8f5cb3295011d907ea211d6f8f644.

Fixes: 4756864cdc5f "iris: Start wiring up on-disk shader cache"
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4499>

src/gallium/targets/d3dadapter9/meson.build

index 0d29ca9624ff66701d96573ae8213f04307ba351..55b514f5add7da53da0b98ffe82b6d61b0d9e18b 100644 (file)
@@ -57,7 +57,7 @@ libgallium_nine = shared_library(
   ],
   c_args : [c_vis_args, gallium_nine_c_args],
   cpp_args : [cpp_vis_args],
-  link_args : [ld_args_gc_sections, gallium_nine_ld_args],
+  link_args : [ld_args_build_id, ld_args_gc_sections, gallium_nine_ld_args],
   link_depends : gallium_nine_link_depends,
   link_with : gallium_nine_link_with,
   dependencies : [