From patchwork Wed Mar 6 04:50:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Unai Martinez Corral X-Patchwork-Id: 10840379 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 38C0517E9 for ; Wed, 6 Mar 2019 04:51:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1ED342D115 for ; Wed, 6 Mar 2019 04:51:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1350E2D17F; Wed, 6 Mar 2019 04:51:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 644BC2D17C for ; Wed, 6 Mar 2019 04:51:25 +0000 (UTC) Received: from localhost ([127.0.0.1]:54305 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1OWa-0000cm-LM for patchwork-qemu-devel@patchwork.kernel.org; Tue, 05 Mar 2019 23:51:24 -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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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(-) -- 2.20.1 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="$qemu_target_list" + if [ "x$1" = "xALL" ] ; then + checked_target_list="$all" + return + fi + list="" + bIFS="$IFS" + IFS=$"$IFS", + for target ; do + unknown_target="true" + for cpu in $all ; do + if [ "x$cpu" = "x$target" ] ; then + list="$list $target" + unknown_target="false" + break + fi + done + if [ "$unknown_target" = "true" ] ; then + IFS="$bIFS" + echo "ERROR: unknown CPU \"$target\"" 1>&2 + usage + exit 1 + fi + done + IFS="$bIFS" + checked_target_list="$list" +} + i386_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00' i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' i386_family=i386 @@ -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 "$@"