summaryrefslogtreecommitdiffstats
path: root/meta/packages/qemu
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2006-11-23 10:55:54 +0000
committerRichard Purdie <richard@openedhand.com>2006-11-23 10:55:54 +0000
commitdff9e4b3144470e216fa563de501c42650b536fb (patch)
treed0dea5901b345023d1ab629192bb193f8fcb04d3 /meta/packages/qemu
parentc344a7ccb3d321b91693f5fda78ca80b0c3fee86 (diff)
downloadpoky-dff9e4b3144470e216fa563de501c42650b536fb.tar.gz
qemu: Really fix arm_nptl.patch
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@944 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/qemu')
-rw-r--r--meta/packages/qemu/files/arm_nptl.patch117
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 eba1afbc21..f9b10aebc5 100644
--- a/meta/packages/qemu/files/arm_nptl.patch
+++ b/meta/packages/qemu/files/arm_nptl.patch
@@ -1,38 +1,25 @@
1 configure | 29 +++++++
2 exec-all.h | 158 ----------------------------------------
3 linux-user/arm/syscall.h | 4 -
4 linux-user/main.c | 94 +++++++++++++++++++++---
5 linux-user/qemu.h | 3
6 linux-user/syscall.c | 90 ++++++++++++++++++++---
7 qemu_spinlock.h | 182 +++++++++++++++++++++++++++++++++++++++++++++++
8 target-arm/cpu.h | 19 ++++
9 target-arm/exec.h | 2
10 target-arm/op.c | 6 +
11 target-arm/translate.c | 10 ++
12 11 files changed, 415 insertions(+), 182 deletions(-)
13
14Index: qemu/configure 1Index: qemu/configure
15=================================================================== 2===================================================================
16--- qemu.orig/configure 2006-11-23 10:48:22.000000000 +0000 3--- qemu.orig/configure 2006-08-26 16:31:53.000000000 +0100
17+++ qemu/configure 2006-11-23 10:48:25.000000000 +0000 4+++ qemu/configure 2006-08-26 16:31:53.000000000 +0100
18@@ -95,6 +95,7 @@ softmmu="yes" 5@@ -97,6 +97,7 @@
19 user="no"
20 build_docs="no" 6 build_docs="no"
7 build_acpi_tables="no"
21 uname_release="" 8 uname_release=""
22+nptl="yes" 9+nptl="yes"
23 10
24 # OS specific 11 # OS specific
25 targetos=`uname -s` 12 targetos=`uname -s`
26@@ -237,6 +238,8 @@ for opt do 13@@ -243,6 +244,8 @@
27 ;; 14 ;;
28 --enable-uname-release=*) uname_release="$optarg" 15 --enable-iasl) build_acpi_tables="yes"
29 ;; 16 ;;
30+ --disable-nptl) nptl="no" 17+ --disable-nptl) nptl="no"
31+ ;; 18+ ;;
32 esac 19 esac
33 done 20 done
34 21
35@@ -433,6 +436,23 @@ EOF 22@@ -441,6 +444,23 @@
36 fi 23 fi
37 fi 24 fi
38 25
@@ -56,7 +43,7 @@ Index: qemu/configure
56 ########################################## 43 ##########################################
57 # SDL probe 44 # SDL probe
58 45
59@@ -551,6 +571,7 @@ else 46@@ -559,6 +579,7 @@
60 fi 47 fi
61 echo "FMOD support $fmod $fmod_support" 48 echo "FMOD support $fmod $fmod_support"
62 echo "kqemu support $kqemu" 49 echo "kqemu support $kqemu"
@@ -64,7 +51,7 @@ Index: qemu/configure
64 echo "Documentation $build_docs" 51 echo "Documentation $build_docs"
65 [ ! -z "$uname_release" ] && \ 52 [ ! -z "$uname_release" ] && \
66 echo "uname -r $uname_release" 53 echo "uname -r $uname_release"
67@@ -875,6 +896,14 @@ if test "$target_user_only" = "no"; then 54@@ -880,6 +901,14 @@
68 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 55 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
69 fi 56 fi
70 fi 57 fi
@@ -81,9 +68,9 @@ Index: qemu/configure
81 if test "$cocoa" = "yes" ; then 68 if test "$cocoa" = "yes" ; then
82Index: qemu/exec-all.h 69Index: qemu/exec-all.h
83=================================================================== 70===================================================================
84--- qemu.orig/exec-all.h 2006-11-23 10:38:32.000000000 +0000 71--- qemu.orig/exec-all.h 2006-08-26 16:28:32.000000000 +0100
85+++ qemu/exec-all.h 2006-11-23 10:48:25.000000000 +0000 72+++ qemu/exec-all.h 2006-08-26 16:31:53.000000000 +0100
86@@ -357,163 +357,7 @@ extern CPUWriteMemoryFunc *io_mem_write[ 73@@ -347,163 +347,7 @@
87 extern CPUReadMemoryFunc *io_mem_read[IO_MEM_NB_ENTRIES][4]; 74 extern CPUReadMemoryFunc *io_mem_read[IO_MEM_NB_ENTRIES][4];
88 extern void *io_mem_opaque[IO_MEM_NB_ENTRIES]; 75 extern void *io_mem_opaque[IO_MEM_NB_ENTRIES];
89 76
@@ -250,9 +237,9 @@ Index: qemu/exec-all.h
250 237
251Index: qemu/linux-user/arm/syscall.h 238Index: qemu/linux-user/arm/syscall.h
252=================================================================== 239===================================================================
253--- qemu.orig/linux-user/arm/syscall.h 2005-04-27 21:11:21.000000000 +0100 240--- qemu.orig/linux-user/arm/syscall.h 2006-03-09 19:18:11.000000000 +0000
254+++ qemu/linux-user/arm/syscall.h 2006-11-23 10:48:25.000000000 +0000 241+++ qemu/linux-user/arm/syscall.h 2006-08-26 16:31:53.000000000 +0100
255@@ -28,7 +28,9 @@ struct target_pt_regs { 242@@ -28,7 +28,9 @@
256 #define ARM_SYSCALL_BASE 0x900000 243 #define ARM_SYSCALL_BASE 0x900000
257 #define ARM_THUMB_SYSCALL 0 244 #define ARM_THUMB_SYSCALL 0
258 245
@@ -265,9 +252,9 @@ Index: qemu/linux-user/arm/syscall.h
265 #define ARM_NR_thumb_semihosting 0xAB 252 #define ARM_NR_thumb_semihosting 0xAB
266Index: qemu/linux-user/main.c 253Index: qemu/linux-user/main.c
267=================================================================== 254===================================================================
268--- qemu.orig/linux-user/main.c 2006-11-23 10:38:34.000000000 +0000 255--- qemu.orig/linux-user/main.c 2006-08-26 16:28:40.000000000 +0100
269+++ qemu/linux-user/main.c 2006-11-23 10:48:25.000000000 +0000 256+++ qemu/linux-user/main.c 2006-08-26 16:31:53.000000000 +0100
270@@ -313,6 +313,50 @@ static void arm_cache_flush(target_ulong 257@@ -309,6 +309,50 @@
271 } 258 }
272 } 259 }
273 260
@@ -318,7 +305,7 @@ Index: qemu/linux-user/main.c
318 void cpu_loop(CPUARMState *env) 305 void cpu_loop(CPUARMState *env)
319 { 306 {
320 int trapnr; 307 int trapnr;
321@@ -369,10 +413,8 @@ void cpu_loop(CPUARMState *env) 308@@ -365,10 +409,8 @@
322 } 309 }
323 } 310 }
324 311
@@ -331,7 +318,7 @@ Index: qemu/linux-user/main.c
331 env->regs[0] = do_arm_semihosting (env); 318 env->regs[0] = do_arm_semihosting (env);
332 } else if (n == 0 || n >= ARM_SYSCALL_BASE 319 } else if (n == 0 || n >= ARM_SYSCALL_BASE
333 || (env->thumb && n == ARM_THUMB_SYSCALL)) { 320 || (env->thumb && n == ARM_THUMB_SYSCALL)) {
334@@ -383,14 +425,34 @@ void cpu_loop(CPUARMState *env) 321@@ -379,14 +421,34 @@
335 n -= ARM_SYSCALL_BASE; 322 n -= ARM_SYSCALL_BASE;
336 env->eabi = 0; 323 env->eabi = 0;
337 } 324 }
@@ -374,7 +361,7 @@ Index: qemu/linux-user/main.c
374 } else { 361 } else {
375 goto error; 362 goto error;
376 } 363 }
377@@ -429,6 +491,10 @@ void cpu_loop(CPUARMState *env) 364@@ -425,6 +487,10 @@
378 } 365 }
379 } 366 }
380 break; 367 break;
@@ -385,7 +372,7 @@ Index: qemu/linux-user/main.c
385 default: 372 default:
386 error: 373 error:
387 fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n", 374 fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n",
388@@ -1757,6 +1823,10 @@ int main(int argc, char **argv) 375@@ -1639,6 +1705,10 @@
389 ts->heap_base = info->brk; 376 ts->heap_base = info->brk;
390 /* This will be filled in on the first SYS_HEAPINFO call. */ 377 /* This will be filled in on the first SYS_HEAPINFO call. */
391 ts->heap_limit = 0; 378 ts->heap_limit = 0;
@@ -398,10 +385,10 @@ Index: qemu/linux-user/main.c
398 { 385 {
399Index: qemu/linux-user/qemu.h 386Index: qemu/linux-user/qemu.h
400=================================================================== 387===================================================================
401--- qemu.orig/linux-user/qemu.h 2006-11-23 10:38:34.000000000 +0000 388--- qemu.orig/linux-user/qemu.h 2006-08-26 16:28:40.000000000 +0100
402+++ qemu/linux-user/qemu.h 2006-11-23 10:48:25.000000000 +0000 389+++ qemu/linux-user/qemu.h 2006-08-26 16:33:50.000000000 +0100
403@@ -79,6 +79,9 @@ typedef struct TaskState { 390@@ -75,6 +75,9 @@
404 int sim_syscalls; 391 uint32_t v86mask;
405 #endif 392 #endif
406 int used; /* non zero if used */ 393 int used; /* non zero if used */
407+#ifdef USE_NPTL 394+#ifdef USE_NPTL
@@ -412,8 +399,8 @@ Index: qemu/linux-user/qemu.h
412 } __attribute__((aligned(16))) TaskState; 399 } __attribute__((aligned(16))) TaskState;
413Index: qemu/linux-user/syscall.c 400Index: qemu/linux-user/syscall.c
414=================================================================== 401===================================================================
415--- qemu.orig/linux-user/syscall.c 2006-11-23 10:38:34.000000000 +0000 402--- qemu.orig/linux-user/syscall.c 2006-08-26 16:28:40.000000000 +0100
416+++ qemu/linux-user/syscall.c 2006-11-23 10:53:48.000000000 +0000 403+++ qemu/linux-user/syscall.c 2006-08-26 16:31:53.000000000 +0100
417@@ -66,9 +66,18 @@ 404@@ -66,9 +66,18 @@
418 #include <linux/kd.h> 405 #include <linux/kd.h>
419 406
@@ -430,10 +417,10 @@ Index: qemu/linux-user/syscall.c
430+#define CLONE_NPTL_FLAGS2 0 417+#define CLONE_NPTL_FLAGS2 0
431+#endif 418+#endif
432+ 419+
433 #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \ 420 #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC)
434 || defined(TARGET_M68K)
435 /* 16 bit uid wrappers emulation */ 421 /* 16 bit uid wrappers emulation */
436@@ -1640,20 +1649,38 @@ int do_modify_ldt(CPUX86State *env, int 422 #define USE_UID16
423@@ -1602,20 +1611,38 @@
437 thread/process */ 424 thread/process */
438 #define NEW_STACK_SIZE 8192 425 #define NEW_STACK_SIZE 8192
439 426
@@ -473,7 +460,7 @@ Index: qemu/linux-user/syscall.c
473 460
474 if (flags & CLONE_VM) { 461 if (flags & CLONE_VM) {
475 ts = malloc(sizeof(TaskState) + NEW_STACK_SIZE); 462 ts = malloc(sizeof(TaskState) + NEW_STACK_SIZE);
476@@ -1709,16 +1736,60 @@ int do_fork(CPUState *env, unsigned int 463@@ -1665,16 +1692,60 @@
477 #error unsupported target CPU 464 #error unsupported target CPU
478 #endif 465 #endif
479 new_env->opaque = ts; 466 new_env->opaque = ts;
@@ -538,7 +525,7 @@ Index: qemu/linux-user/syscall.c
538 } 525 }
539 return ret; 526 return ret;
540 } 527 }
541@@ -1962,7 +2033,7 @@ long do_syscall(void *cpu_env, int num, 528@@ -1918,7 +1989,7 @@
542 ret = do_brk(arg1); 529 ret = do_brk(arg1);
543 break; 530 break;
544 case TARGET_NR_fork: 531 case TARGET_NR_fork:
@@ -547,7 +534,7 @@ Index: qemu/linux-user/syscall.c
547 break; 534 break;
548 case TARGET_NR_waitpid: 535 case TARGET_NR_waitpid:
549 { 536 {
550@@ -3033,7 +3104,8 @@ long do_syscall(void *cpu_env, int num, 537@@ -2989,7 +3060,8 @@
551 ret = get_errno(fsync(arg1)); 538 ret = get_errno(fsync(arg1));
552 break; 539 break;
553 case TARGET_NR_clone: 540 case TARGET_NR_clone:
@@ -557,7 +544,7 @@ Index: qemu/linux-user/syscall.c
557 break; 544 break;
558 #ifdef __NR_exit_group 545 #ifdef __NR_exit_group
559 /* new thread calls */ 546 /* new thread calls */
560@@ -3383,7 +3455,8 @@ long do_syscall(void *cpu_env, int num, 547@@ -3339,7 +3411,8 @@
561 #endif 548 #endif
562 #ifdef TARGET_NR_vfork 549 #ifdef TARGET_NR_vfork
563 case TARGET_NR_vfork: 550 case TARGET_NR_vfork:
@@ -567,15 +554,15 @@ Index: qemu/linux-user/syscall.c
567 break; 554 break;
568 #endif 555 #endif
569 #ifdef TARGET_NR_ugetrlimit 556 #ifdef TARGET_NR_ugetrlimit
570@@ -3882,4 +3955,3 @@ long do_syscall(void *cpu_env, int num, 557@@ -3838,4 +3911,3 @@
571 #endif 558 #endif
572 return ret; 559 return ret;
573 } 560 }
574- 561-
575Index: qemu/target-arm/cpu.h 562Index: qemu/target-arm/cpu.h
576=================================================================== 563===================================================================
577--- qemu.orig/target-arm/cpu.h 2006-11-23 10:38:37.000000000 +0000 564--- qemu.orig/target-arm/cpu.h 2006-03-09 19:18:27.000000000 +0000
578+++ qemu/target-arm/cpu.h 2006-11-23 10:48:25.000000000 +0000 565+++ qemu/target-arm/cpu.h 2006-08-26 16:31:53.000000000 +0100
579@@ -35,6 +35,9 @@ 566@@ -35,6 +35,9 @@
580 #define EXCP_IRQ 5 567 #define EXCP_IRQ 5
581 #define EXCP_FIQ 6 568 #define EXCP_FIQ 6
@@ -586,7 +573,7 @@ Index: qemu/target-arm/cpu.h
586 573
587 /* We currently assume float and double are IEEE single and double 574 /* We currently assume float and double are IEEE single and double
588 precision respectively. 575 precision respectively.
589@@ -85,6 +88,7 @@ typedef struct CPUARMState { 576@@ -85,6 +88,7 @@
590 uint32_t c9_data; 577 uint32_t c9_data;
591 uint32_t c13_fcse; /* FCSE PID. */ 578 uint32_t c13_fcse; /* FCSE PID. */
592 uint32_t c13_context; /* Context ID. */ 579 uint32_t c13_context; /* Context ID. */
@@ -594,7 +581,7 @@ Index: qemu/target-arm/cpu.h
594 } cp15; 581 } cp15;
595 582
596 /* Internal CPU feature flags. */ 583 /* Internal CPU feature flags. */
597@@ -135,6 +139,15 @@ struct siginfo; 584@@ -135,6 +139,15 @@
598 int cpu_arm_signal_handler(int host_signum, struct siginfo *info, 585 int cpu_arm_signal_handler(int host_signum, struct siginfo *info,
599 void *puc); 586 void *puc);
600 587
@@ -610,7 +597,7 @@ Index: qemu/target-arm/cpu.h
610 #define CPSR_M (0x1f) 597 #define CPSR_M (0x1f)
611 #define CPSR_T (1 << 5) 598 #define CPSR_T (1 << 5)
612 #define CPSR_F (1 << 6) 599 #define CPSR_F (1 << 6)
613@@ -146,7 +159,11 @@ int cpu_arm_signal_handler(int host_sign 600@@ -146,7 +159,11 @@
614 #define CPSR_J (1 << 24) 601 #define CPSR_J (1 << 24)
615 #define CPSR_IT_0_1 (3 << 25) 602 #define CPSR_IT_0_1 (3 << 25)
616 #define CPSR_Q (1 << 27) 603 #define CPSR_Q (1 << 27)
@@ -625,9 +612,9 @@ Index: qemu/target-arm/cpu.h
625 /* Return the current CPSR value. */ 612 /* Return the current CPSR value. */
626Index: qemu/target-arm/exec.h 613Index: qemu/target-arm/exec.h
627=================================================================== 614===================================================================
628--- qemu.orig/target-arm/exec.h 2005-11-26 10:38:39.000000000 +0000 615--- qemu.orig/target-arm/exec.h 2006-03-09 19:18:27.000000000 +0000
629+++ qemu/target-arm/exec.h 2006-11-23 10:48:25.000000000 +0000 616+++ qemu/target-arm/exec.h 2006-08-26 16:31:53.000000000 +0100
630@@ -51,8 +51,6 @@ int cpu_arm_handle_mmu_fault (CPUState * 617@@ -51,8 +51,6 @@
631 618
632 /* In op_helper.c */ 619 /* In op_helper.c */
633 620
@@ -638,9 +625,9 @@ Index: qemu/target-arm/exec.h
638 625
639Index: qemu/target-arm/op.c 626Index: qemu/target-arm/op.c
640=================================================================== 627===================================================================
641--- qemu.orig/target-arm/op.c 2006-08-26 18:37:27.000000000 +0100 628--- qemu.orig/target-arm/op.c 2006-08-26 16:28:48.000000000 +0100
642+++ qemu/target-arm/op.c 2006-11-23 10:48:25.000000000 +0000 629+++ qemu/target-arm/op.c 2006-08-26 16:31:53.000000000 +0100
643@@ -891,6 +891,12 @@ void OPPROTO op_bkpt(void) 630@@ -891,6 +891,12 @@
644 cpu_loop_exit(); 631 cpu_loop_exit();
645 } 632 }
646 633
@@ -655,9 +642,9 @@ Index: qemu/target-arm/op.c
655 "d" suffix. */ 642 "d" suffix. */
656Index: qemu/target-arm/translate.c 643Index: qemu/target-arm/translate.c
657=================================================================== 644===================================================================
658--- qemu.orig/target-arm/translate.c 2006-11-23 10:38:37.000000000 +0000 645--- qemu.orig/target-arm/translate.c 2006-08-26 16:28:48.000000000 +0100
659+++ qemu/target-arm/translate.c 2006-11-23 10:48:25.000000000 +0000 646+++ qemu/target-arm/translate.c 2006-08-26 16:31:53.000000000 +0100
660@@ -2382,6 +2382,7 @@ undef: 647@@ -2382,6 +2382,7 @@
661 s->is_jmp = DISAS_JUMP; 648 s->is_jmp = DISAS_JUMP;
662 } 649 }
663 650
@@ -665,7 +652,7 @@ Index: qemu/target-arm/translate.c
665 /* generate intermediate code in gen_opc_buf and gen_opparam_buf for 652 /* generate intermediate code in gen_opc_buf and gen_opparam_buf for
666 basic block 'tb'. If search_pc is TRUE, also generate PC 653 basic block 'tb'. If search_pc is TRUE, also generate PC
667 information for each intermediate instruction. */ 654 information for each intermediate instruction. */
668@@ -2416,6 +2417,15 @@ static inline int gen_intermediate_code_ 655@@ -2416,6 +2417,15 @@
669 nb_gen_labels = 0; 656 nb_gen_labels = 0;
670 lj = -1; 657 lj = -1;
671 do { 658 do {
@@ -684,7 +671,7 @@ Index: qemu/target-arm/translate.c
684Index: qemu/qemu_spinlock.h 671Index: qemu/qemu_spinlock.h
685=================================================================== 672===================================================================
686--- /dev/null 1970-01-01 00:00:00.000000000 +0000 673--- /dev/null 1970-01-01 00:00:00.000000000 +0000
687+++ qemu/qemu_spinlock.h 2006-11-23 10:48:25.000000000 +0000 674+++ qemu/qemu_spinlock.h 2006-08-26 16:31:53.000000000 +0100
688@@ -0,0 +1,182 @@ 675@@ -0,0 +1,182 @@
689+/* 676+/*
690+ * internal execution defines for qemu 677+ * internal execution defines for qemu