On Thu, 2005-06-16 at 17:36 +0100, Paul Brook wrote:
I first just tried without the SDL-devel libs, but that was the same,
and the above mentioned thread suggested that SDL may be a cause
(although I suspect we may be talking of different problems).
Did you actually do a clean build after
I've encountered what appears to be a race condition in arm-linux-user:
sometimes the program qemu is running will hang forever and sometimes it
will complete. After digging about there appears to be at least two
problems:
1) An initial cause of a SIGSEGV
2) The incorrect handling of the
On Fri, 2007-08-24 at 15:16 -0600, Thayne Harbaugh wrote:
I've encountered what appears to be a race condition in arm-linux-user:
sometimes the program qemu is running will hang forever and sometimes it
will complete. After digging about there appears to be at least two
problems:
After
Has anyone seen an insta-segfault with i386-linux-user qemu? I've
compiled qemu-0.9.0 as well as qemu-cvs (2007-09-18) with gcc-3.4 and
-fno-strict-aliasing on an amd64 and I get this:
./i386-linux-user/qemu-i386 --help
Segmentation fault
From GDB:
Program received signal SIGSEGV, Segmentation
On Tue, 2007-09-18 at 15:53 +0200, Ronald wrote:
Thayne Harbaugh schreef:
Has anyone seen an insta-segfault with i386-linux-user qemu? I've
compiled qemu-0.9.0 as well as qemu-cvs (2007-09-18) with gcc-3.4 and
-fno-strict-aliasing on an amd64 and I get this:
./i386-linux-user/qemu-i386
On Tue, 2007-09-18 at 21:11 +0200, Alexander Graf wrote:
On Sep 18, 2007, at 8:25 PM, Thayne Harbaugh wrote:
On Tue, 2007-09-18 at 15:53 +0200, Ronald wrote:
Thayne Harbaugh schreef:
SNIP
./i386-linux-user/qemu-i386 --help
Segmentation fault
From GDB:
Program received signal
I have a series of patches to add *at() syscalls to linux-user. The
patches have minor inter-dependencies due to adjacent modifications in
some files.
This patch adds the utimensat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:16:40.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:17:45.0 -0600
@@
This patch adds the openat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:18:58.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:19:38.0 -0600
@@ -155,6
This patch adds the mkdirat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:19:38.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:20:59.0 -0600
@@ -155,6
This patch adds the mknodat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:20:59.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:21:49.0 -0600
@@ -156,6
This patch adds the fchownat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:21:49.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:22:58.0 -0600
@@
This patch adds the unlinkat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:22:58.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:23:52.0 -0600
@@
This patch adds the renameat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:23:52.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:24:47.0 -0600
@@
This patch adds the linkat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:24:47.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:25:51.0 -0600
@@ -156,6
This patch adds the symlinkat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:25:51.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:26:51.0 -0600
@@
This patch adds the readlinkat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:26:51.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:27:29.0 -0600
@@
This patch adds the fchmodat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:27:29.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:28:02.0 -0600
@@
This patch adds the faccessat syscall to linux-user.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:28:02.0 -0600
+++ qemu/linux-user/syscall.c 2007-09-19 06:28:30.0 -0600
@@
This patch puts stat64 functionality into a function rather than using
gotos for all the locations that copy stat64 buffers to user space.
This patch is necessary for following fstatat64 syscall patch.
Index: qemu/linux-user/syscall.c
This patch adds the fstatat syscall to linux-user. To depends on the
previous stat64_put_user patch.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-09-19 06:28:34.0 -0600
+++
On Mon, 2007-09-24 at 13:45 -0600, Thayne Harbaugh wrote:
On Sun, 2007-09-23 at 12:58 -0400, Stuart Anderson wrote:
On Sun, 23 Sep 2007, Thiemo Seufer wrote:
Thayne Harbaugh wrote:
This patch adds the utimensat syscall to linux-user
Oops!
Doesn't build:
gcc-3.4 -g -Wl,-T
I've often wondered why there isn't a tswap_target_ulong(). Seems like
using tswap32() is asking for trouble.
This patch adds the sigaltstack() syscall for linux-user.
Index: qemu/linux-user/signal.c
===
--- qemu.orig/linux-user/signal.c 2007-09-24 22:45:48.0 -0600
+++ qemu/linux-user/signal.c 2007-09-24 22:56:18.0 -0600
@@
On Mon, 2007-09-24 at 23:04 -0600, Thayne Harbaugh wrote:
This patch adds the sigaltstack() syscall for linux-user.
The previous patch relied on the EFAULT patch, this newer version does
not. It also fixes a few places that used tswap32() that should use
__put_user().
Index: qemu/linux-user
The linux-user getpriority() syscall goes through the libc wrapper.
This causes a problem because the libc wrapper remaps the return value
from the kernel. This patch calls the kernel getpriority syscall
directly.
Index: qemu/linux-user/syscall.c
On Thu, 2007-09-27 at 16:08 +0200, Jocelyn Mayer wrote:
On Thu, 2007-09-27 at 13:57 +, Thiemo Seufer wrote:
CVSROOT:/sources/qemu
Module name:qemu
Changes by: Thiemo Seufer ths 07/09/27 13:57:58
Modified files:
linux-user : qemu.h signal.c syscall.c
I've been using the patch posted by Kirill Shutemov
(http://www.mail-archive.com/qemu-devel@nongnu.org/msg10893.html) for
forcing mmap() addresses on 64-bit hosts to be 32-bit clean. I just
discovered a minor problem with the patch: MAP_32BIT is not a valid flag
to mremap() and will cause
Install will fail if $(TOOLS) is empty - which happens when only user
emulation is built
Index: qemu/Makefile
===
--- qemu.orig/Makefile 2007-10-09 21:31:43.0 -0600
+++ qemu/Makefile 2007-10-09 21:40:05.0 -0600
On Fri, 2007-10-12 at 18:12 +0300, Felipe Contreras wrote:
Hi,
When I try to use codesourcery's toolchain arm-2006q3-27 in my Fedora
7 box I always have the following issue:
qemu: Unsupported syscall: 983045
Yep, I've seen that before.
I guess it's a problem of NPTL incompatibility.
On Wed, 2007-10-10 at 21:38 -0600, Thayne Harbaugh wrote:
SNIP
I have noticed that many functions in syscall.c return a *host* errno
when a *target* errno should be return. At the same time, there are
several places in syscall.c:do_syscall() that immediately return an
errno rather than
On Thu, 2007-10-11 at 14:10 +0200, J. Mayer wrote:
On Wed, 2007-10-10 at 21:38 -0600, Thayne Harbaugh wrote:
SNIP
I have noticed that many functions in syscall.c return a *host* errno
when a *target* errno should be return. At the same time, there are
several places
On Thu, 2007-10-18 at 23:46 +0200, Ronan Keryell wrote:
Anybody kind enough to have a look at :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446868
I've asked some other people and they hit the same issue.
It's not clear to me where the bug is since it happens very early in the
On Sat, 2007-10-20 at 21:34 +0100, Thiemo Seufer wrote:
Thayne Harbaugh wrote:
On Fri, 2007-10-12 at 18:12 +0300, Felipe Contreras wrote:
Hi,
When I try to use codesourcery's toolchain arm-2006q3-27 in my Fedora
7 box I always have the following issue:
qemu: Unsupported
On Thu, 2007-10-25 at 19:52 -0500, Rob Landley wrote:
On Monday 22 October 2007 8:44:59 am Thayne Harbaugh wrote:
On Thu, 2007-10-18 at 23:46 +0200, Ronan Keryell wrote:
Anybody kind enough to have a look at :
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446868
I've asked some
This patch adds the function page_check_range() to verify that pages are
in the cache and that they are appropriately readable/writable. It also
hooks up access_ok() to page_check_range() so that code patterns are
similar to kernel code.
When copying data from user space access_ok() is used to
This patch updates get_user() and put_user() to take a third argument of
data type. get_user() and put_user() use target address which are
target_ulong and don't reflect the data type pointed to in target
memory.
Simply casting the target_ulong to a type before passing to
get/put_user() is poor
These three efault patches are the basis for another 30 patches which do
the following:
* Correct compiler warnings.
* Add coding consistency.
* Detect error cases and handle them properly.
* Divide syscall.c to closer resemble the Linux kernel for code
partitioning and organization.
* Add new
This patch is a minor update to __get_user() and __put_user() to
emphasize that they take host points.
Index: qemu/linux-user/qemu.h
===
--- qemu.orig/linux-user/qemu.h 2007-10-31 11:03:03.0 -0600
+++ qemu/linux-user/qemu.h
On Thu, 2007-11-01 at 00:09 +, Thiemo Seufer wrote:
Thayne Harbaugh wrote:
On Sat, 2007-10-27 at 14:26 +0100, Thiemo Seufer wrote:
Thayne Harbaugh wrote:
This is a rework of Stuart Anderson's strace patch. I've fixed
target-to-host and host-to-target syscall lookups so
On Wed, 2007-10-31 at 16:44 -0600, Thayne Harbaugh wrote:
This patch updates get_user() and put_user() to take a third argument of
data type. get_user() and put_user() use target address which are
target_ulong and don't reflect the data type pointed to in target
memory.
Simply casting
There are several things that I'd like to see addressed in linux-user.
Some of these are to fix bugs, some are to make qemu linux-user more
like the Linux kernel, some are to make the internal qemu interfaces
more consistent.
An internal coding practice that is being addressed bit-by-bit is that
On Sat, 2007-11-03 at 13:52 +0100, J. Mayer wrote:
On Sat, 2007-11-03 at 01:21 +, Thiemo Seufer wrote:
Thayne Harbaugh wrote:
There are several things that I'd like to see addressed in linux-user.
Some of these are to fix bugs, some are to make qemu linux-user more
like the Linux
On Sat, 2007-11-03 at 20:13 +0100, Fabrice Bellard wrote:
Thayne Harbaugh wrote:
On Sat, 2007-11-03 at 13:52 +0100, J. Mayer wrote:
On Sat, 2007-11-03 at 01:21 +, Thiemo Seufer wrote:
[...]
But it could be great to group the syscalls by
categories, or so. For example, putting all
On Sat, 2007-11-03 at 18:52 +0100, Paul Brook wrote:
On Saturday 03 November 2007, TJ wrote:
I'm building on x86_64 GNU/Linux. There are *lots* of (1053) compiler
warnings of the class:
warning: cast to pointer from integer of different size
There are at due to the recent
(such as a translation as Paul did) so that we can verify
that all the Linux emulation stills works in this case.
I'll be testing this way.
Regards,
Fabrice.
Thayne Harbaugh wrote:
On Wed, 2007-10-31 at 16:44 -0600, Thayne Harbaugh wrote:
This patch updates get_user() and put_user() to take
Uhhh, I'm quite uncomfortable now. After sending the emails describing
how everything should be done I realized that I had never reworked my
base patches. All my higher-level patches are sound, but I never
reworked my {get,put}_user() and copy_{to,from}_user() patches to follow
the same pattern.
On Mon, 2007-11-05 at 22:42 +0100, Fabrice Bellard wrote:
Thayne Harbaugh wrote:
On Sat, 2007-11-03 at 20:05 +0100, Fabrice Bellard wrote:
I think that using host addresses in __put_user and __get_user is not
logical. They should use target addresses as get_user and put_user. As
Paul
On Wed, 2007-11-07 at 20:18 +0100, Fabrice Bellard wrote:
Hi,
Regarding the user memory access, here is my suggestion which should
minimize the changes:
The virtue of making the minimum changes is that there are likely fewer
errors. Other than that, it's more important to me to make the
On Wed, 2007-11-07 at 20:18 +0100, Fabrice Bellard wrote:
- Fix page_check_range() so that it handles writes to pages containing
code by calling page_unprotect when necessary (the current code can fail
in this case !).
- Suppress no longer needed page_unprotect_range() call in syscall.c.
On Tue, 2007-11-13 at 19:44 +0100, Stefan Weil wrote:
Hi,
I'd like to test user mode emulation on MIPS host.
Do you have newer versions of your patches which match
current CVS HEAD? TLS support is still missing there,
so QEMU user mode emulation is not really usable without
working
This patch, 44_target_posix_types.patch provides target specific posix
types. These types improve target structure creation, code similarity
to kernel code and improve type casting for assignment between target
and host.
Index: qemu/linux-user/alpha/target_posix_types.h
I didn't mention that this patch depends on the previous
44_target_posix_types.patch.
On Wed, 2007-11-14 at 09:03 -0700, Thayne Harbaugh wrote:
This patch deprecates tget/tput and replaces them with get_user() and
put_user() which perform proper locking. It also checks return codes
(in most
On Wed, 2007-11-14 at 17:25 +0100, Jocelyn Mayer wrote:
On Wed, 2007-11-14 at 08:59 -0700, Thayne Harbaugh wrote:
This patch, 44_target_posix_types.patch provides target specific posix
types. These types improve target structure creation, code similarity
to kernel code and improve type
m68k-linux-user fails to build on x86_64. It has never built for me in
the last six months. It's a dyngen failure. Does anyone have any
patches or suggestions as to how I might fix this?
thank you.
compile output:
gcc-3.4 -Wall -O2 -g -fno-strict-aliasing -I. -I..
On Wed, 2007-11-14 at 11:21 -0700, Thayne Harbaugh wrote:
On Wed, 2007-11-14 at 09:03 -0700, Thayne Harbaugh wrote:
This patch deprecates tget/tput and replaces them with get_user() and
put_user() which perform proper locking. It also checks return codes
(in most places) and fails
On Wed, 2007-11-14 at 20:14 +0100, Fabrice Bellard wrote:
Thayne Harbaugh wrote:
On Wed, 2007-11-14 at 19:32 +0100, Fabrice Bellard wrote:
Thayne Harbaugh wrote:
This patch, 44_target_posix_types.patch provides target specific posix
types. These types improve target structure creation
On Wed, 2007-11-14 at 20:14 +0100, Fabrice Bellard wrote:
Thayne Harbaugh wrote:
On Wed, 2007-11-14 at 19:32 +0100, Fabrice Bellard wrote:
Thayne Harbaugh wrote:
This patch, 44_target_posix_types.patch provides target specific posix
types. These types improve target structure creation
On Wed, 2007-11-14 at 20:39 +, Paul Brook wrote:
This means that time_t had to be tracked down on varying architectures
to find the size and there was an assumption made that time_t is 32 bits
- which isn't true for all targets. The next problem is that if the
target is 32 bits but
On Wed, 2007-11-14 at 14:06 -0700, Warner Losh wrote:
From: Paul Brook [EMAIL PROTECTED]
Subject: Re: [Qemu-devel] [PATCH] target_posix_types.h
Date: Wed, 14 Nov 2007 20:39:36 +
This means that time_t had to be tracked down on varying architectures
to find the size and there was an
On Wed, 2007-11-14 at 09:03 -0700, Thayne Harbaugh wrote:
This patch deprecates tget/tput and replaces them with get_user() and
put_user() which perform proper locking. It also checks return codes
(in most places) and fails with EFAULT where appropriate.
This version doesn't depend
These are some additional EFAULT patches. They improve the code
consistency, check return values of copy_{to,from}_user() operations and
provide minor fixes.
This updates target_to_host_fds() to match the copy_from_user() code.
It drops some unused variables, checks and handles return values for
copy_from_user_fdset() and corrects an error where the n value was
incorrectly multiplied with abi_long instead of used as one greater than
the number of
On Tue, 2007-11-20 at 12:08 -0700, Thayne Harbaugh wrote:
This updates target_to_host_fds() to match the copy_from_user() code.
It drops some unused variables, checks and handles return values for
copy_from_user_fdset() and corrects an error where the n value was
incorrectly multiplied
This is the EFAULT for copy_{to,from}_user_timeval(). This updates to
use __get_user()/__put_user(), check return values of
copy_{to,from}_user_timeval().
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c
This uses __get_user()/__put_user() for copy_{to,from}_user_timespec().
It checks and handles return values.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-11-20 13:21:38.0 -0700
+++
Here's a patch to avoid processing NULL args in execve. It prevents
trying to dereference NULL.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-11-19 20:45:20.0 -0700
+++
The linux-user qemu help usage doesn't output the default cpu_model in
the usage. This patch is a minimal code change to output the default
cpu_model.
Index: qemu/linux-user/main.c
===
--- qemu.orig/linux-user/main.c 2007-12-11
I believe Paul Brook did the original patch for arm eabi TLS. The patch
has bounced around for a bit but hasn't been applied. We've been using
this patch for a while and have tweaked it to be a bit more correct as
far as code organization.
Please let me know what else should be improved for
This futimesat() patch for linux-user was never applied.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c 2007-11-20 21:02:40.0 -0700
+++ qemu/linux-user/syscall.c 2007-11-20 21:03:59.0 -0700
@@
This patch adds documentation for the QEMU_STRACE environment setting.
Index: qemu/qemu-doc.texi
===
--- qemu.orig/qemu-doc.texi 2007-12-11 19:00:53.0 -0700
+++ qemu/qemu-doc.texi 2007-12-11 19:16:28.0 -0700
@@
This patch adds the missing get_sp_from_cpustate() for m68k.
Index: qemu/linux-user/m68k/target_signal.h
===
--- qemu.orig/linux-user/m68k/target_signal.h 2007-12-11 10:33:23.0 -0700
+++ qemu/linux-user/m68k/target_signal.h
There are some places where target signals and host signals aren't
correctly differentiated. This patch addresses proper signal
translation between target and host.
* Changes variable names to be more explicit about target and host
signals.
* Calls target_to_host_signal() and
Qemu doesn't exit with the proper code when dieing from an uncaught
signal. Exit codes for uncaught signals are -signum. Unfortunately
the kernel filters values from exit() and _exit().
A solution is to actually die from an uncaught signal. This patch
detects an uncaught signal, installs the
On Thu, 2007-12-13 at 01:21 +, Paul Brook wrote:
- It would be good to limit the changes in the CPU emulation code to
handle the TLS. For example, on MIPS, the TLS register must not be
stored in the CPU state. Same for ARM.
I disagree. The TLS register is part of the CPU state. On
linux-user getsockopt() doesn't return the correct errnos for certain
cases. This fixes errnos for unsupported levels and unsupported SOL_IP
option names.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c
nanosleep() doesn't write remaining time if there's an error - but it's
when return value == -1 and errno == EINTR when the remaining time must
be written.
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c
linux-user setsockopt() doesn't return the correct errno for certain
cases. This fixes errno for unsupported levels. It's similar to the
bug in getsockopt().
Index: qemu/linux-user/syscall.c
===
--- qemu.orig/linux-user/syscall.c
Qemu doesn't check socklen_t values before using them. If a value is
provided that is large (say -1) then qemu will merrily use it in
alloca() (which will blow the stack). The kernel checks all socklen_t
values for 0 or MAX_SOCK_ADDR.
This patch mimics the kernel behavior - which prevents
This fixes a compile error for a variable that wasn't changed (it was
previously renamed to make the variable more descriptive). It also adds
#include stdlib for prototypes of malloc() and free().
Index: qemu/linux-user/qemu.h
===
I'm wondering if there's a known problem with PPC linux-user. It
appears that static binaries work, but those that are dynamically linked
seem to always fail in the same way:
./ppc-linux-user/c2-qemu-ppc -L /var/chroots/ppc /var/chroots/ppc/bin/ls /
Invalid data memory access: 0x662c2008
NIP
that haven't been included.
Right now I simply haven't tracked which patches have been incorporated
and which ones are pending.
Thanks for the interest.
2007/12/11, Thayne Harbaugh [EMAIL PROTECTED]:
The EFAULT changes use a result of NULL to detect a failure from lock*()
functions
82 matches
Mail list logo