In article <[EMAIL PROTECTED]>,
Donn Miller  <[EMAIL PROTECTED]> wrote:
> John Polstra wrote:
> > 
> > Below is a patch for "src/libexec/rtld-elf" which should fix the
> > assert failures in wine.  I'd appreciate hearing from anybody who
> > tests this with multithreaded packages such as wine, JDK, Mozilla,
> > and linuxthreads.
> 
> [snipped patch]
> 
> OK, here's some of the errors I get with Mozilla.  It looks like it
> happens when Gdk runs out os SysV shared memory.  Otherwise, if I
> don't get the "Gdk-WARNING **: shmget failed!", the ld.so erros never
> occur, and Mozilla runs OK.  It seems as if Wine is working OK so far,
> though, although I probably haven't tested Wine enough:
[...]
> /usr/libexec/ld-elf.so.1: Application locking error: 1 readers and 1
> writers in dynamic linker.  See DLLOCKINIT(3) in manual pages.

This means that one thread was in the middle of a dlopen() call
when another thread either called a new function for the first time
(invoking the dynamic linker for lazy binding) or called dlsym().
Really the only _right_ place I can find to fix this kind of thing is
in the application itself, by calling dllockinit() to set up locking
for the dynamic linker invocations.  I keep trying to come up with
solutions that will work without that, but I'm not at all sure it's
possible.  I'll take another look at Mozilla and see what's done
for other platforms.  They must have this same problem, at least
potentially.

Thanks very much for testing this!

John


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to