package gcjwebplugin
tags 298289 + patch
thanks

I can reproduce this error.  It is caused by not initializing the thread
support early enough; the call to g_thread_init should be made before
creating the mutex, not right before locking the mutex.  Replacing
debian/patches/thread-init.patch with the attached thread-init.patch
fixes this problem.

Also, gcjwebplugin needs to link against gthread, not just glib;
otherwise a relocation error occurs when loading the plugin.  (I don't
know why this doesn't already occur with the current binary package in
Debian.)  Applying the attached link-to-gthread.patch and regenerating
the autoconf files will fix this problem.

- Josh Triplett
--- src/gcjwebplugin.cc.orig	2004-11-28 00:02:14.000000000 -0800
+++ src/gcjwebplugin.cc	2005-04-29 09:45:06.155640024 -0700
@@ -514,6 +514,10 @@
   pluginTable->urlnotify = NewNPP_URLNotifyProc(GCJ_URLNotify);
   pluginTable->getvalue = NewNPP_GetValueProc(GCJ_GetValue);

+  // Initialize threads (needed for mutexes).
+  if (!g_thread_supported ())
+    g_thread_init (NULL);
+
   mutex_appletviewer_process = g_mutex_new ();

   return NPERR_NO_ERROR;
--- gcjwebplugin-0.3.1.orig/acinclude.m4	2004-07-20 10:44:09.000000000 -0700
+++ gcjwebplugin-0.3.1/acinclude.m4	2005-04-29 10:02:08.853166368 -0700
@@ -3,7 +3,7 @@
 dnl ---------------------------------------------------------------------------

 AC_DEFUN([GCJWEBPLUGIN_CHECK_GLIB],[
-PKG_CHECK_MODULES([GLIB],[glib-2.0 >= 2.0])
+PKG_CHECK_MODULES([GLIB],[gthread-2.0 >= 2.0])
 AC_SUBST([GLIB_CFLAGS])
 AC_SUBST([GLIB_LIBS])
 ])

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to