First, the good news. A two line hack to wine will fix this problem.
I was at first unsure whether to blame this on newer wine versions or my new dual core AMD64, (they both came along at the same time). In any event I have not been able to run TOPO! on my new system for over a year. Before that, things were great, as you can read in my old TOPO success story and my overall wine notes.
The system in question is (by the way) an ASUS A8N-E motherboard with 2G of Ram and an AMD64 X2 Dual Core 3800+ processor. At the time of this testing I was running the Fedora 2.6.20-2944 kernel. I do NOT run 64 bit linux on this machine, just the good old i386 kernel. Perhaps running a 64-bit kernel would fix this, but it opens cans of worms in other areas I prefer to avoid.
I have another system which has a plain old AMD Sempron 2800+ and runs the Fedora 2.6.17-2157_FC5 kernel (Fedora Core 6). This system runs TOPO! just fine with both Wine 0.9.17 and now with Wine 0.9.35
Just as an experiment, I booted my dual core system with kernel options "nosmp noapic" to try to make it run like a uniprocessor, but I get the same problem.
I have submitted this to the Wine bugzilla as bug 8165 and it is closely related to bug 8033. The reporter for bug 8033 mentions he is using a 64 bit processor, but doesn't indicate if it is an AMD or dual core.
The problem began with Fedora Core 5 and Wine 0.9.17 and has persisted with Fedora Core 6 and Wine 0.9.27 and continues with Wine 0.9.35. With FC6 and Wine 0.9.35 I can run winemine just fine, so the basic wine install is OK.
I can start the TOPO program and get a first chooser window that wants me to pick what state I want -- so the TOPO program at least starts running. As soon as I select the state I get a page fault.
The official advice would be to use yum erase wine or something like that to nuke wine from orbit and start fresh, but for now I won't be that drastic. After all, the fedora RPM gives me 0.9.35 (the latest version). Running yum list shows the following packages that I have installed (and two that yum could give me).
wine.i386 0.9.35-1.fc6 installed wine-capi.i386 0.9.35-1.fc6 installed wine-cms.i386 0.9.35-1.fc6 installed wine-core.i386 0.9.35-1.fc6 installed wine-devel.i386 0.9.35-1.fc6 installed wine-esd.i386 0.9.35-1.fc6 installed wine-jack.i386 0.9.35-1.fc6 installed wine-ldap.i386 0.9.35-1.fc6 installed wine-nas.i386 0.9.35-1.fc6 installed wine-tools.i386 0.9.35-1.fc6 installed wine-twain.i386 0.9.35-1.fc6 installed wine-arts.i386 0.9.32-1.fc6 extras wine-docs.noarch 0.9.35-1.fc6 extras
Here are the details that get printed when the page fault happens:
(/www/cholla) cholla $ wine --version wine-0.9.35 (/www/cholla) cholla $ topo wine: Unhandled page fault on read access to 0x0000002c at address 0x45be03 (thread 0009), starting debugger... Unhandled exception: page fault on read access to 0x0000002c in 32-bit code (0x0045be03). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:0045be03 ESP:0032ea78 EBP:0032ebac EFLAGS:00210246( - 00 -RIZP1) EAX:00000000 EBX:00402522 ECX:00000000 EDX:00000000 ESI:0032f608 EDI:00b32478 Stack dump: 0x0032ea78: 0032eaa0 0032eaa0 00b32478 0032eac4 0x0032ea88: 00002134 00002af8 00002134 00002af8 0x0032ea98: 00002134 00002af8 00568aa4 00000000 0x0032eaa8: 00000000 00000000 00000000 00000004 0x0032eab8: 000005a0 00179020 00000004 0032eb04 0x0032eac8: 6052c534 6052c534 0032eaf8 00000000 Backtrace: =>1 0x0045be03 in topo (+0x5be03) (0x0032ebac) 2 0x00453055 in topo (+0x53055) (0x0032ee20) 3 0x004f6853 in topo (+0xf6853) (0x0032ee98) 4 0x004f6549 in topo (+0xf6549) (0x0032eeb8) 5 0x004f5435 in topo (+0xf5435) (0x0032ef18) 6 0x004f563e in topo (+0xf563e) (0x0032ef34) 7 0x6056b51a WINPROC_wrapper+0x1a() in user32 (0x0032ef64) 8 0x6056bc5e in user32 (+0x9bc5e) (0x0032efa4) 9 0x6056fbea CallWindowProcA+0x5a() in user32 (0x0032efe4) 10 0x605384b9 in user32 (+0x684b9) (0x0032f054) 11 0x6053c022 SendMessageTimeoutA+0x202() in user32 (0x0032f0c4) 12 0x6053c0e0 SendMessageA+0x50() in user32 (0x0032f104) 13 0x6088b074 X11DRV_CreateWindow+0xaa4() in winex11 (0x0032f284) 14 0x60565303 in user32 (+0x95303) (0x0032f4e4) 15 0x60566b3f CreateWindowExA+0x8f() in user32 (0x0032f644) 16 0x004f5b92 in topo (+0xf5b92) (0x0032f6b4) 17 0x00518772 in topo (+0x118772) (0x0032f6f4) 18 0x00518982 in topo (+0x118982) (0x0032f734) 19 0x00505ad7 in topo (+0x105ad7) (0x0032f768) 20 0x00502ec2 in topo (+0x102ec2) (0x0032f798) 21 0x005056e1 in topo (+0x1056e1) (0x0032fac8) 22 0x0050d9c5 in topo (+0x10d9c5) (0x0032fe2c) 23 0x0047fbd8 in topo (+0x7fbd8) (0x0032fe58) 24 0x004fd12a in topo (+0xfd12a) (0x0032ff08) 25 0x603ba78e in kernel32 (+0x5a78e) (0x0032ffe8) 26 0x60022547 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000) 0x0045be03: movswl 0x2c(%ecx),%edx Modules: Module Address Debug info Name (71 modules) ELF 344000- 3c4000 Deferred libfreetype.so.6 ELF 3c6000- 3e0000 Deferred libice.so.6 ELF 3e2000- 411000 Deferred libfontconfig.so.1 PE 400000- 602000 Export topo PE 400000- 602000 Export topo ELF c79000- c7d000 Deferred libgpg-error.so.0 ELF c7f000- cd4000 Deferred libgcrypt.so.11 ELF d97000- daa000 Deferred libz.so.1 ELF dac000- daf000 Deferred libxau.so.6 ELF db1000- db7000 Deferred libxdmcp.so.6 ELF db9000- dc9000 Deferred libxext.so.6 ELF dcb000- dec000 Deferred libexpat.so.0 ELF dee000- df7000 Deferred libsm.so.6 ELF df9000- dfe000 Deferred libxfixes.so.3 ELF 2ce4000- 2ce9000 Deferred libxxf86vm.so.1 ELF 2cfb000- 2cff000 Deferred libxrandr.so.2 ELF 2d01000- 2d04000 Deferred libxinerama.so.1 ELF 2d06000- 2d10000 Deferred libxcursor.so.1 ELF 39b8000- 3a35000 Deferred libgnutls.so.13 PE 10000000-10037000 Deferred vic32 ELF 60000000-6001b000 Deferred ld-linux.so.2 ELF 6001b000-6012d000 Export libwine.so.1 ELF 6012d000-60144000 Deferred libpthread.so.0 ELF 60144000-60281000 Deferred libc.so.6 ELF 60281000-60285000 Deferred libdl.so.2 ELF 60285000-60323000 Deferred ntdll\-PE 602a0000-60323000 \ ntdll ELF 60323000-6034a000 Deferred libm.so.6 ELF 6034a000-6047d000 Export kernel32 \-PE 60360000-6047d000 \ kernel32 ELF 6047d000-60497000 Deferred version \-PE 60480000-60497000 \ version ELF 60497000-604ab000 Deferred lz32 \-PE 604a0000-604ab000 \ lz32 ELF 604ab000-605f7000 Export user32 \-PE 604d0000-605f7000 \ user32 ELF 605f7000-60696000 Deferred gdi32 \-PE 60610000-60696000 \ gdi32 ELF 60696000-606df000 Deferred advapi32 \-PE 606a0000-606df000 \ advapi32 ELF 606df000-607e3000 Deferred shell32 \-PE 606f0000-607e3000 \ shell32 ELF 60833000-608c6000 Export winex11 \-PE 60840000-608c6000 \ winex11 ELF 608f5000-609f7000 Deferred libx11.so.6 ELF 60a00000-60a6c000 Deferred libgl.so.1 ELF 60a6c000-60a77000 Deferred libdrm.so.2 ELF 60a87000-60aa4000 Deferred imm32 \-PE 60a90000-60aa4000 \ imm32 ELF 60ab3000-60ae7000 Deferred uxtheme \-PE 60ac0000-60ae7000 \ uxtheme ELF 60ae7000-60b8f000 Deferred ole32 \-PE 60b00000-60b8f000 \ ole32 ELF 60b8f000-60ba2000 Deferred libresolv.so.2 ELF 60ba2000-60bd8000 Deferred libcups.so.2 ELF 60c55000-60c83000 Deferred libcrypt.so.1 ELF 60cef000-60d06000 Deferred libnsl.so.1 ELF 695e0000-696a5000 Deferred comctl32 \-PE 695f0000-696a5000 \ comctl32 ELF 6b90d000-6b96a000 Deferred shlwapi \-PE 6b920000-6b96a000 \ shlwapi ELF 6ba31000-6bad3000 Deferred comdlg32 \-PE 6ba40000-6bad3000 \ comdlg32 ELF 6d99d000-6d9f6000 Deferred rpcrt4 \-PE 6d9b0000-6d9f6000 \ rpcrt4 ELF 73ea8000-73eb3000 Deferred libnss_files.so.2 ELF 7707b000-7709a000 Deferred iphlpapi \-PE 77080000-7709a000 \ iphlpapi ELF 79828000-7985c000 Deferred winspool \-PE 79830000-7985c000 \ winspool ELF 7bf00000-7bf03000 Deferred Threads: process tid prio (all id:s are in hex) 0000000a 0000000c 0 0000000b 0 00000008 (D) C:\topo!\topo.exe 00000009 0 <==
Just for amusement, lets see what wine files are on my system:
A quick peek at /usr/bin shows:
/usr/bin/wine /usr/bin/wine-kthread /usr/bin/wine-preloader /usr/bin/wine-pthread /usr/bin/wineboot /usr/bin/winebrowser /usr/bin/winecfg /usr/bin/wineconsole /usr/bin/winedbg /usr/bin/winedump /usr/bin/winefile /usr/bin/winelauncher /usr/bin/winemaker /usr/bin/winemine /usr/bin/winepath /usr/bin/wineprefixcreate /usr/bin/wineserver /usr/bin/wineshelllink /usr/lib/wine/cabinet.dll.so
A similar peek at /usr/lib shows:
/usr/lib/libwine.so.1 /usr/lib/libwine.so.1.0 /usr/lib/wine /usr/lib/qt-3.3/include/qwinexport.h /usr/lib/wine/activeds.dll.so /usr/lib/wine/advapi32.dll.so /usr/lib/wine/advpack.dll.so /usr/lib/wine/amstream.dll.so /usr/lib/wine/atl.dll.so /usr/lib/wine/avicap32.dll.so /usr/lib/wine/avifil32.dll.so /usr/lib/wine/avifile.dll16 /usr/lib/wine/browseui.dll.so /usr/lib/wine/cabinet.dll.so /usr/lib/wine/capi2032.dll.so /usr/lib/wine/cards.dll.so /usr/lib/wine/cfgmgr32.dll.so /usr/lib/wine/clock.exe.so /usr/lib/wine/clusapi.dll.so /usr/lib/wine/cmd.exe.so /usr/lib/wine/comcat.dll.so /usr/lib/wine/comctl32.dll.so /usr/lib/wine/comdlg32.dll.so /usr/lib/wine/comm.drv16 /usr/lib/wine/commdlg.dll16 /usr/lib/wine/compobj.dll16 /usr/lib/wine/compstui.dll.so /usr/lib/wine/control.exe.so /usr/lib/wine/credui.dll.so /usr/lib/wine/crtdll.dll.so /usr/lib/wine/crypt32.dll.so /usr/lib/wine/cryptdll.dll.so /usr/lib/wine/cryptnet.dll.so /usr/lib/wine/ctl3d.dll16 /usr/lib/wine/ctl3d32.dll.so /usr/lib/wine/ctl3dv2.dll16 /usr/lib/wine/d3d8.dll.so /usr/lib/wine/d3d9.dll.so /usr/lib/wine/d3dim.dll.so /usr/lib/wine/d3drm.dll.so /usr/lib/wine/d3dx8.dll.so /usr/lib/wine/d3dxof.dll.so /usr/lib/wine/dbghelp.dll.so /usr/lib/wine/dciman32.dll.so /usr/lib/wine/ddeml.dll16 /usr/lib/wine/ddraw.dll.so /usr/lib/wine/ddrawex.dll.so /usr/lib/wine/devenum.dll.so /usr/lib/wine/dinput.dll.so /usr/lib/wine/dinput8.dll.so /usr/lib/wine/dispdib.dll16 /usr/lib/wine/display.drv16 /usr/lib/wine/dmband.dll.so /usr/lib/wine/dmcompos.dll.so /usr/lib/wine/dmime.dll.so /usr/lib/wine/dmloader.dll.so /usr/lib/wine/dmscript.dll.so /usr/lib/wine/dmstyle.dll.so /usr/lib/wine/dmsynth.dll.so /usr/lib/wine/dmusic.dll.so /usr/lib/wine/dmusic32.dll.so /usr/lib/wine/dnsapi.dll.so /usr/lib/wine/dplay.dll.so /usr/lib/wine/dplayx.dll.so /usr/lib/wine/dpnaddr.dll.so /usr/lib/wine/dpnet.dll.so /usr/lib/wine/dpnhpast.dll.so /usr/lib/wine/dsound.dll.so /usr/lib/wine/dswave.dll.so /usr/lib/wine/dxdiagn.dll.so /usr/lib/wine/eject.exe.so /usr/lib/wine/expand.exe.so /usr/lib/wine/explorer.exe.so /usr/lib/wine/gdi.exe16 /usr/lib/wine/gdi32.dll.so /usr/lib/wine/glu32.dll.so /usr/lib/wine/gphoto2.ds.so /usr/lib/wine/hh.exe.so /usr/lib/wine/hhctrl.ocx.so /usr/lib/wine/hid.dll.so /usr/lib/wine/hlink.dll.so /usr/lib/wine/iccvid.dll.so /usr/lib/wine/icinfo.exe.so /usr/lib/wine/icmp.dll.so /usr/lib/wine/iexplore.exe.so /usr/lib/wine/ifsmgr.vxd.so /usr/lib/wine/imaadp32.acm.so /usr/lib/wine/imagehlp.dll.so /usr/lib/wine/imm.dll16 /usr/lib/wine/imm32.dll.so /usr/lib/wine/infosoft.dll.so /usr/lib/wine/inseng.dll.so /usr/lib/wine/iphlpapi.dll.so /usr/lib/wine/itss.dll.so /usr/lib/wine/kernel32.dll.so /usr/lib/wine/keyboard.drv16 /usr/lib/wine/krnl386.exe16 /usr/lib/wine/localspl.dll.so /usr/lib/wine/localui.dll.so /usr/lib/wine/lz32.dll.so /usr/lib/wine/lzexpand.dll16 /usr/lib/wine/mapi32.dll.so /usr/lib/wine/mciavi32.dll.so /usr/lib/wine/mcicda.dll.so /usr/lib/wine/mciseq.dll.so /usr/lib/wine/mciwave.dll.so /usr/lib/wine/midimap.dll.so /usr/lib/wine/mlang.dll.so /usr/lib/wine/mmdevldr.vxd.so /usr/lib/wine/mmsystem.dll16 /usr/lib/wine/monodebg.vxd.so /usr/lib/wine/mouse.drv16 /usr/lib/wine/mpr.dll.so /usr/lib/wine/mprapi.dll.so /usr/lib/wine/msacm.dll16 /usr/lib/wine/msacm32.dll.so /usr/lib/wine/msacm32.drv.so /usr/lib/wine/msadp32.acm.so /usr/lib/wine/mscms.dll.so /usr/lib/wine/mscoree.dll.so /usr/lib/wine/msdmo.dll.so /usr/lib/wine/msftedit.dll.so /usr/lib/wine/msg711.acm.so /usr/lib/wine/mshtml.dll.so /usr/lib/wine/msi.dll.so /usr/lib/wine/msiexec.exe.so /usr/lib/wine/msimg32.dll.so /usr/lib/wine/msisys.ocx.so /usr/lib/wine/msnet32.dll.so /usr/lib/wine/msrle32.dll.so /usr/lib/wine/msvcrt.dll.so /usr/lib/wine/msvcrt20.dll.so /usr/lib/wine/msvcrt40.dll.so /usr/lib/wine/msvcrtd.dll.so /usr/lib/wine/msvfw32.dll.so /usr/lib/wine/msvidc32.dll.so /usr/lib/wine/msvideo.dll16 /usr/lib/wine/mswsock.dll.so /usr/lib/wine/msxml3.dll.so /usr/lib/wine/nddeapi.dll.so /usr/lib/wine/netapi32.dll.so /usr/lib/wine/newdev.dll.so /usr/lib/wine/notepad.exe.so /usr/lib/wine/ntdll.dll.so /usr/lib/wine/ntdsapi.dll.so /usr/lib/wine/objsel.dll.so /usr/lib/wine/odbc32.dll.so /usr/lib/wine/odbccp32.dll.so /usr/lib/wine/ole2.dll16 /usr/lib/wine/ole2conv.dll16 /usr/lib/wine/ole2disp.dll16 /usr/lib/wine/ole2nls.dll16 /usr/lib/wine/ole2prox.dll16 /usr/lib/wine/ole2thk.dll16 /usr/lib/wine/ole32.dll.so /usr/lib/wine/oleacc.dll.so /usr/lib/wine/oleaut32.dll.so /usr/lib/wine/olecli.dll16 /usr/lib/wine/olecli32.dll.so /usr/lib/wine/oledlg.dll.so /usr/lib/wine/olepro32.dll.so /usr/lib/wine/olesvr.dll16 /usr/lib/wine/olesvr32.dll.so /usr/lib/wine/oleview.exe.so /usr/lib/wine/opengl32.dll.so /usr/lib/wine/powrprof.dll.so /usr/lib/wine/progman.exe.so /usr/lib/wine/psapi.dll.so /usr/lib/wine/pstorec.dll.so /usr/lib/wine/qcap.dll.so /usr/lib/wine/quartz.dll.so /usr/lib/wine/query.dll.so /usr/lib/wine/rasapi16.dll16 /usr/lib/wine/rasapi32.dll.so /usr/lib/wine/regedit.exe.so /usr/lib/wine/regsvr32.exe.so /usr/lib/wine/resutils.dll.so /usr/lib/wine/riched20.dll.so /usr/lib/wine/riched32.dll.so /usr/lib/wine/rpcrt4.dll.so /usr/lib/wine/rpcss.exe.so /usr/lib/wine/rsabase.dll.so /usr/lib/wine/rsaenh.dll.so /usr/lib/wine/rundll32.exe.so /usr/lib/wine/sane.ds.so /usr/lib/wine/schannel.dll.so /usr/lib/wine/secur32.dll.so /usr/lib/wine/security.dll.so /usr/lib/wine/sensapi.dll.so /usr/lib/wine/serialui.dll.so /usr/lib/wine/setupapi.dll.so /usr/lib/wine/setupx.dll16 /usr/lib/wine/sfc.dll.so /usr/lib/wine/sfc_os.dll.so /usr/lib/wine/shdoclc.dll.so /usr/lib/wine/shdocvw.dll.so /usr/lib/wine/shell.dll16 /usr/lib/wine/shell32.dll.so /usr/lib/wine/shfolder.dll.so /usr/lib/wine/shlwapi.dll.so /usr/lib/wine/snmpapi.dll.so /usr/lib/wine/sound.drv16 /usr/lib/wine/spoolss.dll.so /usr/lib/wine/spoolsv.exe.so /usr/lib/wine/start.exe.so /usr/lib/wine/stdole2.tlb.so /usr/lib/wine/stdole32.tlb.so /usr/lib/wine/sti.dll.so /usr/lib/wine/storage.dll16 /usr/lib/wine/stress.dll16 /usr/lib/wine/svrapi.dll.so /usr/lib/wine/system.drv16 /usr/lib/wine/tapi32.dll.so /usr/lib/wine/taskmgr.exe.so /usr/lib/wine/toolhelp.dll16 /usr/lib/wine/twain.dll16 /usr/lib/wine/twain_32.dll.so /usr/lib/wine/typelib.dll16 /usr/lib/wine/unicows.dll.so /usr/lib/wine/uninstaller.exe.so /usr/lib/wine/url.dll.so /usr/lib/wine/urlmon.dll.so /usr/lib/wine/user.exe16 /usr/lib/wine/user32.dll.so /usr/lib/wine/userenv.dll.so /usr/lib/wine/usp10.dll.so /usr/lib/wine/uxtheme.dll.so /usr/lib/wine/vdhcp.vxd.so /usr/lib/wine/vdmdbg.dll.so /usr/lib/wine/ver.dll16 /usr/lib/wine/version.dll.so /usr/lib/wine/vmm.vxd.so /usr/lib/wine/vnbt.vxd.so /usr/lib/wine/vnetbios.vxd.so /usr/lib/wine/vtdapi.vxd.so /usr/lib/wine/vwin32.vxd.so /usr/lib/wine/w32skrnl.dll.so /usr/lib/wine/w32sys.dll16 /usr/lib/wine/win32s16.dll16 /usr/lib/wine/win87em.dll16 /usr/lib/wine/winaspi.dll16 /usr/lib/wine/windebug.dll16 /usr/lib/wine/winealsa.drv.so /usr/lib/wine/wineaudioio.drv.so /usr/lib/wine/wineboot.exe.so /usr/lib/wine/winebrowser.exe.so /usr/lib/wine/winecfg.exe.so /usr/lib/wine/wineconsole.exe.so /usr/lib/wine/winecoreaudio.drv.so /usr/lib/wine/wined3d.dll.so /usr/lib/wine/winedbg.exe.so /usr/lib/wine/winedos.dll.so /usr/lib/wine/wineesd.drv.so /usr/lib/wine/winefile.exe.so /usr/lib/wine/winejack.drv.so /usr/lib/wine/winejoystick.drv.so /usr/lib/wine/winemenubuilder.exe.so /usr/lib/wine/winemine.exe.so /usr/lib/wine/winenas.drv.so /usr/lib/wine/wineoss.drv.so /usr/lib/wine/winepath.exe.so /usr/lib/wine/wineps.drv.so /usr/lib/wine/wineps16.drv16 /usr/lib/wine/winevdm.exe.so /usr/lib/wine/winex11.drv.so /usr/lib/wine/wing.dll16 /usr/lib/wine/wing32.dll.so /usr/lib/wine/winhelp.exe.so /usr/lib/wine/wininet.dll.so /usr/lib/wine/winmm.dll.so /usr/lib/wine/winnls.dll16 /usr/lib/wine/winnls32.dll.so /usr/lib/wine/winsock.dll16 /usr/lib/wine/winspool.drv.so /usr/lib/wine/wintab.dll16 /usr/lib/wine/wintab32.dll.so /usr/lib/wine/wintrust.dll.so /usr/lib/wine/winver.exe.so /usr/lib/wine/wldap32.dll.so /usr/lib/wine/wnaspi32.dll.so /usr/lib/wine/wordpad.exe.so /usr/lib/wine/wow32.dll.so /usr/lib/wine/wprocs.dll16 /usr/lib/wine/ws2_32.dll.so /usr/lib/wine/wsock32.dll.so /usr/lib/wine/wtsapi32.dll.so /usr/lib/wine/xcopy.exe.so
Adventures in Computing / tom@mmto.org