From nobody Wed Apr 2 07:20:51 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1552421122248676.0999426395318; Tue, 12 Mar 2019 13:05:22 -0700 (PDT) Received: from localhost ([127.0.0.1]:59855 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3neF-0005RF-1r for importer@patchew.org; Tue, 12 Mar 2019 16:05:15 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41822) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3nc5-0003qI-Hw for qemu-devel@nongnu.org; Tue, 12 Mar 2019 16:03:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h3nTe-0000YL-4u for qemu-devel@nongnu.org; Tue, 12 Mar 2019 15:54:19 -0400 Received: from smtp.lg.ehu.es ([158.227.0.66]:43451 helo=smtp.ehu.eus) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h3nTV-0000Bu-7r for qemu-devel@nongnu.org; Tue, 12 Mar 2019 15:54:11 -0400 Received: from imsva1.lgp.ehu.es (imsva1.lgp.ehu.es [10.0.3.245]) by postfix.smtp1.imsva1 (Postfix) with ESMTPS id 282BA3AF0B; Tue, 12 Mar 2019 20:54:03 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E171011004A; Tue, 12 Mar 2019 20:54:02 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D4F9E110045; Tue, 12 Mar 2019 20:54:02 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.73]) by imsva1.lgp.ehu.es (Postfix) with ESMTPS; Tue, 12 Mar 2019 20:54:02 +0100 (CET) Received: from 99bbefa4bcea (unknown [139.47.78.33]) by smtp1 (Postfix) with ESMTPSA id 8B15D3AF0B; Tue, 12 Mar 2019 20:54:02 +0100 (CET) Date: Tue, 12 Mar 2019 19:54:03 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Message-ID: <20190312195403.GG8@99bbefa4bcea> References: <20190312195009.GA6@99bbefa4bcea> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190312195009.GA6@99bbefa4bcea> User-Agent: Mutt/1.11.2 (2019-01-07) X-Greylist: ACL 172 matched, not delayed by milter-greylist-4.4.3 (smtp1); Tue, 12 Mar 2019 20:54:02 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.2.0.1013-24486.002 X-TM-AS-Result: No--4.542-7.0-31-10 X-imss-scan-details: No--4.542-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.2.1013-24486.002 X-TMASE-Result: 10--4.542100-10.000000 X-TMASE-MatchedRID: RsPxVIkBekw8mRT0SYY6fggKAWhuC2ojb6bRSg4rpzvrKAwxOgrz3ZG4 TFKxKJcilB6IdnaWhV1343G9TapOGGJnITZQ7LgcvnSVh24OCE6+JGWINXafLNchlMhSt6Fev4d GcGTuw1dfll+ZbVibhYAvT09hxhi7zO35OKTxh+U2zdLf3NqhdtGuPHzXu+/6c8FZmOUzKzZWFs MQfbcNE+L34j+vjUvNoxDjGqq9g0nPlrFA9QLlUlz+axQLnAVBK9jw4MDFmyJFDR0AKGX+XH/sD LdkieHySFvD9DvvV0KpWL1QDKxiuJH0YXYnbGoz/sToY2qzpx5eu6llOoM7BnnDQRq5CiZHjocz muoPCq11d+LCQ1ipK/jmsIDehmIPFxtgF86j3voKvD4LgYLRQ33FlGH7TkjNcDGDNgnL3pGWQu6 X4OBEyWkb27PmgpTHNELoR8tJGSWd3SaL0pUZ0TIs/pHfy5KvymBsSxwng4cev0UmjjsZI564GT p+lG2X X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 X-Greylist: Sender IP whitelisted, Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (postfix.smtp1.imsva1); Tue, 12 Mar 2019 20:54:03 +0100 (CET) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 158.227.0.66 Subject: [Qemu-devel] [PATCH v7 7/9] qemu-binfmt-conf.sh: generalize to positional TARGETS X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: riku.voipio@iki.fi, laurent@vivier.eu Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This breaks brackward compatibility. Option '--systemd CPU' allows to register binfmt interpreters for a single target architecture or for 'ALL' (of them). This patch generalizes the approach to support it in any mode (default, '--debian' or '--systemd'). To do so, option 'systemd' is changed to be boolean (no args). Then, all the positional arguments are considered to be a list of target architectures. If no positional arguments are provided, all of the architectures in qemu_target_list are registered. Conversely, argument value 'NONE' allows to make a 'dry run' of the script. I.e., checks are executed according to the mode, but no interpreter is registered. Support QEMU_TARGETS environment variable, consistently with 'path', 'suffix', 'persistent' and 'credential', The supported formats are the same as for positional arguments, which have priority. If both the variable and the list of positional arguments are empty, defaults to qemu_target_list. Signed-off-by: Unai Martinez-Corral Reviewed-by: Laurent Vivier --- scripts/qemu-binfmt-conf.sh | 80 +++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index b846313b4e..5d6535bfc9 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -6,6 +6,28 @@ mips mipsel mipsn32 mipsn32el mips64 mips64el \ sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb \ microblaze microblazeel or1k x86_64" +# check if given TARGETS is/are in the supported target list +qemu_check_target_list() { + if [ $# -eq 0 ] ; then + checked_target_list=3D"$qemu_target_list" + return + fi + unset checked_target_list + for target ; do + for cpu in $qemu_target_list ; do + if [ "x$cpu" =3D "x$target" ] ; then + checked_target_list=3D"$checked_target_list $target" + break + fi + done + if [ "x$cpu" !=3D "x$target" ] ; then + echo "ERROR: unknown CPU \"$target\"" 1>&2 + usage + exit 1 + fi + done +} + i386_magic=3D'\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\= x00\x03\x00' i386_mask=3D'\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\= xff\xfe\xff\xff\xff' i386_family=3Di386 @@ -167,14 +189,16 @@ qemu_get_family() { usage() { cat <&2 - usage - exit 1 - fi - fi ;; -Q|--path) shift @@ -390,5 +400,7 @@ while true ; do shift done +shift + $CHECK -qemu_set_binfmts +qemu_set_binfmts "$@" -- 2.21.0