diff options
author | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
---|---|---|
committer | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (diff) |
agl-basesystem
Diffstat (limited to 'external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch')
-rw-r--r-- | external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch new file mode 100644 index 00000000..f9794d3d --- /dev/null +++ b/external/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch @@ -0,0 +1,50 @@ +From 8326961841f4d16c7239e747de11e3817c35cfd2 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Fri, 11 Mar 2016 15:35:55 +0000 +Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds + +Instead of hard-coding GIO_MODULE_PATH when glib is built, use dladdr() to +determine where libglib.so is and use that path to calculate GIO_MODULES_DIR. + +This solves relocation problems with GIOModule for native builds of glib. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton <ross.burton@intel.com> + +Port patch to 2.48 +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + +--- + gio/giomodule.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/gio/giomodule.c b/gio/giomodule.c +index 36c0cef..912e490 100644 +--- a/gio/giomodule.c ++++ b/gio/giomodule.c +@@ -40,6 +40,8 @@ + #include "gnetworkmonitor.h" + #ifdef G_OS_WIN32 + #include "gregistrysettingsbackend.h" ++#else ++#include <dlfcn.h> + #endif + #include <glib/gstdio.h> + +@@ -1099,7 +1101,15 @@ get_gio_module_dir (void) + #endif + g_free (install_dir); + #else +- module_dir = g_strdup (GIO_MODULE_DIR); ++ Dl_info info; ++ ++ if (dladdr (g_io_module_new, &info)) { ++ char *libdir = g_path_get_dirname (info.dli_fname); ++ module_dir = g_build_filename (libdir, "gio", "modules", NULL); ++ g_free (libdir); ++ } else { ++ module_dir = g_strdup (GIO_MODULE_DIR); ++ } + #endif + } + |