EVOLUTION SLOW START , a workaround
User Lenzi
lenzi at k1.com.br
Mon Mar 17 04:33:56 UTC 2008
> I'm trying to use your patch but it fails to apply patch.
> It results in:
>
> ecerejo# patch -uspl </usr/home/webdude/patch.b
> File to patch: patch-gmodule::gmodule-dl.c
> 4 out of 4 hunks failed--saving rejects to patch-gmodule::gmodule-dl.c.rej
>
>
OK, probably, it is because you did not put the module (the patch in the
correct place)
the patch I publish on the email is to replace the glib patch that is
located in:
/usr/ports/devel/glib20/files/patch-gmodule::gmodule-dl.c
the idea is:
you copy the code from the email, and replace the file in the
/usr/ports/devel/glib20/files/patch-gmodule::gmodule-dl.c
and then just build glib20 again. either by the comand
(cd /usr/ports/devel/glib20;make clean deinstall install) or
portupgrade -fp devel/glib20
should work....
There is no need to rebuild evolution.
the patch works with glib versions 2
tested on glib2.12 till 2.16 (the last one).
================cut===========================
--- gmodule/gmodule-dl.c.orig 2008-02-07 03:24:53.000000000 -0200
+++ gmodule/gmodule-dl.c 2008-03-11 18:53:44.000000000 -0300
@@ -73,6 +73,14 @@
#endif /* RTLD_GLOBAL */
+static char *special_names[]={
+ "g_module_check_init",
+ "g_module_unload",
+ "e_plugin_lib_enable",
+ NULL
+};
+
+
/* --- functions --- */
static gchar*
fetch_dlerror (gboolean replace_null)
@@ -106,6 +114,7 @@
static gpointer
_g_module_self (void)
{
+#ifndef __FreeBSD__
gpointer handle;
/* to query symbols from the program itself, special link options
@@ -117,6 +126,9 @@
g_module_set_error (fetch_dlerror (TRUE));
return handle;
+#else
+ return RTLD_DEFAULT;
+#endif
}
static void
@@ -141,9 +153,19 @@
{
gpointer p;
gchar *msg;
+ char **pn;
fetch_dlerror (FALSE);
- p = dlsym (handle, symbol_name);
+
+ for (pn=special_names;*pn;pn++) {
+ if (!strcmp(*pn,symbol_name)) {
+ p=dlsym(RTLD_NEXT,symbol_name);
+ break;
+ }
+ }
+
+ if (! *pn)
+ p = dlsym (handle, symbol_name);
msg = fetch_dlerror (FALSE);
if (msg)
g_module_set_error (msg);
===============================cut==========================
More information about the freebsd-questions
mailing list