meson: Fix linkage of libgallium_nine with libgalliumvl
authorYevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Thu, 7 Nov 2019 15:22:26 +0000 (17:22 +0200)
committerDylan Baker <dylan@pnwbakers.com>
Wed, 20 Nov 2019 19:16:20 +0000 (19:16 +0000)
Do not link libgallium_nine with libgalliumvl_stub if it's already
linked with libgalliumvl. Linking with stub leads to "duplicate
symbol" errors.

Fixes: 6b4c7047d57178d3362a710ad503057c6a582ca3
       ("meson: build gallium nine state_tracker")
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2040
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
src/gallium/targets/d3dadapter9/meson.build

index 3adbe2f93b0a96beace196d460abccd2515d44a4..0d29ca9624ff66701d96573ae8213f04307ba351 100644 (file)
@@ -28,12 +28,24 @@ nine_version = ['1', '0', '0']
 gallium_nine_c_args = []
 gallium_nine_ld_args = []
 gallium_nine_link_depends = []
+gallium_nine_link_with = [
+    libgallium, libnine_st,
+    libpipe_loader_static, libws_null, libwsw, libswdri,
+    libswkmsdri,
+]
 
 if with_ld_version_script
   gallium_nine_ld_args += ['-Wl,--version-script', join_paths(meson.current_source_dir(), 'd3dadapter9.sym')]
   gallium_nine_link_depends += files('d3dadapter9.sym')
 endif
 
+if (with_gallium_va or with_gallium_vdpau or with_gallium_omx != 'disabled' or
+    with_gallium_xvmc or with_dri)
+  gallium_nine_link_with += libgalliumvl
+else
+  gallium_nine_link_with += libgalliumvl_stub
+endif
+
 libgallium_nine = shared_library(
   'd3dadapter9',
   files('description.c', 'getproc.c', 'drm.c'),
@@ -47,11 +59,7 @@ libgallium_nine = shared_library(
   cpp_args : [cpp_vis_args],
   link_args : [ld_args_gc_sections, gallium_nine_ld_args],
   link_depends : gallium_nine_link_depends,
-  link_with : [
-    libgalliumvl_stub, libgallium, libnine_st,
-    libpipe_loader_static, libws_null, libwsw, libswdri,
-    libswkmsdri,
-  ],
+  link_with : gallium_nine_link_with,
   dependencies : [
     dep_selinux, dep_libdrm, dep_llvm, dep_thread,
     idep_xmlconfig, idep_mesautil, idep_nir,