OK, this is a new problem to me... I'm not too familiar with the loader so I thought I'd see if anybody knew what was going on before I spent time trying to debug this myself.
I recently decided that my wine installation had become too crufty, so I wiped out ~/c, and ~/.wine, and ran tools/wineinstall. This is with CVS wine... IOW, a 100% standard config.
Everything seemed to go fine with wineinstall, but now, no matter what I try, I seem to be unable to run wine at all -- it more-or-less immediately segfautlts. I didn't change anything; aside from some truly trivial font path fixups, I have a completely vanilla ~/.wine/config and ~/c tree.
Under gdb, I see the following if I try to run notepad (or any other thing):
(gdb) up #1 0x4011ba3c in wine_dll_set_callback (load=0x400a7aa0 <load_library>) at loader.c:353 (gdb) print builtin_dlls[i].filename $6 = 0x400dcb95 "ntdll.dll" (gdb) down #0 map_dll (nt_descr=0x400f7b20) at loader.c:166 (gdb) bt #0 map_dll (nt_descr=0x400f7b20) at loader.c:166 #1 0x4011ba3c in wine_dll_set_callback (load=0x400a7aa0 <load_library>) at loader.c:353 #2 0x400a80c3 in BUILTIN32_LoadExeModule (main=0x0) at ../../relay32/builtin32.c:181 #3 0x403f5715 in __wine_process_init (argc=2, argv=0xbffff5f4) at ../../../wine/scheduler/process.c:578 #4 0x4011bc6a in wine_init (argc=2, argv=0xbffff5f4, error=0xbffff1a4 "", error_size=1024) at loader.c:427 #5 0x3c000540 in main (argc=2, argv=0xbffff5f4) at ../../wine/miscemu/main.c:33 #6 0x40237747 in __libc_start_main () from /lib/libc.so.6 (gdb) print ptr $7 = (void *) 0x41b (gdb) print base $8 = (void *) 0x0
It's deferencing the 0x41b pointer which is causing the segfault...
Any ideas? If not, how should I try and debug this?... what is fixup_rva_ptr's (libs/wine/loader.c) all about? And, if this is what happens with a completely vanilla wine install, why doesn't "everybody" have this problem?
Surely, I am missing something totally obvious? Thanks,