Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'jb-44440-2' into 'master'
[qemu-usermode] [qemu-usermode-static] Upgrade to 2.6.2 ; JB#44440 See merge request mer-core/qemu-usermode!8
- Loading branch information
Showing
279 changed files
with
30,643 additions
and
704 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
From 6e0addbcb3978ef65f97ddd1edebd8c6176ed163 Mon Sep 17 00:00:00 2001 | ||
From: Alexander Graf <agraf@suse.de> | ||
Date: Mon, 21 Nov 2011 23:50:36 +0100 | ||
Subject: [PATCH] XXX dont dump core on sigabort | ||
|
||
--- | ||
linux-user/signal.c | 6 ++++++ | ||
1 file changed, 6 insertions(+) | ||
|
||
diff --git a/linux-user/signal.c b/linux-user/signal.c | ||
index 96e86c0a29..d422aebffc 100644 | ||
--- a/linux-user/signal.c | ||
+++ b/linux-user/signal.c | ||
@@ -443,6 +443,10 @@ static void QEMU_NORETURN force_sig(int target_sig) | ||
trace_user_force_sig(env, target_sig, host_sig); | ||
gdb_signalled(env, target_sig); | ||
|
||
+ if (target_sig == 6) { | ||
+ goto no_core; | ||
+ } | ||
+ | ||
/* dump core if supported by target binary format */ | ||
if (core_dump_signal(target_sig) && (ts->bprm->core_dump != NULL)) { | ||
stop_all_tasks(); | ||
@@ -460,6 +464,8 @@ static void QEMU_NORETURN force_sig(int target_sig) | ||
target_sig, strsignal(host_sig), "core dumped" ); | ||
} | ||
|
||
+no_core: | ||
+ | ||
/* The proper exit code for dying from an uncaught signal is | ||
* -<signal>. The kernel doesn't allow exit() or _exit() to pass | ||
* a negative value. To get the proper exit code we need to |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
From 2063cbf2dfd27c3bfc7e7cfb337bd3f20e5778d8 Mon Sep 17 00:00:00 2001 | ||
From: Ulrich Hecht <uli@suse.de> | ||
Date: Tue, 14 Apr 2009 16:18:44 +0200 | ||
Subject: [PATCH] qemu-0.9.0.cvs-binfmt | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset=UTF-8 | ||
Content-Transfer-Encoding: 8bit | ||
|
||
Fixes binfmt_misc setup script: | ||
- x86_64 is i386-compatible | ||
- m68k signature fixed | ||
- path to QEMU | ||
|
||
Signed-off-by: Ulrich Hecht <uli@suse.de> | ||
[AF: Update path for qemu-aarch64 for v2.0.0-rc1] | ||
Signed-off-by: Andreas Färber <afaerber@suse.de> | ||
--- | ||
scripts/qemu-binfmt-conf.sh | 39 +++++++++++++++++++++------------------ | ||
1 file changed, 21 insertions(+), 18 deletions(-) | ||
|
||
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh | ||
index 289b1a3963..75e05268ff 100644 | ||
--- a/scripts/qemu-binfmt-conf.sh | ||
+++ b/scripts/qemu-binfmt-conf.sh | ||
@@ -27,46 +27,49 @@ case "$cpu" in | ||
armv[4-9]*) | ||
cpu="arm" | ||
;; | ||
+ sparc*) | ||
+ cpu="sparc" | ||
+ ;; | ||
esac | ||
|
||
# register the interpreter for each cpu except for the native one | ||
if [ $cpu != "i386" ] ; then | ||
- echo ':i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "alpha" ] ; then | ||
- echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-alpha:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "arm" ] ; then | ||
- echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-arm:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':armeb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-armeb:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "aarch64" ] ; then | ||
- echo ':aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-aarch64:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "sparc" ] ; then | ||
- echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':sparc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sparc:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "ppc" ] ; then | ||
- echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "m68k" ] ; then | ||
echo 'Please check cpu value and header information for m68k!' | ||
- echo ':m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-m68k:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "mips" ] ; then | ||
# FIXME: We could use the other endianness on a MIPS host. | ||
- echo ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-mips:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':mipsn32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-mipsn32:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':mipsn32el:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-mipsn32el:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':mips64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-mips64:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':mips64el:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-mips64el:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':mips:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':mipsel:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsel:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':mipsn32:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mipsn32:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':mipsn32el:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mipsn32el:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':mips64:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-mips64:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':mips64el:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-mips64el:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "sh" ] ; then | ||
- echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-sh4:' > /proc/sys/fs/binfmt_misc/register | ||
- echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-sh4eb:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':sh4:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a\x00:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-sh4:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':sh4eb:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2a:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-sh4eb:' > /proc/sys/fs/binfmt_misc/register | ||
fi | ||
if [ $cpu != "s390x" ] ; then | ||
- echo ':s390x:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/local/bin/qemu-s390x:' > /proc/sys/fs/binfmt_misc/register | ||
+ echo ':s390x:M::\x7fELF\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x16:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-s390x:' > /proc/sys/fs/binfmt_misc/register | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
From e99c00c61f791f92b23c54c7e48e4af01f9d4f78 Mon Sep 17 00:00:00 2001 | ||
From: Alexander Graf <agraf@suse.de> | ||
Date: Tue, 14 Apr 2009 16:20:50 +0200 | ||
Subject: [PATCH] qemu-cvs-alsa_bitfield | ||
|
||
Implements TYPE_INTBITFIELD partially. (required for ALSA support) | ||
|
||
Signed-off-by: Alexander Graf <agraf@suse.de> | ||
Signed-off-by: Ulrich Hecht <uli@suse.de> | ||
--- | ||
include/exec/user/thunk.h | 3 +++ | ||
thunk.c | 21 +++++++++++++++++++++ | ||
2 files changed, 24 insertions(+) | ||
|
||
diff --git a/include/exec/user/thunk.h b/include/exec/user/thunk.h | ||
index ad1d60266e..4e082a75ba 100644 | ||
--- a/include/exec/user/thunk.h | ||
+++ b/include/exec/user/thunk.h | ||
@@ -37,6 +37,7 @@ typedef enum argtype { | ||
TYPE_ARRAY, | ||
TYPE_STRUCT, | ||
TYPE_OLDDEVT, | ||
+ TYPE_INTBITFIELD, | ||
} argtype; | ||
|
||
#define MK_PTR(type) TYPE_PTR, type | ||
@@ -90,6 +91,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host) | ||
case TYPE_SHORT: | ||
return 2; | ||
case TYPE_INT: | ||
+ case TYPE_INTBITFIELD: | ||
return 4; | ||
case TYPE_LONGLONG: | ||
case TYPE_ULONGLONG: | ||
@@ -152,6 +154,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host) | ||
case TYPE_SHORT: | ||
return 2; | ||
case TYPE_INT: | ||
+ case TYPE_INTBITFIELD: | ||
return 4; | ||
case TYPE_LONGLONG: | ||
case TYPE_ULONGLONG: | ||
diff --git a/thunk.c b/thunk.c | ||
index f057d86d94..6db7874cdd 100644 | ||
--- a/thunk.c | ||
+++ b/thunk.c | ||
@@ -37,6 +37,7 @@ static inline const argtype *thunk_type_next(const argtype *type_ptr) | ||
case TYPE_CHAR: | ||
case TYPE_SHORT: | ||
case TYPE_INT: | ||
+ case TYPE_INTBITFIELD: | ||
case TYPE_LONGLONG: | ||
case TYPE_ULONGLONG: | ||
case TYPE_LONG: | ||
@@ -139,6 +140,26 @@ const argtype *thunk_convert(void *dst, const void *src, | ||
case TYPE_INT: | ||
*(uint32_t *)dst = tswap32(*(uint32_t *)src); | ||
break; | ||
+ case TYPE_INTBITFIELD: | ||
+#if defined(TARGET_I386) && defined(__powerpc__) | ||
+ /* powerpc uses the MSB, whereas i386 uses the LSB | ||
+ * to store the first bit in a field */ | ||
+ { | ||
+ unsigned char byte = *(uint8_t *)src; | ||
+ *(uint8_t *)dst = ((byte >> 7) & 1) | ||
+ | ((byte >> 5) & 2) | ||
+ | ((byte >> 3) & 4) | ||
+ | ((byte >> 1) & 8) | ||
+ | ((byte << 1) & 16) | ||
+ | ((byte << 3) & 32) | ||
+ | ((byte << 5) & 64) | ||
+ | ((byte << 7) & 128); | ||
+ /* FIXME: implement for bitfields > 1 byte and other archs */ | ||
+ } | ||
+#else | ||
+ *(uint32_t *)dst = tswap32(*(uint32_t *)src); | ||
+#endif | ||
+ break; | ||
case TYPE_LONGLONG: | ||
case TYPE_ULONGLONG: | ||
*(uint64_t *)dst = tswap64(*(uint64_t *)src); |
Oops, something went wrong.