I have a problem I'm hoping someone can help me with. GTK+ 2.4 introduced a new file selection GUI which works just fine in threaded and non-threaded applications. However, GNOME 2.6 augmented this dialog with a dynamically loadable threaded shared object. The GNOME version is automatically used by all GTK+ apps when run under a GNOME desktop if libgnomeui is installed.
When this object is dynamically loaded into GNOME applications, they work just fine as they are linked to a thread library. However, when a GTK+ non-threaded app tries to load this object, I get a segmentation fault because the pthread_cond_wait() symbol gets found in libc before the thread library, and threaded locking isn't setup. I've tried a lot of things to try and fix this. I tried using dlopen/dlsym to resolve pthread_cond_wait from the thread library, but this doesn't work. I tried setting __isthreaded to 1, but that didn't work (it gets overridden). The only thing that works is to set LD_PRELOAD to the thread library before running the non-threaded app (or fixing the app to link against PTHREAD_LIBS). Is there a better solution to this? This problem only seems to affect 5.X. I'm hoping not to have to link every GTK+ app that might use the new file selector to PTHREAD_LIBS. Any advice would be greatly appreciated. Thanks. Joe -- Joe Marcus Clarke FreeBSD GNOME Team :: [EMAIL PROTECTED] [EMAIL PROTECTED] FreeNode / #freebsd-gnome http://www.FreeBSD.org/gnome
signature.asc
Description: This is a digitally signed message part