[Mono-winforms-list] SWF with WineLib on Suse

Alexandre Pigolkine pigolkine@gmx.de
02 Jun 2003 21:44:29 +0200


The backtrace:

516         ret = dlopen( filename, flag );
(gdb) where
#0  wine_dlopen (filename=0x40b80904 "libGL.so.1", flag=258, error=0x0,
errorsize=0) at port.c:516
#1  0x40b56c18 in X11DRV_OpenGL_Init (display=0x81f79c0) at
../../graphics/x11drv/opengl.c:128
#2  0x40b748c4 in process_attach () at x11drv_main.c:322
#3  0x40b74d25 in InitDllMain (hinst=0x8139480, reason=1, reserved=0x0)
at x11drv_main.c:460
#4  0x40a1ef98 in PE_InitDLL (module=0x8139480, type=1, lpReserved=0x0)
at ../../loader/pe_image.c:650
#5  0x40a1bed5 in MODULE_InitDLL (wm=0x40e41e88, type=1, lpReserved=0x0)
at ../../loader/module.c:98
#6  0x40a1c03c in MODULE_DllProcessAttach (wm=0x40e41e88,
lpReserved=0x0) at ../../loader/module.c:171
#7  0x40a63282 in MODULE_LoadLibraryExA (libname=0x40e41e68
"x11drv.dll", flags=0, pwm=0xbf5fee84) at loader.c:525
#8  0x40a63371 in LdrLoadDll (path_name=0x0, flags=0,
libname=0xbf5feec0, hModule=0xbf5feebc) at loader.c:554
#9  0x40a1d6f8 in LoadLibraryExA (libname=0xbf5feef8 "x11drv.dll",
hfile=0x0, flags=0) at ../../loader/module.c:1061
#10 0x40a1d85d in LoadLibraryA (libname=0xbf5feef8 "x11drv.dll") at
../../loader/module.c:1114
#11 0x40987bb4 in load_driver () at user_main.c:78
#12 0x40988412 in process_attach () at user_main.c:248
#13 0x409885b5 in InitDllMain (inst=0x8138a40, reason=1, reserved=0x0)
at user_main.c:347
#14 0x40a1ef98 in PE_InitDLL (module=0x8138a40, type=1, lpReserved=0x0)
at ../../loader/pe_image.c:650
#15 0x40a1bed5 in MODULE_InitDLL (wm=0x40e30c50, type=1, lpReserved=0x0)
at ../../loader/module.c:98
#16 0x40a1c03c in MODULE_DllProcessAttach (wm=0x40e30c50,
lpReserved=0x0) at ../../loader/module.c:171
#17 0x40a63282 in MODULE_LoadLibraryExA (libname=0x40e30b48
"user32.dll", flags=0, pwm=0xbf5ff1f4) at loader.c:525
#18 0x40a63371 in LdrLoadDll (path_name=0x0, flags=0,
libname=0xbf5ff230, hModule=0xbf5ff22c) at loader.c:554
#19 0x40a1d6f8 in LoadLibraryExA (libname=0x82028c8 "user32.dll",
hfile=0x0, flags=0) at ../../loader/module.c:1061
#20 0x40a1d85d in LoadLibraryA (libname=0x82028c8 "user32.dll") at
../../loader/module.c:1114
#21 0x081994d9 in ?? ()
#22 0x0819968a in ?? ()
#23 0x081995a4 in ?? ()
#24 0x4004f1b6 in mono_jit_runtime_invoke (method=0x81467d0, obj=0x0,
params=0x0, exc=0xbf5ff348) at mini.c:6193


I used LD_DEBUG to get more information:

04649:  symbol=pthread_mutexattr_init;  lookup in file=/usr/bin/mono
04649:  symbol=pthread_mutexattr_init;  lookup in
file=/usr/lib/libmono.so.0
04649:  symbol=pthread_mutexattr_init;  lookup in file=/lib/libdl.so.2
04649:  symbol=pthread_mutexattr_init;  lookup in
file=/usr/lib/libgmodule-2.0.so.0
04649:  symbol=pthread_mutexattr_init;  lookup in
file=/usr/lib/libglib-2.0.so.0
04649:  symbol=pthread_mutexattr_init;  lookup in file=/lib/libm.so.6
04649:  symbol=pthread_mutexattr_init;  lookup in
file=/usr/lib/libgc.so.1
04649:  symbol=pthread_mutexattr_init;  lookup in file=/lib/libnsl.so.1
04649:  symbol=pthread_mutexattr_init;  lookup in
file=/lib/libpthread.so.0
04649:  binding file /usr/lib/libGL.so.1 to /lib/libpthread.so.0: normal
symbol `pthread_mutexattr_init'
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/bin/mono
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/lib/libmono.so.0
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/libdl.so.2
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/lib/libgmodule-2.0.so.0
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/lib/libglib-2.0.so.0
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/libm.so.6
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/lib/libgc.so.1
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/libnsl.so.1
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/libpthread.so.0
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/librt.so.1
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/libc.so.6
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/lib/ld-linux.so.2
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/local/lib/libuser32.dll.so
04649:  symbol=pthread_mutexattr_setkind_np;  lookup in
file=/usr/local/lib/libwinnt.dll.so
04649:  binding file /usr/lib/libGL.so.1 to
/usr/local/lib/libwinnt.dll.so: normal symbol
`pthread_mutexattr_setkind_np'

IMHO, here is the problem. loader finds symbol
"pthread_mutexattr_setkind_np" in libwinnt.dll.so and not in libpthread
as all other symbols and looks like it does not really expect this.

Alexandre

On Mon, 2003-06-02 at 12:41, Mike Hearn wrote:
> > applications hang at a call to dlopen("libGL.so.1", 258);
> 
> libGL is an unusual library in many ways, it was broken a lot more than
> most others by the introduction of NPTL and various other threading
> wierdness. It's not PIC either.
> 
> So, I don't really know why opening libGL would cause it to hang, except
> that the fact that it's libGL doesn't surprise me in the slightest.
> 
> You might want to simply compile wine without opengl support,
> --disable-opengl iirc.
> 
> Could you get a backtrace of the freeze?
> thanks -mike
> 
> -- 
> Mike Hearn <m.hearn@signal.qinetiq.com>
> QinetiQ - Malvern Technology Center
> 
> _______________________________________________
> Mono-winforms-list maillist  -  Mono-winforms-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list
>