[Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target

Michael Weiser posted 4 patches 6 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20171219151636.5162-1-michael.weiser@gmx.de
Test checkpatch failed
Test docker passed
Test ppc passed
Test s390x passed
There is a newer version of this series
configure                                 |  9 +++++----
default-configs/aarch64_be-linux-user.mak |  1 +
linux-user/aarch64/target_syscall.h       |  4 ++++
linux-user/main.c                         |  6 ++++++
linux-user/signal.c                       | 10 +++++++---
5 files changed, 23 insertions(+), 7 deletions(-)
create mode 100644 default-configs/aarch64_be-linux-user.mak
[Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target
Posted by Michael Weiser 6 years, 4 months ago
Hello,

below patches add support for big-endian aarch64 to linux-user. Almost
everything is already in place. The patches just set up the CPU flags as
required for big-endianess, add a distinction in uname and make sure the
instructions for the signal trampoline end up in memory little-endian.
Finally, configure is extended to allow building of a
aarch64_be-linux-user target.

With this I am able to run individual aarch64_be binaries as well as
chroot into a full-blown aarch64_be userland using binfmt_misc, running
and compiling things (Gentoo crossdev/native).

Thanks,
Michael

Michael Weiser (4):
  linux-user: Add support for big-endian aarch64
  linux-user: Add separate aarch64_be uname
  linux-user: Fix endianess of aarch64 signal trampoline
  configure: Add aarch64_be-linux-user target

 configure                                 |  9 +++++----
 default-configs/aarch64_be-linux-user.mak |  1 +
 linux-user/aarch64/target_syscall.h       |  4 ++++
 linux-user/main.c                         |  6 ++++++
 linux-user/signal.c                       | 10 +++++++---
 5 files changed, 23 insertions(+), 7 deletions(-)
 create mode 100644 default-configs/aarch64_be-linux-user.mak

-- 
2.15.1


Re: [Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target
Posted by Richard Henderson 6 years, 4 months ago
On 12/19/2017 07:16 AM, Michael Weiser wrote:
> Michael Weiser (4):
>   linux-user: Add support for big-endian aarch64
>   linux-user: Add separate aarch64_be uname
>   linux-user: Fix endianess of aarch64 signal trampoline
>   configure: Add aarch64_be-linux-user target

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

Re: [Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target
Posted by Laurent Vivier 6 years, 4 months ago
Le 19/12/2017 à 16:16, Michael Weiser a écrit :
> Hello,
> 
> below patches add support for big-endian aarch64 to linux-user. Almost
> everything is already in place. The patches just set up the CPU flags as
> required for big-endianess, add a distinction in uname and make sure the
> instructions for the signal trampoline end up in memory little-endian.
> Finally, configure is extended to allow building of a
> aarch64_be-linux-user target.
> 
> With this I am able to run individual aarch64_be binaries as well as
> chroot into a full-blown aarch64_be userland using binfmt_misc, running
> and compiling things (Gentoo crossdev/native).

Could you also update scripts/qemu-binfmt-conf.sh for the aarch64_be magic?

Thanks,
Laurent

Re: [Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target
Posted by Michael Weiser 6 years, 4 months ago
Hello Laurent,

On Tue, Dec 19, 2017 at 05:17:35PM +0100, Laurent Vivier wrote:

> > below patches add support for big-endian aarch64 to linux-user. Almost

> Could you also update scripts/qemu-binfmt-conf.sh for the aarch64_be magic?

Done. v2 forthcoming.
-- 
Bye,
Michael

Re: [Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target
Posted by no-reply@patchew.org 6 years, 4 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20171219151636.5162-1-michael.weiser@gmx.de
Subject: [Qemu-devel] [PATCH 0/4] Add aarch64_be-linux-user target

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
5ac57ff210 configure: Add aarch64_be-linux-user target
07335652c6 linux-user: Fix endianess of aarch64 signal trampoline
ee4c6e2e72 linux-user: Add separate aarch64_be uname
1b214cd96a linux-user: Add support for big-endian aarch64

=== OUTPUT BEGIN ===
Checking PATCH 1/4: linux-user: Add support for big-endian aarch64...
Checking PATCH 2/4: linux-user: Add separate aarch64_be uname...
Checking PATCH 3/4: linux-user: Fix endianess of aarch64 signal trampoline...
ERROR: code indent should never use tabs
#26: FILE: linux-user/signal.c:1603:
+^I * mov x8,#__NR_rt_sigreturn; svc #0$

ERROR: code indent should never use tabs
#27: FILE: linux-user/signal.c:1604:
+^I * Since these are instructions they need to be put as little-endian$

ERROR: code indent should never use tabs
#28: FILE: linux-user/signal.c:1605:
+^I * regardless of target default or current CPU endianness.$

ERROR: code indent should never use tabs
#29: FILE: linux-user/signal.c:1606:
+^I */$

total: 4 errors, 0 warnings, 16 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 4/4: configure: Add aarch64_be-linux-user target...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org