qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Weiser <michael.weiser@gmx.de>
To: Laurent Vivier <laurent@vivier.eu>
Cc: qemu-devel@nongnu.org, Riku Voipio <riku.voipio@iki.fi>
Subject: Re: [Qemu-devel] [PATCH v2 5/5] linux-user: Add aarch64_be magic numbers to qemu-binfmt-conf.sh
Date: Wed, 20 Dec 2017 16:37:15 +0100	[thread overview]
Message-ID: <20171220153715.GC15475@weiser.dinsnail.net> (raw)
In-Reply-To: <6f0ce872-849b-dc5a-25e7-3242a6e5c624@vivier.eu>

Hi Laurent,

On Wed, Dec 20, 2017 at 03:18:34PM +0100, Laurent Vivier wrote:

> > +aarch64_be_magic='\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7'
> > +aarch64_be_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
> > +aarch64_be_family=arm

> You need a different family, something like "armbe", to let
> qemu_set_binfmts() registers aarch64_be on aarch64 and vice-versa.

> The principle is binaries of a given family can be executed natively on
> the host of the same family, so we don't want to register a binfmt
> handler. Is that the case between aarch64 and arch64_be?

Right, while the CPU certainly is capable of switching endianess on the
fly I'm not sure if there is any multilib/multiarch userland setup and
kernel interface that would support mixed little/big-endianess of
arm or aarch64 binaries. Even if, it would likely need further detection
in the script to make sure it's there.

Based on that I suspect that qemu-binfmt-conf.sh's current assignment of
armeb and aarch64 into the arm CPU family is over-optimistic as well.
So I'd suggest treating all of arm, armeb, aarch64 and aarch64_be as
separate families.

Incidentally: I noticed that armeb is missing from qemu_target_list. Is
that intentional?

How about the following changes, maybe split into two patches "add
armeb" and "separate ARM CPU families"?

diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index d69953525c..69ebfe7a6e 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -2,7 +2,7 @@
 # enable automatic i386/ARM/M68K/MIPS/SPARC/PPC/s390/HPPA
 # program execution by the kernel
 
-qemu_target_list="i386 i486 alpha arm sparc32plus ppc ppc64 ppc64le m68k \
+qemu_target_list="i386 i486 alpha arm armeb sparc32plus ppc ppc64 ppc64le m68k \
 mips mipsel mipsn32 mipsn32el mips64 mips64el \
 sh4 sh4eb s390x aarch64 aarch64_be hppa"
 
@@ -24,7 +24,7 @@ arm_family=arm
 
 armeb_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28'
 armeb_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-armeb_family=arm
+armeb_family=armeb
 
 sparc_magic='\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02'
 sparc_mask='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
@@ -90,11 +90,11 @@ s390x_family=s390x
 
 aarch64_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00'
 aarch64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'
-aarch64_family=arm
+aarch64_family=aarch64
 
 aarch64_be_magic='\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7'
 aarch64_be_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'
-aarch64_be_family=arm
+aarch64_be_family=aarch64_be
 
 hppa_magic='\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x0f'
 hppa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff'

Okay?
-- 
bye, Michael

  reply	other threads:[~2017-12-20 16:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-19 20:16 [Qemu-devel] [PATCH v2 0/5] Add aarch64_be-linux-user target Michael Weiser
2017-12-19 20:16 ` [Qemu-devel] [PATCH v2 1/5] linux-user: Add support for big-endian aarch64 Michael Weiser
2017-12-19 20:16 ` [Qemu-devel] [PATCH v2 2/5] linux-user: Add separate aarch64_be uname Michael Weiser
2017-12-20 15:20   ` Laurent Vivier
2017-12-20 15:36     ` Peter Maydell
2017-12-20 15:51       ` Laurent Vivier
2017-12-20 16:01       ` Michael Weiser
2017-12-19 20:16 ` [Qemu-devel] [PATCH v2 3/5] linux-user: Fix endianess of aarch64 signal trampoline Michael Weiser
2017-12-19 20:16 ` [Qemu-devel] [PATCH v2 4/5] configure: Add aarch64_be-linux-user target Michael Weiser
2017-12-20 14:55   ` Laurent Vivier
2017-12-20 15:51     ` Michael Weiser
2017-12-19 20:16 ` [Qemu-devel] [PATCH v2 5/5] linux-user: Add aarch64_be magic numbers to qemu-binfmt-conf.sh Michael Weiser
2017-12-20 14:18   ` Laurent Vivier
2017-12-20 15:37     ` Michael Weiser [this message]
2017-12-20 15:56       ` Laurent Vivier
2017-12-20 16:15         ` Michael Weiser
2017-12-20 16:43           ` Laurent Vivier
2017-12-20 20:29             ` Michael Weiser
2017-12-19 20:45 ` [Qemu-devel] [PATCH v2 0/5] Add aarch64_be-linux-user target no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171220153715.GC15475@weiser.dinsnail.net \
    --to=michael.weiser@gmx.de \
    --cc=laurent@vivier.eu \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).