[haiku-bugs] [Haiku] #9205: Wine needs some mmap improvements

  • From: "AndreH" <trac@xxxxxxxxxxxx>
  • Date: Fri, 23 Nov 2012 18:08:54 -0000

#9205: Wine needs some mmap improvements
-------------------------+---------------------------
 Reporter:  AndreH       |        Owner:  nobody
     Type:  enhancement  |       Status:  new
 Priority:  normal       |    Milestone:  Unscheduled
Component:  - General    |      Version:  R1/alpha4
 Keywords:  mmap         |   Blocked By:
 Blocking:               |  Has a Patch:  0
 Platform:  All          |
-------------------------+---------------------------
 rev. 44678 in VirtualBox

 As Wine code occasionally relies on the Linux behaviour, e.g. to be able
 to map non-relocatable PE executables to their proper start addresses, or
 to map the DOS memory to 0, we need some mmap [3] changes on Haiku to give
 Wine a chance to run.

 I attached a strace log that shows what's happening when you try to run
 Wine.
 Wine wants to mmap 0x7ffe0000 with reserve_area [1] and get's pointers
 back like 0x80000000 or 0x00002305.

 So what we need from Haiku is MAP_TRYFIXED and some free memory areas.
 i'd say we are talking about:
 0x00000000-0x00010000 (maybe)
 0x00110000-0x40000000
 0x7ffe0000-0x80000000
 and most likely more

 We are lucky here, with BeOS it didn't work as the kernel was in the lower
 space, Haiku doesn't do this, that's great.
 I've put some information together at [2] and i'll try to get as much
 changes into upstream Wine to let it run on Haiku. Still i kindly ask you
 to do something about this bug, otherwise i can't argue to get my changes
 in.

 [1]
 
http://source.winehq.org/git/wine.git/blob/479b7bcf604f40929b1f600f31f8d7dfc8b6c991:/libs/wine/mmap.c#l251
 [2] http://wiki.winehq.org/Haiku
 [3]
 
http://code.metager.de/source/xref/haiku/src/system/libroot/posix/sys/mman.cpp#89

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/9205>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: