diff -r e3686c085735 -r 196a7310cc4d components/gnome/glib2/patches/02-gmodule-always-lazy.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/gnome/glib2/patches/02-gmodule-always-lazy.patch Thu Apr 28 14:40:42 2016 -0700 @@ -0,0 +1,28 @@ +Patch migrated from Desktop, where it was listed as: +# owner:laca type:bug date:2005-10-13 + +After talking with Rod, it seems like this should apply to all platforms; +not just Solaris, otherwise there could be a significant performance +penalty at startup. Need to file upstream bug for that. + +--- glib-2.44.0/gmodule/gmodule-dl.c 2014-10-04 17:08:22.000000000 -0700 ++++ glib-2.44.0/gmodule/gmodule-dl.c 2015-04-19 12:35:57.727036805 -0700 +@@ -93,9 +93,17 @@ + gboolean bind_local) + { + gpointer handle; ++ ++ #if defined(sun) && defined(__SVR4) ++ /* ++ * Always use RTLD_LAZY on Solaris; otherwise all relocations are performed ++ * immediately in all dynamic dependencies. ++ */ ++ bind_lazy = 1; ++ #endif + + handle = dlopen (file_name, +- (bind_local ? 0 : RTLD_GLOBAL) | (bind_lazy ? RTLD_LAZY : RTLD_NOW)); ++ (bind_local ? 0 : RTLD_GLOBAL) | (bind_lazy ? RTLD_LAZY | RTLD_FIRST : RTLD_NOW)); + if (!handle) + g_module_set_error (fetch_dlerror (TRUE)); +