components/gnome/glib2/patches/02-gmodule-always-lazy.patch
changeset 5891 196a7310cc4d
--- /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));
+