From owner-freebsd-hackers@FreeBSD.ORG Sat Jul 22 17:14:23 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E716016A4DA; Sat, 22 Jul 2006 17:14:22 +0000 (UTC) (envelope-from lofi@freebsd.org) Received: from mail-in-07.arcor-online.net (mail-in-07.arcor-online.net [151.189.21.47]) by mx1.FreeBSD.org (Postfix) with ESMTP id 155C543D45; Sat, 22 Jul 2006 17:14:22 +0000 (GMT) (envelope-from lofi@freebsd.org) Received: from mail-in-09-z2.arcor-online.net (mail-in-09-z2.arcor-online.net [151.189.8.21]) by mail-in-07.arcor-online.net (Postfix) with ESMTP id D21D919F8DD; Sat, 22 Jul 2006 19:14:20 +0200 (CEST) Received: from mail-in-08.arcor-online.net (mail-in-08.arcor-online.net [151.189.21.48]) by mail-in-09-z2.arcor-online.net (Postfix) with ESMTP id C1B45980CB; Sat, 22 Jul 2006 19:14:20 +0200 (CEST) Received: from lofi.dyndns.org (dslb-084-061-132-249.pools.arcor-ip.net [84.61.132.249]) by mail-in-08.arcor-online.net (Postfix) with ESMTP id 380471615D9; Sat, 22 Jul 2006 19:14:20 +0200 (CEST) Received: from kiste.my.domain (root@kiste.my.domain [192.168.8.4]) by lofi.dyndns.org (8.13.4/8.13.3) with ESMTP id k6MHEG9h031871 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 22 Jul 2006 19:14:16 +0200 (CEST) (envelope-from lofi@freebsd.org) Received: from kiste.my.domain (lofi@localhost [127.0.0.1]) by kiste.my.domain (8.13.6/8.13.4) with ESMTP id k6MHEGeh074844; Sat, 22 Jul 2006 19:14:16 +0200 (CEST) (envelope-from lofi@freebsd.org) Received: from localhost (localhost [[UNIX: localhost]]) by kiste.my.domain (8.13.6/8.13.4/Submit) id k6MHEFft074843; Sat, 22 Jul 2006 19:14:15 +0200 (CEST) (envelope-from lofi@freebsd.org) X-Authentication-Warning: kiste.my.domain: lofi set sender to lofi@freebsd.org using -f From: Michael Nottebrock To: freebsd-hackers@freebsd.org Date: Sat, 22 Jul 2006 19:14:11 +0200 User-Agent: KMail/1.9.3 X-Face: =Ym$`&q\+S2X$4`X%x%6"L4>Y, $]<":'L%c9"#7#`2tb&E&wsN31on!N\)3BD[g<.jnfV[ 3#>XchLK,o; >bD>c:]^; :>0>vyZ.X[,63GW`&M>}nYnr]-Fp``,[[@lJ!QL|sfW!s)A2!* vNkB/|L->&QdSbQg X-Virus-Scanned: by amavisd-new Cc: freebsd-emulation@freebsd.org Subject: WINE vs. FreeBSD X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Jul 2006 17:14:23 -0000 --nextPart6146326.I1hCXOmlRH Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Dear -hackers and -emulation readers, I would like to call your attention to a few long-standing problems that ha= ve=20 so far prevented WINE from living up to its capabilities on FreeBSD. I am afraid that I still don't fully grasp the scope of the problem, nor do= I=20 have a clear idea of what the solution might be, but what I've gathered so= =20 far is this: WINE does have certain requirements regarding memory allocation. In particu= lar=20 it (or Windows, rather) really wants a few memory ranges for itself: (from wine-0.9.17/loader/preloader.c): * 0x00000000 - 0x00110000 the DOS area * 0x80000000 - 0x81000000 the shared heap * ??? - ??? the PE binary load address (usually starting a= t=20 0x00400000) The first two are particularly important for WINE running in win98 (or=20 earlier) emulation mode, which is currently completely broken on FreeBSD,=20 since those two memory ranges tend to be unavailable. The preloader bit from which this is quoted is WINE's "own shared object=20 loader that reserves memory that is important to Wine, and then loads the=20 main binary and its ELF interpreter", and obviously does not work right on FreeBSD. I'm not sure whether it can be made to or not, perhaps somebody familiar with both our VM and runtime linker could take a look. Some more references: http://www.winehq.org/pipermail/wine-devel/2004-December/031750.html http://bugs.winehq.org/show_bug.cgi?id=3D5732 The other big issue with WINE on FreeBSD seems to be our threading support.= =20 WINE quite reliably manages to confuse libpthread, see http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dthreads/100701. On SMP machine= s,=20 I've even been able to trigger kernel panics with WINE (in win2k+ emulation= =20 mode) by merely hitting the close button on a windows application (and WINE= =20 subsequently shutting down): http://lists.freebsd.org/pipermail/freebsd-stable/2006-June/026219.html. WINE's threads interface can be found in loader/pthread.c and=20 loader/kthread.c - again, it would be great, if someone to whom that sort o= f=20 code means more than just random gibberish could take a look. Cheers, =2D-=20 ,_, | Michael Nottebrock | lofi@freebsd.org (/^ ^\) | FreeBSD - The Power to Serve | http://www.freebsd.org \u/ | K Desktop Environment on FreeBSD | http://freebsd.kde.org --nextPart6146326.I1hCXOmlRH Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (FreeBSD) iD8DBQBEwlznXhc68WspdLARAvC4AKCEOdaRjbJHRXLiGXJ58chDdBc1gACfVV/e CHFuqVURFbO+eOQCz7qLYVc= =1K6U -----END PGP SIGNATURE----- --nextPart6146326.I1hCXOmlRH--