1d8d0b4ec7
linux-user: move hppa cpu loop to hppa directory
...
No code change, only move code from main.c to
hppa/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-19-laurent@vivier.eu >
2018-04-30 09:48:31 +02:00
5a0b6d2286
linux-user: move riscv cpu loop to riscv directory
...
No code change, only move code from main.c to
riscv/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Michael Clark <mjc@sifive.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-18-laurent@vivier.eu >
2018-04-30 09:48:28 +02:00
9397e56497
linux-user: move tilegx cpu loop to tilegx directory
...
No code change, only move code from main.c to
tilegx/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-17-laurent@vivier.eu >
2018-04-30 09:48:26 +02:00
a5fd8ee1f7
linux-user: move s390x cpu loop to s390x directory
...
No code change, only move code from main.c to
s390x/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Cornelia Huck <cohuck@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-16-laurent@vivier.eu >
2018-04-30 09:48:24 +02:00
e256aefe0d
linux-user: move alpha cpu loop to alpha directory
...
No code change, only move code from main.c to
alpha/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-15-laurent@vivier.eu >
2018-04-30 09:48:22 +02:00
ff9803b13b
linux-user: move m68k cpu loop to m68k directory
...
No code change, only move code from main.c to
m68k/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-14-laurent@vivier.eu >
2018-04-30 09:48:20 +02:00
82e8e64553
linux-user: move microblaze cpu loop to microblaze directory
...
No code change, only move code from main.c to
microblaze/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-13-laurent@vivier.eu >
2018-04-30 09:48:18 +02:00
8dd14a9b79
linux-user: move cris cpu loop to cris directory
...
No code change, only move code from main.c to
cris/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-12-laurent@vivier.eu >
2018-04-30 09:48:15 +02:00
c37dcb4fa8
linux-user: move sh4 cpu loop to sh4 directory
...
No code change, only move code from main.c to
sh4/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-11-laurent@vivier.eu >
2018-04-30 09:48:13 +02:00
1ef7bca2e7
linux-user: move openrisc cpu loop to openrisc directory
...
No code change, only move code from main.c to
openrisc/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-10-laurent@vivier.eu >
2018-04-30 09:48:11 +02:00
0ec0f01c9d
linux-user: move nios2 cpu loop to nios2 directory
...
No code change, only move code from main.c to
nios2/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-9-laurent@vivier.eu >
2018-04-30 09:48:09 +02:00
58908ef603
linux-user: move mips/mips64 cpu loop to mips directory
...
No code change, only move code from main.c to
mips/cpu_loop.c.
Include mips/cpu_loop.c in mips64/cpu_loop.c
to avoid to duplicate code.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-8-laurent@vivier.eu >
2018-04-30 09:48:07 +02:00
1140051624
linux-user: move ppc/ppc64 cpu loop to ppc directory
...
No code change, only move code from main.c to
ppc/cpu_loop.c.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-7-laurent@vivier.eu >
2018-04-30 09:48:05 +02:00
d0a28415e6
linux-user: move sparc/sparc64 cpu loop to sparc directory
...
No code change, only move code from main.c to
sparc/cpu_loop.c.
Include sparc/cpu_loop.c in sparc64/cpu_loop.c
to avoid to duplicate code.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180411185651.21351-6-laurent@vivier.eu >
2018-04-30 09:48:03 +02:00
d967351226
linux-user: move arm cpu loop to arm directory
...
No code change, only move code from main.c to
arm/cpu_loop.c and duplicate some macro
defined for both arm and aarch64.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-5-laurent@vivier.eu >
2018-04-30 09:48:01 +02:00
3c439b1762
linux-user: move aarch64 cpu loop to aarch64 directory
...
No code change, only move code from main.c to
aarch64/cpu_loop.c and duplicate some macro
defined for both arm and aarch64.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-4-laurent@vivier.eu >
2018-04-30 09:47:59 +02:00
3f8258c1c8
linux-user: move i386/x86_64 cpu loop to i386 directory
...
No code change, only move code from main.c to
i386/cpu_loop.c.
Include i386/cpu_loop.c in x86_64/cpu_loop.c
to avoid to duplicate code.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-3-laurent@vivier.eu >
2018-04-30 09:47:57 +02:00
cd71c08964
linux-user: create a dummy per arch cpu_loop.c
...
Create a cpu_loop-common.h for future use by
these new files and use it in the existing
main.c
Introduce target_cpu_copy_regs():
declare the function in cpu_loop-common.h
and an empty function for each target,
to move all the cpu_loop prologues to this function.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180411185651.21351-2-laurent@vivier.eu >
2018-04-30 09:47:55 +02:00
cb6ac802ef
linux-user: define TARGET_ARCH_HAS_SETUP_FRAME
...
Instead of calling setup_frame() conditionally to a list of known targets,
define TARGET_ARCH_HAS_SETUP_FRAME if the target provides the function
and call it only if the macro is defined.
Move declarations of setup_frame() and setup_rt_frame() to
linux-user/signal-common.h
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-21-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
9340eddae8
linux-user: move ppc/ppc64 signal.c parts to ppc directory
...
No code change, only move code from signal.c to
ppc/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-20-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
8949bef18b
linux-user: move mips/mips64 signal.c parts to mips directory
...
No code change, only move code from signal.c to
mips/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
mips64/signal.c includes mips/signal.c
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-19-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
9f172adb35
linux-user: move sparc/sparc64 signal.c parts to sparc directory
...
No code change, only move code from signal.c to
sparc/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
sparc64/signal.c includes sparc/signal.c
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-18-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
a075f313c5
linux-user: move i386/x86_64 signal.c parts to i386 directory
...
No code change, only move code from signal.c to
i386/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
x86_64/signal.c includes i386/signal.c
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-17-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
3612667cbb
linux-user: move xtensa signal.c parts to xtensa directory
...
No code change, only move code from signal.c to
xtensa/signal.c, except adding includes and
exporting setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-16-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
aca77d5e59
linux-user: move hppa signal.c parts to hppa directory
...
No code change, only move code from signal.c to
hppa/signal.c, except adding includes and
exporting setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-15-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
9c3221c192
linux-user: move riscv signal.c parts to riscv directory
...
No code change, only move code from signal.c to
riscv/signal.c, except adding includes and
exporting setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-14-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
ea14059a36
linux-user: move tilegx signal.c parts to tilegx directory
...
No code change, only move code from signal.c to
tilegx/signal.c, except adding includes and
exporting setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180424192635.6027-13-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
da04107af3
linux-user: move alpha signal.c parts to alpha directory
...
No code change, only move code from signal.c to
alpha/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-12-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
4495abcc3b
linux-user: move m68k signal.c parts to m68k directory
...
No code change, only move code from signal.c to
m68k/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-11-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
4c4c73e369
linux-user: move s390x signal.c parts to s390x directory
...
No code change, only move code from signal.c to
s390x/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Acked-by: Cornelia Huck <cohuck@redhat.com >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-10-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
17853172f7
linux-user: move openrisc signal.c parts to openrisc directory
...
No code change, only move code from signal.c to
openrisc/signal.c, except adding includes and
exporting setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-9-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
f7cd3e678c
linux-user: move nios2 signal.c parts to nios2 directory
...
No code change, only move code from signal.c to
nios2/signal.c, except adding includes and
exporting setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-8-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
6aa72d7e3c
linux-user: move cris signal.c parts to cris directory
...
No code change, only move code from signal.c to
cris/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-7-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
f9fb3ba359
linux-user: move microblaze signal.c parts to microblaze directory
...
No code change, only move code from signal.c to
microblaze/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-6-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
0f22162a4d
linux-user: move sh4 signal.c parts to sh4 directory
...
No code change, only move code from signal.c to
sh4/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-5-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
5f7645975d
linux-user: move arm signal.c parts to arm directory
...
No code change, only move code from signal.c to
arm/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-4-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
f0352f13fe
linux-user: move aarch64 signal.c parts to aarch64 directory
...
No code change, only move code from signal.c to
aarch64/signal.c, except adding includes and
exporting setup_frame() and setup_rt_frame().
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-3-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
befb7447a0
linux-user: create a dummy per arch signal.c
...
Create a signal-common.h for future use by these new files
and use it in the existing signal.c
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20180424192635.6027-2-laurent@vivier.eu >
2018-04-30 09:47:47 +02:00
2b3f64cbf3
linux-user: Fix getdents emulation for 64 bit guest on 32 bit host
...
Currently we mishandle emulation of the getdents syscall for the
case of a 64 bit guest on a 32 bit host -- it defaults into
the 'host and guest same size' codepath and generates incorrect
structures in the guest buffer.
We can't easily handle the 64-on-32 case using the host getdents
syscall, because the guest struct dirent is bigger than the
host struct dirent, and we might find the host syscall has handed
us back more records than we can fit in the guest buffer after
conversion. Instead, always emulate 64-on-32 getdents with
the host getdents64. This avoids the buffer-overrun problem
because a dirent64 struct is always the same size on any host
and always larger than any architecture's dirent struct.
Reported-by: Henry Wertz <hwertz10@gmail.com >
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Message-Id: <20180419125740.2695-1-peter.maydell@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2018-04-30 09:47:46 +02:00
b02ebad1dc
linux-user: set minimum uname for RISC-V
...
As support for RISC-V was only merged into the mainline kernel at 4.15
it is unlikely that glibc will be happy with a reported kernel version
of 3.8.0. Indeed when I testing binaries created by the current Debian
Sid compiler the tests failed with:
FATAL: kernel too old
Bump the version to the minimum a RISC-V glibc would expect:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/riscv/configure.ac
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Palmer Dabbelt <palmer@sifive.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20180425100218.24785-1-alex.bennee@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2018-04-30 09:47:46 +02:00
bb3ba35f20
linux-user: check that all of AArch64 SVE extended sigframe is writable
...
In commit 8c5931de0a
we added support for SVE extended
sigframe records. These mean that the signal frame might now be
larger than the size of the target_rt_sigframe record, so make sure
we call lock_user on the entire frame size when we're creating it.
(The code for restoring the signal frame already correctly handles
the extended records by locking the 'extra' section separately to the
main section.)
In particular, this fixes a bug even for non-SVE signal frames,
because it extends the locked section to cover the
target_rt_frame_record. Previously this was part of 'struct
target_rt_sigframe', but in commit e1eecd1d9d
we pulled
it out into its own struct, and so locking the target_rt_sigframe
alone doesn't cover it. This bug would mean that we would fail
to correctly handle the case where a signal was taken with
SP pointing 16 bytes into an unwritable page, with the page
immediately below it in memory being writable.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
2018-04-17 12:04:58 +01:00
aac8f55633
linux-user/signal.c: Put AArch64 frame record in the right place
...
AArch64 stack frames include a 'frame record' which holds a pointer
to the next frame record in the chain and the LR on entry to the
function. The procedure calling standard doesn't mandate where
exactly this frame record is in the stack frame, but for signal
frames the kernel puts it right at the top. We used to put it
there too, but in commit 7f0f4208b3
we accidentally put
the "enlarge to the 4K reserved space minimum" check after the
"allow for the frame record" code, rather than before it, with
the effect that the frame record would be inside the reserved
space and immediately after the last used part of it.
Move the frame record back out of the reserved space to where
we used to put it.
This bug shouldn't break any sensible guest code, but test
programs that deliberately look at the internal details
of the signal frame layout will not find what they are
expecting to see.
Fixes: 7f0f4208b3
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Message-id: 20180412140222.2096-1-peter.maydell@linaro.org
2018-04-16 11:52:33 +01:00
675608cb84
Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-2.12-pull-request' into staging
...
# gpg: Signature made Tue 10 Apr 2018 17:00:19 BST
# gpg: using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com >"
# gpg: aka "Laurent Vivier <laurent@vivier.eu >"
# gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com >"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C
* remotes/vivier2/tags/linux-user-for-2.12-pull-request:
linux-user: implement HWCAP bits on MIPS
linux-user: add microblaze/microblazeel magic numbers in qemu-binfmt-conf.sh
linux-user: fix microblaze get_sp_from_cpustate()
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-04-11 11:21:38 +01:00
46a1ee4f39
linux-user: implement HWCAP bits on MIPS
...
Add support for the two currently defined HWCAP bits on MIPS - R6 and
MSA.
Buglink: https://bugs.launchpad.net/qemu/+bug/1754372
Signed-off-by: James Cowgill <james.cowgill@mips.com >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Message-Id: <20180315151348.6451-1-james.cowgill@mips.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2018-04-10 18:00:14 +02:00
a31e7605dd
linux-user: fix microblaze get_sp_from_cpustate()
...
get_sigframe() uses regs[1] and this is actual SP.
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Message-Id: <20180409115212.875-1-laurent@vivier.eu >
2018-04-10 17:41:55 +02:00
7f0f4208b3
linux-user/signal.c: Ensure AArch64 signal frame isn't too small
...
The AArch64 signal frame design was extended for SVE in commit
8c5931de0a
, so that instead of having a fixed setup we
now add various records to the frame, with some of them possibly
overflowing into an extra space outside the original 4K reserved
block in the target_sigcontext. However, we failed to ensure that we
always at least allocate the 4K reserved block. This is ABI, and
some userspace programs rely on it. In particular the dash shell
would segfault if the frame wasn't as big enough.
(Compare the kernel's sigframe_size() function in
arch/arm64/kernel/signal.c.)
Reported-by: Richard Henwood <richard.henwood@arm.com >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-id: 20180409140714.26841-1-peter.maydell@linaro.org
Fixes: https://bugs.launchpad.net/bugs/1761535
Fixes: 8c5931de0a
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-04-10 13:02:25 +01:00
fb4fe32d5b
Merge remote-tracking branch 'remotes/xtensa/tags/20180409-xtensa' into staging
...
Fix file offset for preadv/pwritev linux-user syscalls.
# gpg: Signature made Tue 10 Apr 2018 03:04:24 BST
# gpg: using RSA key 51F9CC91F83FA044
# gpg: Good signature from "Max Filippov <filippov@cadence.com >"
# gpg: aka "Max Filippov <max.filippov@cogentembedded.com >"
# gpg: aka "Max Filippov <jcmvbkbc@gmail.com >"
# Primary key fingerprint: 2B67 854B 98E5 327D CDEB 17D8 51F9 CC91 F83F A044
* remotes/xtensa/tags/20180409-xtensa:
linux-user: fix preadv/pwritev offsets
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-04-10 10:22:45 +01:00
9ac225171c
linux-user: fix preadv/pwritev offsets
...
preadv/pwritev accept low and high parts of file offset in two separate
parameters. When host bitness doesn't match guest bitness these parts
must be appropriately recombined.
Introduce target_to_host_low_high that does this recombination and use
it in preadv/pwritev syscalls.
This fixes glibc testsuite test misc/tst-preadvwritev64.
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com >
2018-04-09 18:57:49 -07:00
71ad102baa
Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-2.12-pull-request' into staging
...
# gpg: Signature made Tue 03 Apr 2018 11:33:31 BST
# gpg: using RSA key F30C38BD3F2FBE3C
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com >"
# gpg: aka "Laurent Vivier <laurent@vivier.eu >"
# gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com >"
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C
* remotes/vivier2/tags/linux-user-for-2.12-pull-request:
linux-user: fix TARGET___O_TMPFILE for sparc
linux-user: define TARGET_ARCH_HAS_KA_RESTORER
linux-user: fix alpha signal emulation
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2018-04-04 09:36:14 +01:00
3ea7f4a226
linux-user: fix TARGET___O_TMPFILE for sparc
...
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Message-Id: <20180402102453.9883-3-laurent@vivier.eu >
2018-04-03 11:50:24 +02:00