diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/packages/qemu/files/arm_nptl.patch | 117 |
1 files changed, 52 insertions, 65 deletions
diff --git a/meta/packages/qemu/files/arm_nptl.patch b/meta/packages/qemu/files/arm_nptl.patch index eba1afbc2..f9b10aebc 100644 --- a/meta/packages/qemu/files/arm_nptl.patch +++ b/meta/packages/qemu/files/arm_nptl.patch @@ -1,38 +1,25 @@ - configure | 29 +++++++ - exec-all.h | 158 ---------------------------------------- - linux-user/arm/syscall.h | 4 - - linux-user/main.c | 94 +++++++++++++++++++++--- - linux-user/qemu.h | 3 - linux-user/syscall.c | 90 ++++++++++++++++++++--- - qemu_spinlock.h | 182 +++++++++++++++++++++++++++++++++++++++++++++++ - target-arm/cpu.h | 19 ++++ - target-arm/exec.h | 2 - target-arm/op.c | 6 + - target-arm/translate.c | 10 ++ - 11 files changed, 415 insertions(+), 182 deletions(-) - Index: qemu/configure =================================================================== ---- qemu.orig/configure 2006-11-23 10:48:22.000000000 +0000 -+++ qemu/configure 2006-11-23 10:48:25.000000000 +0000 -@@ -95,6 +95,7 @@ softmmu="yes" - user="no" +--- qemu.orig/configure 2006-08-26 16:31:53.000000000 +0100 ++++ qemu/configure 2006-08-26 16:31:53.000000000 +0100 +@@ -97,6 +97,7 @@ build_docs="no" + build_acpi_tables="no" uname_release="" +nptl="yes" # OS specific targetos=`uname -s` -@@ -237,6 +238,8 @@ for opt do +@@ -243,6 +244,8 @@ ;; - --enable-uname-release=*) uname_release="$optarg" + --enable-iasl) build_acpi_tables="yes" ;; + --disable-nptl) nptl="no" + ;; esac done -@@ -433,6 +436,23 @@ EOF +@@ -441,6 +444,23 @@ fi fi @@ -56,7 +43,7 @@ Index: qemu/configure ########################################## # SDL probe -@@ -551,6 +571,7 @@ else +@@ -559,6 +579,7 @@ fi echo "FMOD support $fmod $fmod_support" echo "kqemu support $kqemu" @@ -64,7 +51,7 @@ Index: qemu/configure echo "Documentation $build_docs" [ ! -z "$uname_release" ] && \ echo "uname -r $uname_release" -@@ -875,6 +896,14 @@ if test "$target_user_only" = "no"; then +@@ -880,6 +901,14 @@ echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak fi fi @@ -81,9 +68,9 @@ Index: qemu/configure if test "$cocoa" = "yes" ; then Index: qemu/exec-all.h =================================================================== ---- qemu.orig/exec-all.h 2006-11-23 10:38:32.000000000 +0000 -+++ qemu/exec-all.h 2006-11-23 10:48:25.000000000 +0000 -@@ -357,163 +357,7 @@ extern CPUWriteMemoryFunc *io_mem_write[ +--- qemu.orig/exec-all.h 2006-08-26 16:28:32.000000000 +0100 ++++ qemu/exec-all.h 2006-08-26 16:31:53.000000000 +0100 +@@ -347,163 +347,7 @@ extern CPUReadMemoryFunc *io_mem_read[IO_MEM_NB_ENTRIES][4]; extern void *io_mem_opaque[IO_MEM_NB_ENTRIES]; @@ -250,9 +237,9 @@ Index: qemu/exec-all.h Index: qemu/linux-user/arm/syscall.h =================================================================== ---- qemu.orig/linux-user/arm/syscall.h 2005-04-27 21:11:21.000000000 +0100 -+++ qemu/linux-user/arm/syscall.h 2006-11-23 10:48:25.000000000 +0000 -@@ -28,7 +28,9 @@ struct target_pt_regs { +--- qemu.orig/linux-user/arm/syscall.h 2006-03-09 19:18:11.000000000 +0000 ++++ qemu/linux-user/arm/syscall.h 2006-08-26 16:31:53.000000000 +0100 +@@ -28,7 +28,9 @@ #define ARM_SYSCALL_BASE 0x900000 #define ARM_THUMB_SYSCALL 0 @@ -265,9 +252,9 @@ Index: qemu/linux-user/arm/syscall.h #define ARM_NR_thumb_semihosting 0xAB Index: qemu/linux-user/main.c =================================================================== ---- qemu.orig/linux-user/main.c 2006-11-23 10:38:34.000000000 +0000 -+++ qemu/linux-user/main.c 2006-11-23 10:48:25.000000000 +0000 -@@ -313,6 +313,50 @@ static void arm_cache_flush(target_ulong +--- qemu.orig/linux-user/main.c 2006-08-26 16:28:40.000000000 +0100 ++++ qemu/linux-user/main.c 2006-08-26 16:31:53.000000000 +0100 +@@ -309,6 +309,50 @@ } } @@ -318,7 +305,7 @@ Index: qemu/linux-user/main.c void cpu_loop(CPUARMState *env) { int trapnr; -@@ -369,10 +413,8 @@ void cpu_loop(CPUARMState *env) +@@ -365,10 +409,8 @@ } } @@ -331,7 +318,7 @@ Index: qemu/linux-user/main.c env->regs[0] = do_arm_semihosting (env); } else if (n == 0 || n >= ARM_SYSCALL_BASE || (env->thumb && n == ARM_THUMB_SYSCALL)) { -@@ -383,14 +425,34 @@ void cpu_loop(CPUARMState *env) +@@ -379,14 +421,34 @@ n -= ARM_SYSCALL_BASE; env->eabi = 0; } @@ -374,7 +361,7 @@ Index: qemu/linux-user/main.c } else { goto error; } -@@ -429,6 +491,10 @@ void cpu_loop(CPUARMState *env) +@@ -425,6 +487,10 @@ } } break; @@ -385,7 +372,7 @@ Index: qemu/linux-user/main.c default: error: fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", -@@ -1757,6 +1823,10 @@ int main(int argc, char **argv) +@@ -1639,6 +1705,10 @@ ts->heap_base = info->brk; /* This will be filled in on the first SYS_HEAPINFO call. */ ts->heap_limit = 0; @@ -398,10 +385,10 @@ Index: qemu/linux-user/main.c { Index: qemu/linux-user/qemu.h =================================================================== ---- qemu.orig/linux-user/qemu.h 2006-11-23 10:38:34.000000000 +0000 -+++ qemu/linux-user/qemu.h 2006-11-23 10:48:25.000000000 +0000 -@@ -79,6 +79,9 @@ typedef struct TaskState { - int sim_syscalls; +--- qemu.orig/linux-user/qemu.h 2006-08-26 16:28:40.000000000 +0100 ++++ qemu/linux-user/qemu.h 2006-08-26 16:33:50.000000000 +0100 +@@ -75,6 +75,9 @@ + uint32_t v86mask; #endif int used; /* non zero if used */ +#ifdef USE_NPTL @@ -412,8 +399,8 @@ Index: qemu/linux-user/qemu.h } __attribute__((aligned(16))) TaskState; Index: qemu/linux-user/syscall.c =================================================================== ---- qemu.orig/linux-user/syscall.c 2006-11-23 10:38:34.000000000 +0000 -+++ qemu/linux-user/syscall.c 2006-11-23 10:53:48.000000000 +0000 +--- qemu.orig/linux-user/syscall.c 2006-08-26 16:28:40.000000000 +0100 ++++ qemu/linux-user/syscall.c 2006-08-26 16:31:53.000000000 +0100 @@ -66,9 +66,18 @@ #include <linux/kd.h> @@ -430,10 +417,10 @@ Index: qemu/linux-user/syscall.c +#define CLONE_NPTL_FLAGS2 0 +#endif + - #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \ - || defined(TARGET_M68K) + #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) /* 16 bit uid wrappers emulation */ -@@ -1640,20 +1649,38 @@ int do_modify_ldt(CPUX86State *env, int + #define USE_UID16 +@@ -1602,20 +1611,38 @@ thread/process */ #define NEW_STACK_SIZE 8192 @@ -473,7 +460,7 @@ Index: qemu/linux-user/syscall.c if (flags & CLONE_VM) { ts = malloc(sizeof(TaskState) + NEW_STACK_SIZE); -@@ -1709,16 +1736,60 @@ int do_fork(CPUState *env, unsigned int +@@ -1665,16 +1692,60 @@ #error unsupported target CPU #endif new_env->opaque = ts; @@ -538,7 +525,7 @@ Index: qemu/linux-user/syscall.c } return ret; } -@@ -1962,7 +2033,7 @@ long do_syscall(void *cpu_env, int num, +@@ -1918,7 +1989,7 @@ ret = do_brk(arg1); break; case TARGET_NR_fork: @@ -547,7 +534,7 @@ Index: qemu/linux-user/syscall.c break; case TARGET_NR_waitpid: { -@@ -3033,7 +3104,8 @@ long do_syscall(void *cpu_env, int num, +@@ -2989,7 +3060,8 @@ ret = get_errno(fsync(arg1)); break; case TARGET_NR_clone: @@ -557,7 +544,7 @@ Index: qemu/linux-user/syscall.c break; #ifdef __NR_exit_group /* new thread calls */ -@@ -3383,7 +3455,8 @@ long do_syscall(void *cpu_env, int num, +@@ -3339,7 +3411,8 @@ #endif #ifdef TARGET_NR_vfork case TARGET_NR_vfork: @@ -567,15 +554,15 @@ Index: qemu/linux-user/syscall.c break; #endif #ifdef TARGET_NR_ugetrlimit -@@ -3882,4 +3955,3 @@ long do_syscall(void *cpu_env, int num, +@@ -3838,4 +3911,3 @@ #endif return ret; } - Index: qemu/target-arm/cpu.h =================================================================== ---- qemu.orig/target-arm/cpu.h 2006-11-23 10:38:37.000000000 +0000 -+++ qemu/target-arm/cpu.h 2006-11-23 10:48:25.000000000 +0000 +--- qemu.orig/target-arm/cpu.h 2006-03-09 19:18:27.000000000 +0000 ++++ qemu/target-arm/cpu.h 2006-08-26 16:31:53.000000000 +0100 @@ -35,6 +35,9 @@ #define EXCP_IRQ 5 #define EXCP_FIQ 6 @@ -586,7 +573,7 @@ Index: qemu/target-arm/cpu.h /* We currently assume float and double are IEEE single and double precision respectively. -@@ -85,6 +88,7 @@ typedef struct CPUARMState { +@@ -85,6 +88,7 @@ uint32_t c9_data; uint32_t c13_fcse; /* FCSE PID. */ uint32_t c13_context; /* Context ID. */ @@ -594,7 +581,7 @@ Index: qemu/target-arm/cpu.h } cp15; /* Internal CPU feature flags. */ -@@ -135,6 +139,15 @@ struct siginfo; +@@ -135,6 +139,15 @@ int cpu_arm_signal_handler(int host_signum, struct siginfo *info, void *puc); @@ -610,7 +597,7 @@ Index: qemu/target-arm/cpu.h #define CPSR_M (0x1f) #define CPSR_T (1 << 5) #define CPSR_F (1 << 6) -@@ -146,7 +159,11 @@ int cpu_arm_signal_handler(int host_sign +@@ -146,7 +159,11 @@ #define CPSR_J (1 << 24) #define CPSR_IT_0_1 (3 << 25) #define CPSR_Q (1 << 27) @@ -625,9 +612,9 @@ Index: qemu/target-arm/cpu.h /* Return the current CPSR value. */ Index: qemu/target-arm/exec.h =================================================================== ---- qemu.orig/target-arm/exec.h 2005-11-26 10:38:39.000000000 +0000 -+++ qemu/target-arm/exec.h 2006-11-23 10:48:25.000000000 +0000 -@@ -51,8 +51,6 @@ int cpu_arm_handle_mmu_fault (CPUState * +--- qemu.orig/target-arm/exec.h 2006-03-09 19:18:27.000000000 +0000 ++++ qemu/target-arm/exec.h 2006-08-26 16:31:53.000000000 +0100 +@@ -51,8 +51,6 @@ /* In op_helper.c */ @@ -638,9 +625,9 @@ Index: qemu/target-arm/exec.h Index: qemu/target-arm/op.c =================================================================== ---- qemu.orig/target-arm/op.c 2006-08-26 18:37:27.000000000 +0100 -+++ qemu/target-arm/op.c 2006-11-23 10:48:25.000000000 +0000 -@@ -891,6 +891,12 @@ void OPPROTO op_bkpt(void) +--- qemu.orig/target-arm/op.c 2006-08-26 16:28:48.000000000 +0100 ++++ qemu/target-arm/op.c 2006-08-26 16:31:53.000000000 +0100 +@@ -891,6 +891,12 @@ cpu_loop_exit(); } @@ -655,9 +642,9 @@ Index: qemu/target-arm/op.c "d" suffix. */ Index: qemu/target-arm/translate.c =================================================================== ---- qemu.orig/target-arm/translate.c 2006-11-23 10:38:37.000000000 +0000 -+++ qemu/target-arm/translate.c 2006-11-23 10:48:25.000000000 +0000 -@@ -2382,6 +2382,7 @@ undef: +--- qemu.orig/target-arm/translate.c 2006-08-26 16:28:48.000000000 +0100 ++++ qemu/target-arm/translate.c 2006-08-26 16:31:53.000000000 +0100 +@@ -2382,6 +2382,7 @@ s->is_jmp = DISAS_JUMP; } @@ -665,7 +652,7 @@ Index: qemu/target-arm/translate.c /* generate intermediate code in gen_opc_buf and gen_opparam_buf for basic block 'tb'. If search_pc is TRUE, also generate PC information for each intermediate instruction. */ -@@ -2416,6 +2417,15 @@ static inline int gen_intermediate_code_ +@@ -2416,6 +2417,15 @@ nb_gen_labels = 0; lj = -1; do { @@ -684,7 +671,7 @@ Index: qemu/target-arm/translate.c Index: qemu/qemu_spinlock.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ qemu/qemu_spinlock.h 2006-11-23 10:48:25.000000000 +0000 ++++ qemu/qemu_spinlock.h 2006-08-26 16:31:53.000000000 +0100 @@ -0,0 +1,182 @@ +/* + * internal execution defines for qemu |