From patchwork Mon Mar 11 10:30:29 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: 10847297 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 DB9266C2 for ; Mon, 11 Mar 2019 10:51:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1B3B28FC6 for ; Mon, 11 Mar 2019 10:51:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BFF962907E; Mon, 11 Mar 2019 10:51:35 +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 223A628FC6 for ; Mon, 11 Mar 2019 10:51:35 +0000 (UTC) Received: from localhost ([127.0.0.1]:59460 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3IWs-0000Vw-Db for patchwork-qemu-devel@patchwork.kernel.org; Mon, 11 Mar 2019 06:51:34 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36712) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3ICV-000061-3g for qemu-devel@nongnu.org; Mon, 11 Mar 2019 06:30:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h3ICT-0001Sa-In for qemu-devel@nongnu.org; Mon, 11 Mar 2019 06:30:31 -0400 Received: from smtp.lg.ehu.es ([158.227.0.66]:25199 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 1h3ICT-0001QF-5G for qemu-devel@nongnu.org; Mon, 11 Mar 2019 06:30:29 -0400 Received: from imsva1.lgp.ehu.es (imsva1.lgp.ehu.es [10.0.3.245]) by postfix.smtp1.imsva1 (Postfix) with ESMTPS id 2724A3F9E4; Mon, 11 Mar 2019 11:30:28 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E3B7D110053; Mon, 11 Mar 2019 11:30:27 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E1DC9110052; Mon, 11 Mar 2019 11:30:27 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.73]) by imsva1.lgp.ehu.es (Postfix) with ESMTPS; Mon, 11 Mar 2019 11:30:27 +0100 (CET) Received: from 765644dd90e5 (unknown [139.47.78.33]) by smtp1 (Postfix) with ESMTPSA id 9C0003F955; Mon, 11 Mar 2019 11:30:27 +0100 (CET) Date: Mon, 11 Mar 2019 10:30:29 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Message-ID: <20190311103029.GF16@765644dd90e5> References: <20190311101428.GA11@765644dd90e5> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190311101428.GA11@765644dd90e5> User-Agent: Mutt/1.11.2 (2019-01-07) X-Greylist: ACL 177 matched, not delayed by milter-greylist-4.4.3 (smtp1); Mon, 11 Mar 2019 11:30:27 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.2.0.1013-24482.007 X-TM-AS-Result: No--2.043-7.0-31-10 X-imss-scan-details: No--2.043-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.2.1013-24482.007 X-TMASE-Result: 10--2.042900-10.000000 X-TMASE-MatchedRID: 4y9/ylYYqyY8mRT0SYY6fvYiLRVJ915DveCbyZ3xax5HZg0gWH5yUQfo RwTLQ8VIpHvdAjbW539ieltWxtWjGy3RaVbWzsRp9Jn/ZrGuc8EaJoVUL0MaNzdlsYL2g/87n9u 6ZDHvy7cknFdUfZfRaaXPYx1TI3qZTs+YhD8Ns1FN3UUbIf4eslAI6wCVrE3vDgB6l2o8FRhCcg 190NG0Ljalfx8z8PtAYXgS1C6OPWxvH7GZAcw0g+G5dRZCgxC31KoSW5Ji1Xs1LB46LFAAkgam/ 9j16xv9P+TN275v+89/JgN7Aw6tAObxq0gs7dfTFezSmIXNZTn6C0ePs7A07QkL5VmLaBAR4rbn YvSx/QbdwHkrHpFenZ+EBM+RyoQK1AdGu2SqQpgSQ3Bwr7YSsqQ18RnnV6NJSLiCLHBuCM6UNTR WRrobw/1GdNhzqrZ+U6vjcrlULviG4Vm5mi7aTZJveFYVlGPb5X9ayHVcJYs= 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); Mon, 11 Mar 2019 11:30:28 +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 v4 7/10] qemu-binfmt-conf.sh: generalize CPU 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+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. 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 --- scripts/qemu-binfmt-conf.sh | 80 +++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 35 deletions(-) -- 2.21.0 diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 13e619794c..fde78517ff 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -6,6 +6,27 @@ 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="$qemu_target_list" + return + fi + for target ; do + for cpu in $qemu_target_list ; do + if [ "x$cpu" = "x$target" ] ; then + checked_target_list="$checked_target_list $target" + break + fi + done + if [ "$unknown_target" = "true" ] ; then + echo "ERROR: unknown CPU \"$target\"" 1>&2 + usage + exit 1 + fi + done +} + 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,21 +188,25 @@ qemu_get_family() { usage() { cat <&2 - usage - exit 1 - fi - fi ;; -Q|--path) shift @@ -384,5 +392,7 @@ while true ; do shift done +shift + $CHECK -qemu_set_binfmts +qemu_set_binfmts "$@"