emulators/linux-wine: Help in porting to FreeBSD

Jung-uk Kim jkim at FreeBSD.org
Tue Mar 6 23:41:11 UTC 2007


On Tuesday 06 March 2007 09:01 am, Alexander Leidinger wrote:
> Quoting Scot Hetzel <swhetzel at gmail.com> (from Sat, 14 Oct 2006
>
> 00:55:17 -0500):
> > I'm trying to create a port for emulators/linux-wine, so that we
> > can at least have wine running on FreeBSD/amd64 using the
> > linuxator.  This would then silence users who want wine
> > (amd64/104311) to run under FreeBSD/amd64.
> >
> > Currently, I am having a problem running linux-wine.  When it is
> > run as either root or as a user I get the following error:
> >
> > $ /compat/linux/usr/bin/wine
> > wine: failed to initialize: /usr/lib/wine/ntdll.dll.so: failed to
> > map segment from shared object: Cannot allocate memory
>
> Do you get the same error with a recent current? I hope it may be
> fixed with the mmap changes. But it may also be the way the memory
> is laid out in FreeBSD vs. Linux. IIRC the native wine had a
> similar problem until someone fixed the code for wine on FreeBSD.
> But I'm not sure about this.

See:

http://bugs.winehq.org/show_bug.cgi?id=2609

FYI, this is ktrace from Linux Wine binary:

# /usr/compat/linux/usr/bin/wine --version
wine-0.9.27

----------------------
--- Skipped ---
  1964 wine-preloader CALL  linux_mmap2(0x81000000,0x7efe0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1 errno 12 Cannot allocate memory
  1964 wine-preloader CALL  linux_mmap2(0x81000000,0x3f7f0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0x3f7f0000)
  1964 wine-preloader RET   munmap 0
  1964 wine-preloader CALL  linux_mmap2(0x81000000,0x1fbf0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0x1fbf0000)
  1964 wine-preloader RET   munmap 0
  1964 wine-preloader CALL  linux_mmap2(0x81000000,0xfdf0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0xfdf0000)
  1964 wine-preloader RET   munmap 0
--- Skipped ---
  1964 wine-preloader CALL  linux_mmap2(0x81010000,0x20000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0x20000)
  1964 wine-preloader RET   munmap 0
  1964 wine-preloader CALL  linux_mmap2(0x81010000,0x10000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0x10000)
  1964 wine-preloader RET   munmap 0
  1964 wine-preloader CALL  linux_mmap2(0x81020000,0x10000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0x10000)
  1964 wine-preloader RET   munmap 0
--- Skipped ---
  1964 wine-preloader CALL  linux_mmap2(0x9c260000,0x10000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675206656/0x9c266000
  1964 wine-preloader CALL  munmap(0x9c266000,0x10000)
  1964 wine-preloader RET   munmap 0
  1964 wine-preloader CALL  linux_mmap2(0x9c270000,0x10000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675165696/0x9c270000
  1964 wine-preloader CALL  linux_mmap2(0x9c280000,0x200000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1675100160/0x9c280000
  1964 wine-preloader CALL  linux_mmap2(0x9c480000,0x7f0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1673003008/0x9c480000
  1964 wine-preloader CALL  linux_mmap2(0x9cc70000,0x3f80000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1664679936/0x9cc70000
  1964 wine-preloader CALL  linux_mmap2(0xa0bf0000,0x1fc00000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1598095360/0xa0bf0000
  1964 wine-preloader CALL  linux_mmap2(0xc07f0000,0x3f7f0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1 errno 12 Cannot allocate memory
  1964 wine-preloader CALL  linux_mmap2(0xc07f0000,0x1fbf0000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1065418752/0xc07f0000
  1964 wine-preloader CALL  linux_mmap2(0xe03e0000,0x1fc00000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1 errno 12 Cannot allocate memory
--- Skipped ---
  1964 wine-preloader CALL  linux_mmap2(0xfffd0000,0x10000,0,0x4022,0xffffffff,0)
  1964 wine-preloader RET   linux_mmap2 -1 errno 12 Cannot allocate memory
  1964 wine-preloader CALL  linux_sys_futex(0x9c264050,0x1,0x7fffffff,0,0xffffd27c,0xffffd218)
  1964 wine-preloader RET   linux_sys_futex 1
  1964 wine-preloader CALL  linux_open(0x7c003110,0,0x9c0094eb)
  1964 wine-preloader NAMI  "/compat/linux/usr/lib/wine/ntdll.dll.so"
  1964 wine-preloader NAMI  "/compat/linux"
  1964 wine-preloader NAMI  "/compat/linux/usr/lib/wine/ntdll.dll.so"
  1964 wine-preloader RET   linux_open 3
  1964 wine-preloader CALL  read(0x3,0xffffccb0,0x200)
--- Skipped ---
  1964 wine-preloader CALL  linux_mmap(0xffffcab0)
  1964 wine-preloader RET   linux_mmap -1 errno 12 Cannot allocate memory
  1964 wine-preloader CALL  close(0x3)
  1964 wine-preloader RET   close 0
  1964 wine-preloader CALL  linux_open(0x7c003110,0,0)
  1964 wine-preloader NAMI  "/compat/linux/usr/lib/wine/ntdll.dll.so"
  1964 wine-preloader NAMI  "/compat/linux"
  1964 wine-preloader NAMI  "/compat/linux/usr/lib/wine/ntdll.dll.so"
--- Skipped ---
  1964 wine-preloader CALL  linux_mmap(0xffffcab0)
  1964 wine-preloader RET   linux_mmap -1 errno 12 Cannot allocate memory
----------------------

I don't think this is really a Linuxulator bug.

Jung-uk Kim


More information about the freebsd-emulation mailing list