From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39561) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLqMk-00031o-Ge for qemu-devel@nongnu.org; Mon, 25 Aug 2014 05:15:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XLqMe-0001gP-GR for qemu-devel@nongnu.org; Mon, 25 Aug 2014 05:15:06 -0400 Received: from cantor2.suse.de ([195.135.220.15]:49898 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLqMe-0001fp-AQ for qemu-devel@nongnu.org; Mon, 25 Aug 2014 05:15:00 -0400 Message-ID: <53FAFE92.9040001@suse.de> Date: Mon, 25 Aug 2014 11:14:58 +0200 From: Alexander Graf MIME-Version: 1.0 References: <20140825090917.GA14835@afflict.kos.to> In-Reply-To: <20140825090917.GA14835@afflict.kos.to> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] linux-user: enabling binfmt P flag List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Riku Voipio , qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, joakim.tjernlund@transmode.se On 25.08.14 11:09, Riku Voipio wrote: > Hi, > > After weekend, I think the solution to using the P flag is to > go back to Joakim's original patch: > > http://lists.gnu.org/archive/html/qemu-devel/2014-07/msg02269.html > > With this, we get: > > If you continue to use qemu-x-static in your binfmt_misc registration, > nothing changes - both old and new qemu work using the old binfmt > registration. > > If you rename the binary qemu-x-binfmt, you need to update the > binfmt_misc register to have P flag and new binary - you get correct > argv with new qemu. Any old qemu you still have around, will stop > working. But with "file not found" error rather than obscurely eating > one of the arguments and running regardless. > > This leaves us with one case - people who are used to running > qemu-x-static ./binary to test single binaries. Distro's will need > leave a symlink from qemu-x-binfmt qemu-x-static. The "-binfmt" string > check doesn't trigger, and qemu works as before. > > The key point: this way nobody's working setup will break, unless they > update binfmt registration. As long as the change is done by users > them self (I need correct argv0 -> I will update binfmt), there is very > little surprise for anyone. > > There will be some fallout once *distributions* change the binfmt - users > will notice their existing qemu chroots stop working with a "file not > found" error for any binary they try to run. > > If we find even this breakage too much, I'm not sure this can be fixed. I would very much prefer if we could stick with only a single binary. And yes, switching semantics when you use binfmt wrappers will hurt for a short while, but after that everyone will have their setups changed and we're safe for the future. Alex