Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Laurent Vivier
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
Peter Maydell
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
Alex Bennée
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
Peter Maydell
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
Peter Maydell
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
Peter Maydell
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
James Cowgill
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
Laurent Vivier
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
Peter Maydell
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
Peter Maydell
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
Max Filippov
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
Peter Maydell
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
Laurent Vivier
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