flashpluginwrapper for Flash 6 (Shared Library Tools redux)

Joe Kelsey joek at mail.flyingcroc.net
Thu Jun 19 12:11:00 PDT 2003

Ok.  I hand-modified the linux-flashplugin6 shared library to remove all 
of the DT_NEEDED entries.  I then modified flashpluginwrapper to add the 
following functions:

void __assert_fail(const char *assertion, const char *file,
		   unsigned int line, const char *function)
   fprint (stderr, "%s:%d:%s: %s\n", file, line, function, assertion);
   abort ();

#include <ctype.h>

int __ctype_toupper(int c)
   return toupper (c);
unsigned short int __ctype_b[256];

#include <errno.h>
int *__errno_location(void)
   return __error ();

unsigned long int __strtoul_internal(const char *__nptr, char **__endptr,
				     int __base, int __group)
   return strtoul (__nptr, __endptr, __base);

void __terminate()
   fprintf (stderr, "terminate!\n");

ssize_t __write (int __fd, const void *__buf, size_t __size)
   return write (__fd, __buf, __size);

int __fxstat(int __ver, int __filedesc, struct stat *__stat_buf)
   return fstat (__filedesc, __stat_buf);

int __xstat(int __ver, const char *__filename, struct stat *__stat_buf)
   return stat (__filename, __stat_buf);

I installed this new version of flashpluginwrapper, installed the 
linux-flashplugin6 library in browser_plugins.  Now, the Flash 6 code 
segfaults in pthread_mutex_init(), called from

Program received signal SIGSEGV, Segmentation fault.
0x284549d6 in pthread_mutex_init () from /usr/lib/libc_r.so.4
(gdb) bt
#0  0x284549d6 in pthread_mutex_init () from /usr/lib/libc_r.so.4
#1  0x298016b0 in MPCriticalSection::MPCriticalSection ()
    from /usr/X11R6/lib/browser_plugins/libflashplayer.so
#2  0x297fdfd5 in PlatformGlobals::PlatformGlobals ()
    from /usr/X11R6/lib/browser_plugins/libflashplayer.so
#3  0x2983c8de in NPP_GetValue ()
    from /usr/X11R6/lib/browser_plugins/libflashplayer.so
#4  0x2983c91a in NPP_GetValue ()
    from /usr/X11R6/lib/browser_plugins/libflashplayer.so
#5  0x2985ea55 in __pure_virtual ()
    from /usr/X11R6/lib/browser_plugins/libflashplayer.so
#6  0x29761cbe in _init ()
    from /usr/X11R6/lib/browser_plugins/libflashplayer.so
#7  0x28081acf in find_symdef () from /usr/libexec/ld-elf.so.1
#8  0x280823ef in dlopen () from /usr/libexec/ld-elf.so.1
#9  0x28128c18 in PR_LoadLibrary () from 
#10 0x28128b34 in PR_LoadLibraryWithFlags ()

Anyone familiar enough with Mozilla internals to understand why 
pthread_mutex_init segfaults?  Has Mozilla started its own threads by 
the time it loads the libraries?  I don't know where to look to track 
this down.  Maybe a difference between Linux and FreeBSD in the pthread 


More information about the freebsd-questions mailing list