From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38763) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLqHA-00009I-Jc for qemu-devel@nongnu.org; Mon, 25 Aug 2014 05:09:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XLqH9-0008Jk-Fr for qemu-devel@nongnu.org; Mon, 25 Aug 2014 05:09:20 -0400 Received: from [2001:4b98:dc0:45:216:3eff:fe3d:166f] (port=57166 helo=afflict.kos.to) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XLqH9-0008Je-AR for qemu-devel@nongnu.org; Mon, 25 Aug 2014 05:09:19 -0400 Date: Mon, 25 Aug 2014 12:09:17 +0300 From: Riku Voipio Message-ID: <20140825090917.GA14835@afflict.kos.to> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] linux-user: enabling binfmt P flag List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, joakim.tjernlund@transmode.se, agraf@suse.de 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. Riku