diff --git a/src/amd/common/meson.build b/src/amd/common/meson.build index 1131260260d..af95c2e8974 100644 --- a/src/amd/common/meson.build +++ b/src/amd/common/meson.build @@ -107,7 +107,7 @@ test( include_directories : [ inc_amd, inc_gallium, inc_include, inc_src, ], - dependencies: [idep_amdgfxregs_h, dep_libdrm_amdgpu], + dependencies: [idep_amdgfxregs_h, dep_libdrm_amdgpu, idep_mesautil], ), suite: ['amd'] ) diff --git a/src/compiler/glsl/glcpp/meson.build b/src/compiler/glsl/glcpp/meson.build index bc892604ff0..bdfbb80735f 100644 --- a/src/compiler/glsl/glcpp/meson.build +++ b/src/compiler/glsl/glcpp/meson.build @@ -60,6 +60,7 @@ libglcpp_standalone = static_library( 'glcpp_standalone', 'pp_standalone_scaffolding.c', link_with : libglcpp, + dependencies : idep_mesautil, include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], c_args : [no_override_init_args, c_msvc_compat_args, _extra_args], cpp_args : [cpp_msvc_compat_args, _extra_args], diff --git a/src/compiler/glsl/meson.build b/src/compiler/glsl/meson.build index 82e7df889ec..92635958adf 100644 --- a/src/compiler/glsl/meson.build +++ b/src/compiler/glsl/meson.build @@ -254,7 +254,7 @@ glsl_compiler = executable( c_args : [c_msvc_compat_args, no_override_init_args], cpp_args : [cpp_msvc_compat_args], gnu_symbol_visibility : 'hidden', - dependencies : [dep_clock, dep_thread, idep_getopt], + dependencies : [dep_clock, dep_thread, idep_getopt, idep_mesautil], include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], link_with : [libglsl_standalone], build_by_default : with_tools.contains('glsl'), @@ -269,7 +269,7 @@ glsl_test = executable( cpp_args : [cpp_msvc_compat_args], gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], - dependencies : [dep_clock, dep_thread, idep_getopt], + dependencies : [dep_clock, dep_thread, idep_getopt, idep_mesautil], link_with : [libglsl, libglsl_standalone, libglsl_util], build_by_default : with_tools.contains('glsl'), install : with_tools.contains('glsl'), diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build index 32ef91294ca..3741316216d 100644 --- a/src/compiler/nir/meson.build +++ b/src/compiler/nir/meson.build @@ -327,6 +327,7 @@ _libnir = static_library( include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_compiler, include_directories('../spirv')], c_args : [c_msvc_compat_args, no_override_init_args, _libnir_args], gnu_symbol_visibility : 'hidden', + dependencies : dep_valgrind, link_with : libcompiler, build_by_default : false, ) @@ -339,7 +340,7 @@ idep_nir_headers = declare_dependency( # Also link with nir idep_nir = declare_dependency( - dependencies : idep_nir_headers, + dependencies : [idep_nir_headers, idep_mesautil], link_with : _libnir, ) diff --git a/src/freedreno/fdl/meson.build b/src/freedreno/fdl/meson.build index 7f7cdd87eb9..83becbbb33d 100644 --- a/src/freedreno/fdl/meson.build +++ b/src/freedreno/fdl/meson.build @@ -28,7 +28,7 @@ libfreedreno_layout = static_library( include_directories : [inc_freedreno, inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', - dependencies : idep_nir_headers, + dependencies : [idep_nir_headers, idep_mesautil], build_by_default : false, ) diff --git a/src/freedreno/ir3/meson.build b/src/freedreno/ir3/meson.build index 192a8608103..bda6699eda1 100644 --- a/src/freedreno/ir3/meson.build +++ b/src/freedreno/ir3/meson.build @@ -112,7 +112,7 @@ libfreedreno_ir3 = static_library( include_directories : [inc_freedreno, inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', - dependencies : [idep_nir_headers, dep_dl], + dependencies : [idep_nir_headers, dep_dl, idep_mesautil], build_by_default : false, ) diff --git a/src/freedreno/rnn/meson.build b/src/freedreno/rnn/meson.build index 4711d8f3198..b9379e6e239 100644 --- a/src/freedreno/rnn/meson.build +++ b/src/freedreno/rnn/meson.build @@ -42,7 +42,7 @@ libfreedreno_rnn = static_library( '-DRNN_DEF_PATH="' + rnn_path + '"', ], gnu_symbol_visibility: 'hidden', - dependencies: [ dep_libxml2 ], + dependencies: [ dep_libxml2, idep_mesautil ], build_by_default: false, ) diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build index b3032a7f7fa..79df2476e2a 100644 --- a/src/gallium/auxiliary/meson.build +++ b/src/gallium/auxiliary/meson.build @@ -519,6 +519,7 @@ libgalliumvl_stub = static_library( cpp_args : [cpp_msvc_compat_args], gnu_symbol_visibility : 'hidden', include_directories: [inc_gallium, inc_include, inc_src], + dependencies : idep_mesautil, build_by_default : false, ) @@ -529,6 +530,7 @@ libgalliumvl = static_library( cpp_args : [cpp_msvc_compat_args], gnu_symbol_visibility : 'hidden', include_directories : [inc_gallium, inc_include, inc_src], + dependencies : idep_mesautil, build_by_default : false, ) @@ -537,6 +539,6 @@ libgalliumvlwinsys = static_library( 'galliumvlwinsys', files_libgalliumvlwinsys, include_directories : [inc_gallium, inc_include, inc_loader, inc_src], - dependencies : [dep_libdrm, vlwinsys_deps], + dependencies : [dep_libdrm, vlwinsys_deps, idep_mesautil], build_by_default : false, ) diff --git a/src/gallium/auxiliary/pipe-loader/meson.build b/src/gallium/auxiliary/pipe-loader/meson.build index bc3284e11ac..06a9137850a 100644 --- a/src/gallium/auxiliary/pipe-loader/meson.build +++ b/src/gallium/auxiliary/pipe-loader/meson.build @@ -53,7 +53,7 @@ libpipe_loader_static = static_library( c_args : [libpipe_loader_defines, '-DGALLIUM_STATIC_TARGETS=1'], gnu_symbol_visibility : 'hidden', link_with : [libpipe_loader_links], - dependencies : [dep_libdrm, idep_xmlconfig], + dependencies : [dep_libdrm, idep_xmlconfig, idep_mesautil], build_by_default : false, ) diff --git a/src/gallium/drivers/freedreno/meson.build b/src/gallium/drivers/freedreno/meson.build index 9a3638239f1..20c0d4fd819 100644 --- a/src/gallium/drivers/freedreno/meson.build +++ b/src/gallium/drivers/freedreno/meson.build @@ -240,7 +240,12 @@ libfreedreno = static_library( c_args : [freedreno_c_args], cpp_args : [freedreno_cpp_args], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, idep_nir_headers, idep_libfreedreno_common], + dependencies : [ + dep_libdrm, + idep_mesautil, + idep_nir_headers, + idep_libfreedreno_common + ], ) driver_freedreno = declare_dependency( diff --git a/src/gallium/drivers/llvmpipe/meson.build b/src/gallium/drivers/llvmpipe/meson.build index 7a4766ca4d3..d91260bdaf5 100644 --- a/src/gallium/drivers/llvmpipe/meson.build +++ b/src/gallium/drivers/llvmpipe/meson.build @@ -103,7 +103,7 @@ libllvmpipe = static_library( cpp_args : [cpp_msvc_compat_args], gnu_symbol_visibility : 'hidden', include_directories : [inc_gallium, inc_gallium_aux, inc_include, inc_src], - dependencies : [ dep_llvm, idep_nir_headers, ], + dependencies : [ dep_llvm, idep_nir_headers, idep_mesautil ], ) # This overwrites the softpipe driver dependency, but itself depends on the @@ -111,7 +111,7 @@ libllvmpipe = static_library( driver_swrast = declare_dependency( compile_args : '-DGALLIUM_LLVMPIPE', link_with : libllvmpipe, - dependencies : [driver_swrast, dep_llvm], + dependencies : [driver_swrast, dep_llvm, idep_mesautil], ) if with_tests and with_gallium_softpipe and with_llvm diff --git a/src/gallium/drivers/nouveau/meson.build b/src/gallium/drivers/nouveau/meson.build index a7197ddff79..b2a481944dc 100644 --- a/src/gallium/drivers/nouveau/meson.build +++ b/src/gallium/drivers/nouveau/meson.build @@ -231,7 +231,7 @@ libnouveau = static_library( inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_mapi, inc_mesa, ], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, dep_libdrm_nouveau, idep_nir_headers], + dependencies : [dep_libdrm, dep_libdrm_nouveau, idep_mesautil, idep_nir_headers], ) nouveau_compiler = executable( diff --git a/src/gallium/drivers/panfrost/meson.build b/src/gallium/drivers/panfrost/meson.build index 7222d40c3c3..36da44cc918 100644 --- a/src/gallium/drivers/panfrost/meson.build +++ b/src/gallium/drivers/panfrost/meson.build @@ -64,6 +64,7 @@ libpanfrost = static_library( dependencies: [ dep_thread, dep_libdrm, + idep_mesautil, idep_nir, idep_midgard_pack ], diff --git a/src/gallium/frontends/dri/meson.build b/src/gallium/frontends/dri/meson.build index 21390865fd3..36c9ba07a85 100644 --- a/src/gallium/frontends/dri/meson.build +++ b/src/gallium/frontends/dri/meson.build @@ -55,5 +55,8 @@ libdri = static_library( ], c_args : [libdri_c_args], gnu_symbol_visibility : 'hidden', - dependencies : dep_libdrm, + dependencies : [ + dep_libdrm, + idep_mesautil, + ], ) diff --git a/src/gallium/frontends/va/meson.build b/src/gallium/frontends/va/meson.build index c1d6f2a099b..94df9edd1b8 100644 --- a/src/gallium/frontends/va/meson.build +++ b/src/gallium/frontends/va/meson.build @@ -37,6 +37,6 @@ libva_st = static_library( include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], dependencies : [ dep_va_headers, dep_x11_xcb, dep_xcb, dep_xcb_dri2, dep_xcb_dri3, - dep_libdrm, + dep_libdrm, idep_mesautil, ], ) diff --git a/src/gallium/frontends/vdpau/meson.build b/src/gallium/frontends/vdpau/meson.build index 6f318df093e..7480ad06720 100644 --- a/src/gallium/frontends/vdpau/meson.build +++ b/src/gallium/frontends/vdpau/meson.build @@ -35,5 +35,5 @@ libvdpau_st = static_library( include_directories : [ inc_include, inc_src, inc_util, inc_gallium, inc_gallium_aux, ], - dependencies : [dep_vdpau, dep_xcb, dep_x11_xcb, dep_xcb_dri2, dep_libdrm], + dependencies : [dep_vdpau, dep_xcb, dep_x11_xcb, dep_xcb_dri2, dep_libdrm, idep_mesautil], ) diff --git a/src/gallium/frontends/xa/meson.build b/src/gallium/frontends/xa/meson.build index 3bc1783acb7..935cc8be543 100644 --- a/src/gallium/frontends/xa/meson.build +++ b/src/gallium/frontends/xa/meson.build @@ -40,6 +40,7 @@ libxa_st = static_library( )], c_args : ['-pedantic'], gnu_symbol_visibility : 'hidden', + dependencies : idep_mesautil, include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], ) diff --git a/src/gallium/frontends/xvmc/meson.build b/src/gallium/frontends/xvmc/meson.build index 75a2716a239..cf9b37db659 100644 --- a/src/gallium/frontends/xvmc/meson.build +++ b/src/gallium/frontends/xvmc/meson.build @@ -28,7 +28,7 @@ libxvmc_st = static_library( include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], dependencies : [ dep_xvmc, dep_x11_xcb, dep_xcb, dep_xcb_dri2, dep_xcb_dri3, dep_xv, - dep_libdrm, + dep_libdrm, idep_mesautil, ], ) diff --git a/src/gallium/winsys/freedreno/drm/meson.build b/src/gallium/winsys/freedreno/drm/meson.build index c563165d776..7ca3d21e792 100644 --- a/src/gallium/winsys/freedreno/drm/meson.build +++ b/src/gallium/winsys/freedreno/drm/meson.build @@ -29,5 +29,8 @@ libfreedrenowinsys = static_library( inc_freedreno, ], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm], + dependencies : [ + dep_libdrm, + idep_mesautil, + ], ) diff --git a/src/gallium/winsys/nouveau/drm/meson.build b/src/gallium/winsys/nouveau/drm/meson.build index a6f1f8a6b4f..60671eb37e0 100644 --- a/src/gallium/winsys/nouveau/drm/meson.build +++ b/src/gallium/winsys/nouveau/drm/meson.build @@ -25,5 +25,5 @@ libnouveauwinsys = static_library( inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers, ], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm_nouveau], + dependencies : [dep_libdrm_nouveau, idep_mesautil], ) diff --git a/src/gallium/winsys/sw/dri/meson.build b/src/gallium/winsys/sw/dri/meson.build index 49a0da82726..d8ba95ddd88 100644 --- a/src/gallium/winsys/sw/dri/meson.build +++ b/src/gallium/winsys/sw/dri/meson.build @@ -24,4 +24,5 @@ libswdri = static_library( files('dri_sw_winsys.c', 'dri_sw_winsys.h'), gnu_symbol_visibility : 'hidden', include_directories : [inc_gallium, inc_include, inc_src, inc_gallium_aux], + dependencies : idep_mesautil, ) diff --git a/src/gallium/winsys/sw/kms-dri/meson.build b/src/gallium/winsys/sw/kms-dri/meson.build index 36cf568977c..b352a5e8f5b 100644 --- a/src/gallium/winsys/sw/kms-dri/meson.build +++ b/src/gallium/winsys/sw/kms-dri/meson.build @@ -24,5 +24,5 @@ libswkmsdri = static_library( files('kms_dri_sw_winsys.c', 'kms_dri_sw_winsys.h'), gnu_symbol_visibility : 'hidden', include_directories : [inc_gallium, inc_include, inc_src, inc_gallium_aux], - dependencies : dep_libdrm, + dependencies : [dep_libdrm, idep_mesautil], ) diff --git a/src/gallium/winsys/sw/null/meson.build b/src/gallium/winsys/sw/null/meson.build index 32ce1b082d7..0a937dc6cf3 100644 --- a/src/gallium/winsys/sw/null/meson.build +++ b/src/gallium/winsys/sw/null/meson.build @@ -23,5 +23,6 @@ libws_null = static_library( files('null_sw_winsys.c', 'null_sw_winsys.h'), gnu_symbol_visibility : 'hidden', include_directories : [inc_gallium, inc_src, inc_gallium_aux, inc_include], + dependencies : idep_mesautil, build_by_default : false, ) diff --git a/src/gallium/winsys/sw/wrapper/meson.build b/src/gallium/winsys/sw/wrapper/meson.build index f02f5ddf6af..ba1f2d33963 100644 --- a/src/gallium/winsys/sw/wrapper/meson.build +++ b/src/gallium/winsys/sw/wrapper/meson.build @@ -23,5 +23,6 @@ libwsw = static_library( files('wrapper_sw_winsys.c', 'wrapper_sw_winsys.h'), gnu_symbol_visibility : 'hidden', include_directories : [inc_gallium, inc_include, inc_src, inc_gallium_aux], + dependencies : idep_mesautil, build_by_default : false, ) diff --git a/src/gallium/winsys/vc4/drm/meson.build b/src/gallium/winsys/vc4/drm/meson.build index 2e4200ef00f..34b685a0d09 100644 --- a/src/gallium/winsys/vc4/drm/meson.build +++ b/src/gallium/winsys/vc4/drm/meson.build @@ -32,6 +32,7 @@ endif libvc4winsys = static_library( 'vc4winsys', files('vc4_drm_winsys.c'), + dependencies : idep_mesautil, include_directories : [ inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers, inc_gallium_winsys, diff --git a/src/intel/blorp/meson.build b/src/intel/blorp/meson.build index 9d2dee9de9c..83fb7d7e1c5 100644 --- a/src/intel/blorp/meson.build +++ b/src/intel/blorp/meson.build @@ -34,5 +34,5 @@ libblorp = static_library( include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', - dependencies : [idep_nir_headers, idep_genxml], + dependencies : [idep_nir_headers, idep_genxml, idep_mesautil], ) diff --git a/src/intel/common/meson.build b/src/intel/common/meson.build index 66e09672439..2586b4cf956 100644 --- a/src/intel/common/meson.build +++ b/src/intel/common/meson.build @@ -48,7 +48,7 @@ libintel_common = static_library( c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', link_with : [libisl], - dependencies : [dep_expat, dep_libdrm, dep_thread, idep_genxml], + dependencies : [dep_expat, dep_libdrm, dep_thread, idep_genxml, idep_mesautil], ) libintel_extra_dependencies = [] diff --git a/src/intel/compiler/meson.build b/src/intel/compiler/meson.build index 452f71238ff..8a7279b181f 100644 --- a/src/intel/compiler/meson.build +++ b/src/intel/compiler/meson.build @@ -145,7 +145,7 @@ libintel_compiler = static_library( include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', - dependencies : idep_nir_headers, + dependencies : [idep_nir_headers, idep_mesautil], build_by_default : false, ) diff --git a/src/intel/dev/meson.build b/src/intel/dev/meson.build index fa18e1a3bdd..0979da2a5df 100644 --- a/src/intel/dev/meson.build +++ b/src/intel/dev/meson.build @@ -31,6 +31,7 @@ libintel_dev = static_library( ['intel_dev'], [files_libintel_dev, sha1_h], include_directories : [inc_include, inc_src, inc_intel], + dependencies : idep_mesautil, c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', ) diff --git a/src/intel/isl/meson.build b/src/intel/isl/meson.build index c8ca6dfca1a..ad84cc4238c 100644 --- a/src/intel/isl/meson.build +++ b/src/intel/isl/meson.build @@ -62,6 +62,7 @@ foreach g : [['40', isl_gen4_files], ['50', []], ['60', isl_gen6_files], 'isl_gen@0@'.format(_gen), [g[1], isl_gen_files, gen_xml_pack], include_directories : [inc_include, inc_src, inc_gallium, inc_intel], + dependencies : idep_mesautil, c_args : [ no_override_init_args, '-DGEN_VERSIONx10=@0@'.format(_gen) @@ -91,6 +92,7 @@ isl_tiled_memcpy = static_library( include_directories : [ inc_include, inc_src, inc_mesa, inc_gallium, inc_intel, ], + dependencies : idep_mesautil, c_args : [no_override_init_args, '-msse2'], gnu_symbol_visibility : 'hidden', extra_files : ['isl_tiled_memcpy.c'] @@ -103,6 +105,7 @@ if with_sse41 include_directories : [ inc_include, inc_src, inc_mesa, inc_gallium, inc_intel, ], + dependencies : idep_mesautil, link_args : ['-Wl,--exclude-libs=ALL'], c_args : [no_override_init_args, '-msse2', sse41_args], gnu_symbol_visibility : 'hidden', @@ -128,6 +131,7 @@ libisl = static_library( [libisl_files, isl_format_layout_c, genX_bits_h], include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_intel], link_with : [isl_gen_libs, isl_tiled_memcpy, isl_tiled_memcpy_sse41], + dependencies : idep_mesautil, c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', ) diff --git a/src/mesa/drivers/dri/common/meson.build b/src/mesa/drivers/dri/common/meson.build index c8a19f2bbfd..d2d063a8cc1 100644 --- a/src/mesa/drivers/dri/common/meson.build +++ b/src/mesa/drivers/dri/common/meson.build @@ -25,7 +25,7 @@ libdricommon = static_library( files('utils.c', 'utils.h', 'dri_util.c', 'dri_util.h'), include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util], gnu_symbol_visibility : 'hidden', - dependencies : dep_libdrm, + dependencies : [dep_libdrm, idep_mesautil], build_by_default : false, ) diff --git a/src/mesa/drivers/dri/i915/meson.build b/src/mesa/drivers/dri/i915/meson.build index 7910278fd92..3e9c3ab4dde 100644 --- a/src/mesa/drivers/dri/i915/meson.build +++ b/src/mesa/drivers/dri/i915/meson.build @@ -90,5 +90,5 @@ libi915 = static_library( include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_dri_common, inc_util], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, dep_libdrm_intel], + dependencies : [dep_libdrm, dep_libdrm_intel, idep_mesautil], ) diff --git a/src/mesa/drivers/dri/i965/meson.build b/src/mesa/drivers/dri/i965/meson.build index 68459b1111a..f4bdb38ca15 100644 --- a/src/mesa/drivers/dri/i965/meson.build +++ b/src/mesa/drivers/dri/i965/meson.build @@ -142,7 +142,7 @@ foreach v : ['40', '45', '50', '60', '70', '75', '80', '90', '110'] '-DGEN_VERSIONx10=@0@'.format(v), ], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, idep_nir_headers], + dependencies : [dep_libdrm, idep_nir_headers, idep_mesautil], ) endforeach diff --git a/src/mesa/drivers/dri/nouveau/meson.build b/src/mesa/drivers/dri/nouveau/meson.build index 3a7de03f6cf..e2c2ad9574d 100644 --- a/src/mesa/drivers/dri/nouveau/meson.build +++ b/src/mesa/drivers/dri/nouveau/meson.build @@ -84,5 +84,5 @@ libnouveau_vieux = static_library( files_nouveau_vieux, include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_dri_common, inc_util], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, dep_libdrm_nouveau], + dependencies : [dep_libdrm, dep_libdrm_nouveau, idep_mesautil], ) diff --git a/src/mesa/drivers/dri/r200/meson.build b/src/mesa/drivers/dri/r200/meson.build index aea7c1eded8..6dfad43cd6a 100644 --- a/src/mesa/drivers/dri/r200/meson.build +++ b/src/mesa/drivers/dri/r200/meson.build @@ -84,5 +84,5 @@ libr200 = static_library( ], c_args : ['-DRADEON_R200'], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, dep_libdrm_radeon], + dependencies : [dep_libdrm, dep_libdrm_radeon, idep_mesautil], ) diff --git a/src/mesa/drivers/dri/radeon/meson.build b/src/mesa/drivers/dri/radeon/meson.build index 5618dac42f7..13dcf149436 100644 --- a/src/mesa/drivers/dri/radeon/meson.build +++ b/src/mesa/drivers/dri/radeon/meson.build @@ -80,5 +80,5 @@ libr100 = static_library( ], c_args : ['-DRADEON_R100'], gnu_symbol_visibility : 'hidden', - dependencies : [dep_libdrm, dep_libdrm_radeon], + dependencies : [dep_libdrm, dep_libdrm_radeon, idep_mesautil], ) diff --git a/src/mesa/meson.build b/src/mesa/meson.build index 4910f97792a..1bf381c13f0 100644 --- a/src/mesa/meson.build +++ b/src/mesa/meson.build @@ -731,7 +731,7 @@ libmesa_common = static_library( cpp_args : [cpp_msvc_compat_args, _mesa_windows_args], gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_libmesa_asm, include_directories('main')], - dependencies : idep_nir_headers, + dependencies : [idep_nir_headers, idep_mesautil], build_by_default : false, ) @@ -743,7 +743,7 @@ libmesa_classic = static_library( gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_libmesa_asm, include_directories('main')], link_with : [libmesa_common, libglsl, libmesa_sse41], - dependencies : idep_nir_headers, + dependencies : [idep_nir_headers, idep_mesautil], build_by_default : false, ) @@ -755,7 +755,7 @@ libmesa_gallium = static_library( gnu_symbol_visibility : 'hidden', include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_libmesa_asm, include_directories('main')], link_with : [libmesa_common, libglsl, libmesa_sse41], - dependencies : [idep_nir_headers, dep_vdpau], + dependencies : [idep_nir_headers, dep_vdpau, idep_mesautil], build_by_default : false, ) diff --git a/src/meson.build b/src/meson.build index 7deb202207a..8547d16dac5 100644 --- a/src/meson.build +++ b/src/meson.build @@ -35,6 +35,7 @@ libglsl_util = static_library( 'mesa/program/dummy_errors.c', ), include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : dep_valgrind, gnu_symbol_visibility : 'hidden', build_by_default : false, ) diff --git a/src/panfrost/lib/meson.build b/src/panfrost/lib/meson.build index efcc55e2942..57800f836be 100644 --- a/src/panfrost/lib/meson.build +++ b/src/panfrost/lib/meson.build @@ -69,6 +69,7 @@ libpanfrost_decode = static_library( 'panfrost_decode', [libpanfrost_decode_files, midgard_pack], include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_panfrost], + dependencies : idep_mesautil, c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', build_by_default : false, diff --git a/src/panfrost/shared/meson.build b/src/panfrost/shared/meson.build index 1884846f075..cfe5bfedd82 100644 --- a/src/panfrost/shared/meson.build +++ b/src/panfrost/shared/meson.build @@ -31,6 +31,7 @@ libpanfrost_shared = static_library( 'panfrost_shared', [libpanfrost_shared_files], include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], + dependencies : idep_mesautil, c_args : [no_override_init_args, '-O3'], gnu_symbol_visibility : 'hidden', build_by_default : false, diff --git a/src/util/format/meson.build b/src/util/format/meson.build index 59b2adf870c..7f21941eae6 100644 --- a/src/util/format/meson.build +++ b/src/util/format/meson.build @@ -53,7 +53,9 @@ libmesa_format = static_library( 'mesa_format', [files_mesa_format, u_format_table_c, u_format_pack_h], include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], - dependencies : dep_m, + # NOTE dep_valgrind used here instead of idep_mesautil due to chicken/egg + # dependencies between util and util/format + dependencies : [dep_m, dep_valgrind], c_args : [c_msvc_compat_args], gnu_symbol_visibility : 'hidden', build_by_default : false diff --git a/src/util/meson.build b/src/util/meson.build index a8206751e80..188ff1d3c6c 100644 --- a/src/util/meson.build +++ b/src/util/meson.build @@ -196,7 +196,7 @@ _libmesa_util = static_library( idep_mesautil = declare_dependency( link_with : _libmesa_util, include_directories : inc_util, - dependencies : [dep_zlib, dep_clock, dep_thread, dep_atomic, dep_m], + dependencies : [dep_zlib, dep_clock, dep_thread, dep_atomic, dep_m, dep_valgrind], ) xmlconfig_deps = [] diff --git a/src/util/simple_mtx.h b/src/util/simple_mtx.h index 1bd57ac8001..b44ddf5386a 100644 --- a/src/util/simple_mtx.h +++ b/src/util/simple_mtx.h @@ -31,6 +31,14 @@ #if UTIL_FUTEX_SUPPORTED +#if defined(HAVE_VALGRIND) && !defined(NDEBUG) +# include +# include +# define HG(x) x +#else +# define HG(x) +#endif + /* mtx_t - Fast, simple mutex * * While modern pthread mutexes are very fast (implemented using futex), they @@ -69,11 +77,14 @@ simple_mtx_init(simple_mtx_t *mtx, ASSERTED int type) assert(type == mtx_plain); mtx->val = 0; + + HG(ANNOTATE_RWLOCK_CREATE(mtx)); } static inline void simple_mtx_destroy(ASSERTED simple_mtx_t *mtx) { + HG(ANNOTATE_RWLOCK_DESTROY(mtx)); #ifndef NDEBUG mtx->val = _SIMPLE_MTX_INVALID_VALUE; #endif @@ -96,6 +107,8 @@ simple_mtx_lock(simple_mtx_t *mtx) c = __sync_lock_test_and_set(&mtx->val, 2); } } + + HG(ANNOTATE_RWLOCK_ACQUIRED(mtx, 1)); } static inline void @@ -103,6 +116,8 @@ simple_mtx_unlock(simple_mtx_t *mtx) { uint32_t c; + HG(ANNOTATE_RWLOCK_RELEASED(mtx, 1)); + c = __sync_fetch_and_sub(&mtx->val, 1); assert(c != _SIMPLE_MTX_INVALID_VALUE); diff --git a/src/vulkan/util/meson.build b/src/vulkan/util/meson.build index 649179f5230..687a7d48d10 100644 --- a/src/vulkan/util/meson.build +++ b/src/vulkan/util/meson.build @@ -43,7 +43,7 @@ libvulkan_util = static_library( 'vulkan_util', [files_vulkan_util, vk_enum_to_str], include_directories : [inc_include, inc_src, inc_gallium], - dependencies : vulkan_wsi_deps, + dependencies : [vulkan_wsi_deps, idep_mesautil], c_args : [vulkan_wsi_args], gnu_symbol_visibility : 'hidden', build_by_default : false,