Re: Random Solaris 7 x86 issues

2000-11-13 Thread e. boasson
(I hope this doesn't get me into trouble with the wine-devel mailing list... My Netscape doesn't seem to understand it.) To whomever is interested, A couple of minutes hacking at my Solaris 8 (Sparc) machine during the lunch break yields the attached code that seems to emulate Linux'

RE: Random Solaris 7 x86 issues

2000-11-13 Thread Patrik Stridvall
(I hope this doesn't get me into trouble with the wine-devel mailing list... My Netscape doesn't seem to understand it.) My Microsoft Outlook understands it perfectly. To whomever is interested, I am. :-) A couple of minutes hacking at my Solaris 8 (Sparc) machine during the lunch

RE: Random Solaris 7 x86 issues

2000-11-10 Thread Patrik Stridvall
Here are various things I'm seeing. 1) Running anything produces: err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space, please report 2) Solitaire seems to work fine. 3) Running telnet produces: err:win32:do_relocations FATAL: Need to relocate

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Ulrich Weigand
Patrik Stridvall wrote: OK. mmap on Solaris has slightly different semantics than mmap on Linux if an address is specified and/or MAP_FIXED is specified. The other cases are the same however. I don't remember exactly what the difference is but IIRC on Linux if an address is specified and

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Ulrich Weigand
Alexandre Julliard wrote: Does anybody know exactly what Solaris does? Does it simply round the address to some nearest boundary, or does it pick a completely random address? If it's just rounding we could allocate a larger area and use the part that we wanted, but if the address is

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Alexandre Julliard
Patrik Stridvall [EMAIL PROTECTED] writes: Solaris on the other hand uses the address only as a hint regardless of whether it is page aligned or not unless of course MAP_FIXED is specified. Does anybody know exactly what Solaris does? Does it simply round the address to some nearest

Re: Random Solaris 7 x86 issues

2000-11-10 Thread John Wehle
The problem is the following: if you pass MAP_FIXED to mmap(), it *will* use this address no matter what. Especially, if there are already *other* mappings in that range, they will just be zapped. Yes. :-( One possible solution would be to perform ourselves a check whether the target

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Alexandre Julliard
Ulrich Weigand [EMAIL PROTECTED] writes: So it would appear that Solaris completely ignores the passed address, and just sorts all mmaps() nicely together ;-) Great :-( And what does the address space look like at startup? Where does it allocate the main exe and the .so libraries? Maybe we

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Ulrich Weigand
John Wehle wrote: I started to code this last night using mincore to check each page in the target region one at a time (which should be somewhat portable), I don't think mincore is appropriate, as we must check whether there *is* a mapping, not just whether some of its pages are actually

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Ulrich Weigand
I don't think mincore is appropriate, as we must check whether there *is* a mapping, not just whether some of its pages are actually present in physical memory. Sure it is. The question is did mincore return an *error* for the page being checked (in which case nothing is mapped there)

Re: Random Solaris 7 x86 issues

2000-11-10 Thread Ulrich Weigand
Alexandre Julliard wrote: Great :-( And what does the address space look like at startup? Where does it allocate the main exe and the .so libraries? Maybe we can reserve the addresses we need like 0 and 0x0040 with a MAP_FIXED at startup. Well, my little test app looks like this:

Re: Random Solaris 7 x86 issues

2000-11-10 Thread John Wehle
Note that this is on Sparc, as I don't have access to a Solaris/x86 box. John, does it look much different there? 14420: ./a 08046000 8K read/write/exec [ stack ] 0805 4K read/exec /tmp/a 0806 4K read/write/exec /tmp/a DFB3F000552K read/exec