On Fri, 28 May 2004 15:59:23 -0500, Alexandre Julliard wrote:
Log message: Initial version of the Wine preloader, used to reserve memory areas at startup. Based on the work of Mike McCormack.
For those who haven't been following the execshield/prelink saga, this commit is the result of the various prototypes and patches that were posted to wine-devel since we got back from WineConf.
The result of it should be that we no longer need to switch off execshield nor prelink in order to run Wine reliably, also the huge BSS array hack is also no longer needed. Binaries of every size should work.
Combined with the patch Alexandre checked in a few days ago to do an iterative binary search of the upper 2gig of address space, we should now also be functional when the 4G/4G VM split is enabled.
It could use some testing! Please update to latest CVS and run wine as you would normally. If you are on a prelink/execshield enabled system, make sure they are both switched on and that prelink is using exec-shield mode (should be by default).
If you observe any odd breakage please let us know.
keep on truckin' -mike
* Mike Hearn (Fri, 28 May 2004 22:59:48 +0100) wrote: | On Fri, 28 May 2004 15:59:23 -0500, Alexandre Julliard wrote: | > Log message: | > Initial version of the Wine preloader, used to reserve memory | > areas at startup. Based on the work of Mike McCormack. | [...] | If you observe any odd breakage please let us know.
I just updated from CVS, and weird stuff is happening now. The version one day ago was fine, so it could be due to this change.
This is on Fedora Core 1/i386. The output seems to vary a bit, a few examples are included below. Prelinking was off all the time.
With ExecShield on:
libGL error: drmMap of framebuffer failed err:wave:OSS_WaveOutInit /dev/mixer1: No such device err:wave:OSS_WaveInInit /dev/mixer1: No such device fixme:msvcrt:_spawnve :not translating name Anarchy.exe to locate program fixme:msvcrt:msvcrt_spawn :must dup/kill streams for child process [...] X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 1 (X_CreateWindow) Resource id in failed request: 0x0 Serial number of failed request: 93 Current serial number in output stream: 97
With ExecShield off:
err:wave:OSS_WaveOutInit /dev/mixer1: No such device err:wave:OSS_WaveInInit /dev/mixer1: No such device fixme:msvcrt:_spawnve :not translating name Anarchy.exe to locate program fixme:msvcrt:msvcrt_spawn :must dup/kill streams for child process [...] err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 err:win:WINPOS_GetWinOffset bad hwndFrom = 0xf0047 X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) Major opcode of failed request: 66 (X_PolySegment) Resource id in failed request: 0x0 Serial number of failed request: 2349 Current serial number in output stream: 2367
err:wave:OSS_WaveOutInit /dev/mixer1: No such device err:wave:OSS_WaveInInit /dev/mixer1: No such device fixme:msvcrt:_spawnve :not translating name Anarchy.exe to locate program fixme:msvcrt:msvcrt_spawn :must dup/kill streams for child process [...] err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:CreateWindowExA bad class name "{8856F961-340A-11D0-A96B-00C04FD705A2}" err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 err:win:WINPOS_GetWinOffset bad hwndFrom = 0x10020 X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 1 (X_CreateWindow) Resource id in failed request: 0x0 Serial number of failed request: 428 Current serial number in output stream: 432
I'll try a full rebuild "just in case", although my Wine update script always does a "make depend" before compiling, so I doubt it will change anything. I'll report back if it fixes the problem!
* André Johansen (Sat, 29 May 2004 00:34:22 +0200) wrote: | I just updated from CVS, and weird stuff is happening now. The | version one day ago was fine, so it could be due to this change. [...] | I'll try a full rebuild "just in case", although my Wine update script | always does a "make depend" before compiling, so I doubt it will | change anything. I'll report back if it fixes the problem!
Uhm, as expected, that didn't help. Killing the wineserver process I had running helped, though -- sorry for the spam :)
[testing...]
I've tested it with prelinking and ExecShield now, and it seems to be working fine -- thumbs up :)
Am Freitag, 28. Mai 2004 23:59 schrieb Mike Hearn:
On Fri, 28 May 2004 15:59:23 -0500, Alexandre Julliard wrote:
Log message: Initial version of the Wine preloader, used to reserve memory areas at startup. Based on the work of Mike McCormack.
[snip]
If you observe any odd breakage please let us know.
keep on truckin' -mike
Hello, i don't know if it is releated to his patch, but wine does not longer start wineserver on startup. My second last cvs update was 14h (~7:30 PM UTC) ago. This build did not exhibit the problem.
wine GetAcceptLanguagesA.exe
wine: could not exec wineserver
If i start wineserver -p before wine it works as expected.
My system is SuSE Linux 9.0 Most packages are uptodate but not the kernel
rpm -qa k_athlon
k_athlon-2.4.21-202
I will do regression testing in the evening if it is required.
Bye Stefan