summaryrefslogtreecommitdiff
path: root/recipes/gst-plugins-bad-1.0.recipe
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2020-06-23 03:19:49 +0530
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-06-23 13:58:37 +0000
commit790e16cebda8164a4d547d65d47273e1432c5524 (patch)
treed1b7b755e631e974bf56944f576f8b878ef07535 /recipes/gst-plugins-bad-1.0.recipe
parentd8b165d3f6610d14bed5f605a3c4e16dc78db63d (diff)
cerbero: Fix loading of rsvg, ttmlsubs, resindvd under MSVC
We were setting `objc` as `[]` in the native file, because of which meson was auto-detecting it and finding it inside the MSYS-MinGW env. Then it was using that (instead of the MSVC compiler) to search for libraries inside `dependency()` and picked the GCC-compatible import libraries (`.dll.a`) for all dependencies, such as cairo, pango, libxml2, fontconfig, etc. The MSVC linker tried its best to chug along and mostly succeeded, but possibly due to format incompatibilities between `.dll.a` and `.lib` import library formats or bugs in GCC and/or MSVC, this led to the linker getting confused and looking for some libxml2 symbols both inside cairo *and* libxml2 DLLs, and doing the same for some cairo symbols too. For example, it was looking for `xmlDocGetRootElement` and `cairo_create` in both `libxml2-2.dll` and *also* in `libcairo-2.dll`. Since in PE images multiple references to the same symbol in different DLLs is allowed and all these references must be resolved at runtime, this was a runtime error not a build-time error. The same thing was also happening to resindvd. Oh, also re-enable resindvd which was accidentally disabled on MSVC when it was supposed to be disabled on UWP. Closes https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/277 Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/525>
Diffstat (limited to 'recipes/gst-plugins-bad-1.0.recipe')
-rw-r--r--recipes/gst-plugins-bad-1.0.recipe2
1 files changed, 1 insertions, 1 deletions
diff --git a/recipes/gst-plugins-bad-1.0.recipe b/recipes/gst-plugins-bad-1.0.recipe
index bfe02ca3..0daf9734 100644
--- a/recipes/gst-plugins-bad-1.0.recipe
+++ b/recipes/gst-plugins-bad-1.0.recipe
@@ -485,7 +485,7 @@ class Recipe(custom.GStreamer):
(self.config.target_platform == Platform.IOS and self.config.target_arch != Architecture.ARM64):
self.disable_plugin('vulkan', 'vulkan', library_name='vulkan')
- if self.using_msvc() or self.config.target_platform in (Platform.ANDROID, Platform.IOS):
+ if self.using_uwp() or self.config.target_platform in (Platform.ANDROID, Platform.IOS):
self.disable_plugin('resindvd', 'dvd', dep='libdvdnav')
# dtls plugin needs openssl, and we pick up the system openssl if on