| From 63aa2e3ac630dcad758b446fc56136e58058fffd Mon Sep 17 00:00:00 2001 |
| From: Cindy Liu <hcindyl@google.com> |
| Date: Wed, 19 Aug 2020 17:22:29 -0700 |
| Subject: [PATCH] Explicitly load libgomp.so.1 in gst-plugin-scanner |
| |
| libgomp has a long lasting TLS bug |
| (https://bugzilla.redhat.com/show_bug.cgi?id=1722181). Preload the |
| library in gst-plugin-scanner to resolve the TLS memory issue while |
| launching gstreamer. |
| |
| Change-Id: I8ebedaf320a6b4253e8804946e4ff79bbde48ad7 |
| --- |
| libs/gst/helpers/Makefile.am | 4 +++- |
| libs/gst/helpers/gst-plugin-scanner.c | 4 ++++ |
| 2 files changed, 7 insertions(+), 1 deletions(-) |
| |
| diff --git a/libs/gst/helpers/Makefile.am b/libs/gst/helpers/Makefile.am |
| index d72a6527..a7c6d6ce 100644 |
| --- a/libs/gst/helpers/Makefile.am |
| +++ b/libs/gst/helpers/Makefile.am |
| @@ -3,7 +3,9 @@ helpersdir=$(libexecdir)/gstreamer-$(GST_API_VERSION) |
| |
| gst_plugin_scanner_SOURCES = gst-plugin-scanner.c |
| gst_plugin_scanner_CFLAGS = $(GST_OBJ_CFLAGS) |
| -gst_plugin_scanner_LDADD = $(GST_OBJ_LIBS) |
| +gst_plugin_scanner_LDADD = \ |
| + $(GST_OBJ_LIBS) \ |
| + -lgomp |
| |
| if ENABLE_BASH_COMPLETION |
| helpers_PROGRAMS += gst-completion-helper |
| diff --git a/libs/gst/helpers/gst-plugin-scanner.c b/libs/gst/helpers/gst-plugin-scanner.c |
| index cbefb29e..0ad0480c 100644 |
| --- a/libs/gst/helpers/gst-plugin-scanner.c |
| +++ b/libs/gst/helpers/gst-plugin-scanner.c |
| @@ -30,6 +30,7 @@ |
| #include <gst/gst.h> |
| |
| #include <string.h> |
| +#include <dlfcn.h> |
| |
| int |
| main (int argc, char *argv[]) |
| @@ -37,6 +38,7 @@ main (int argc, char *argv[]) |
| gboolean res; |
| char **my_argv; |
| int my_argc; |
| + void *handle; |
| |
| /* We may or may not have an executable path */ |
| if (argc != 2 && argc != 3) |
| @@ -50,6 +52,8 @@ main (int argc, char *argv[]) |
| my_argv[0] = argv[0]; |
| my_argv[1] = (char *) "--gst-disable-registry-update"; |
| |
| + handle = dlopen("libgomp.so.1", RTLD_LAZY); |
| + |
| #ifndef GST_DISABLE_REGISTRY |
| _gst_disable_registry_cache = TRUE; |
| #endif |
| -- |
| 2.28.0.220.ged08abb693-goog |
| |