From nobody Wed Apr 2 06:46:40 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 1551847910373292.35925658380825; Tue, 5 Mar 2019 20:51:50 -0800 (PST) Received: from localhost ([127.0.0.1]:54311 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1OWx-0001Eb-6p for importer@patchew.org; Tue, 05 Mar 2019 23:51:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1OVb-0000b2-HU for qemu-devel@nongnu.org; Tue, 05 Mar 2019 23:50:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h1OVa-0004Cj-4G for qemu-devel@nongnu.org; Tue, 05 Mar 2019 23:50:23 -0500 Received: from smtp.lg.ehu.es ([158.227.0.66]:23885 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 1h1OVZ-0004Bt-00 for qemu-devel@nongnu.org; Tue, 05 Mar 2019 23:50:22 -0500 Received: from imsva2.lgp.ehu.es (imsva2.lgp.ehu.es [10.0.3.246]) by postfix.smtp2.imsva2 (Postfix) with ESMTPS id 55579565B; Wed, 6 Mar 2019 05:50:19 +0100 (CET) Received: from imsva2.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 226EB5A04F; Wed, 6 Mar 2019 05:50:19 +0100 (CET) Received: from imsva2.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 177295A045; Wed, 6 Mar 2019 05:50:19 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.76]) by imsva2.lgp.ehu.es (Postfix) with ESMTPS; Wed, 6 Mar 2019 05:50:19 +0100 (CET) Received: from 03612eec87fc (unknown [139.47.78.33]) by smtp2 (Postfix) with ESMTPSA id C7B8A565B; Wed, 6 Mar 2019 05:50:18 +0100 (CET) Date: Wed, 6 Mar 2019 04:50:19 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Message-ID: <20190306045019.GF75@03612eec87fc> References: <20190306031221.GA53@03612eec87fc> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190306031221.GA53@03612eec87fc> User-Agent: Mutt/1.11.2 (2019-01-07) X-Greylist: ACL 174 matched, not delayed by milter-greylist-4.4.3 (smtp2); Wed, 06 Mar 2019 05:50:19 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.2.0.1013-24472.004 X-TM-AS-Result: No--4.903-7.0-31-10 X-imss-scan-details: No--4.903-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.2.1013-24472.004 X-TMASE-Result: 10--4.902900-10.000000 X-TMASE-MatchedRID: Y0uQemhUR+E8mRT0SYY6fggKAWhuC2ojb6bRSg4rpzvrKAwxOgrz3ZG4 TFKxKJcilB6IdnaWhV1343G9TapOGAJGd3LsKHhDQpxiLlDD9FWyNcEJTKJGJiIUGQYL+Y0iT8s RnQxSSqdfll+ZbVibhZg6ydcjYFP/ydSy/G+xHpJWeFNzK1vl0vhs+N+bSEhBlHZk9BJGt3J+M/ Y5diIM76s56LhEMRaftF3RbBlJV01bm8EGC/b6ghHuQ9dDJbS2u56wFPSkMVGdCqKtxM6bh3/sD LdkieHyGQSeZUf2jG597G91giQ9lJH0YXYnbGoz/sToY2qzpx5eu6llOoM7BnnDQRq5CiZH9xS3 mVzWUuAojN1lLei7RbQ3tXYURaJSBxbfwvkgfSz07tLA9j4DQq2Q1Q3A+dAk8NporE/4Lx1APwl 4QwYTjB7vri3F/UFCkWacFowkMqcgTttRrEZmoemfp9Bphh8GYRlfAbNtCxYs54z/I19gOVNoeJ YJ3Pr6 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.smtp2.imsva2); Wed, 06 Mar 2019 05:50:19 +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 v3 6/10] qemu-binfmt-conf.sh: generalize to positional 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. The list can be separated by spaces, tabs, newlines or commas. If no positional argument is provided, or when it is 'ALL', 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. Signed-off-by: Unai Martinez-Corral --- scripts/qemu-binfmt-conf.sh | 92 +++++++++++++++++++++++-------------- 1 file changed, 57 insertions(+), 35 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index c113ff131e..2751363089 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -6,6 +6,36 @@ 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 target CPUS is/are in the supported target list +qemu_check_target_list() { + all=3D"$qemu_target_list" + if [ "x$1" =3D "xALL" ] ; then + checked_target_list=3D"$all" + return + fi + list=3D"" + bIFS=3D"$IFS" + IFS=3D$"$IFS", + for target ; do + unknown_target=3D"true" + for cpu in $all ; do + if [ "x$cpu" =3D "x$target" ] ; then + list=3D"$list $target" + unknown_target=3D"false" + break + fi + done + if [ "$unknown_target" =3D "true" ] ; then + IFS=3D"$bIFS" + echo "ERROR: unknown CPU \"$target\"" 1>&2 + usage + exit 1 + fi + done + IFS=3D"$bIFS" + checked_target_list=3D"$list" +} + 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,11 +197,14 @@ qemu_get_family() { usage() { cat <&2 - usage - exit 1 - fi - fi ;; -Q|--path) shift @@ -388,5 +408,7 @@ while true ; do shift done +shift + $CHECK -qemu_set_binfmts +qemu_set_binfmts "$@" -- 2.20.1