From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MD8w3-0006yW-Aj for qemu-devel@nongnu.org; Sat, 06 Jun 2009 23:20:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MD8vy-0006yK-OK for qemu-devel@nongnu.org; Sat, 06 Jun 2009 23:20:39 -0400 Received: from [199.232.76.173] (port=39709 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MD8vy-0006yH-Ip for qemu-devel@nongnu.org; Sat, 06 Jun 2009 23:20:34 -0400 Received: from main.gmane.org ([80.91.229.2]:60289 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MD8vx-00018O-Nf for qemu-devel@nongnu.org; Sat, 06 Jun 2009 23:20:34 -0400 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1MD8vv-0003fA-Pz for qemu-devel@nongnu.org; Sun, 07 Jun 2009 03:20:31 +0000 Received: from loft1436.serverloft.com ([85.25.120.147]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 07 Jun 2009 03:20:31 +0000 Received: from I.Levashew by loft1436.serverloft.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 07 Jun 2009 03:20:31 +0000 From: Ivan Levashew Date: Sun, 07 Jun 2009 10:19:26 +0700 Message-ID: References: <200906062233.43397.paul@codesourcery.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit In-Reply-To: <200906062233.43397.paul@codesourcery.com> Sender: news Subject: [Qemu-devel] Re: User mode linux for Mac OS X with qemu List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Paul Brook wrote: > > Doing cross emulation is in theory possible, however in practice it gets > extremely messy for anything other than the trivial case and it's unclear > whether it's worth the effort, or whether qemu is the appropriate place to do > this (c.f. WINE). > One application of it is using Linux/Q instead of wine and java. Another application (my dream) is deterministic build system. Community yell loudly when OpenOffice fails to render 1:1 document from Microsoft Office. However, it is often unnoticed that it's insanely hard to do 1:1 build of any randomly picked "open source" build. Pain starts from the very beginning: configure. It requires a prefix as part of its operation. Strange enough that it doesn't ask for command line parameters or program launch date or whatever else parameter unknown prior to the moment of execution. Compilers also like putting filenames (including pathes) into binaries. Autoconf, m4, pkg-config, lots of tools that make build result dependent on host configuration. Every factor commits to denying the fourth freedom, freedom to improve. Anybody willing to fix the problem feels like an elephant in a crockery shop. One can never be sure that he hasn't forgot some essential compiler flag if he can't verify it. Ability to build 1:1 is the ultimate verify. If I can build original program 1:1, I can be pretty sure that my fix will be the only change I've maid to the compiled program. It is often the case when I know how to fix something but not doing it because building something is never gonna be a short journey. A virtual machine (kinda Cygwin) might cure some of the diseases. Cygwin is a good example here. There are no symlinks on PreVista Windows, but Cygwin provides an illusion that they exist. A virtual machine of my dream have a tweakable namespace (kinda Plan 9) because it aids very much in creating a deterministic build environment. Full-blown VM is a) way too big gun for precise shooting b) doesn't provide a tweakable namespace Nix package manager is deterministic, but it takes some time to port something into Nix. Nix puts every compiled package into dedicated directory. Every directory needs to be mentioned in include,lib,path lists. I think that tweaked namespace is a simpler solution. -- If you want to get to the top, you have to start at the bottom