Index: qemu/configure
===================================================================
---- qemu.orig/configure 2006-08-14 22:09:39.000000000 +0100
-+++ qemu/configure 2006-08-14 22:38:54.000000000 +0100
-@@ -96,6 +96,7 @@
- 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`
-@@ -240,6 +241,8 @@
+@@ -243,6 +244,8 @@
;;
- --enable-uname-release=*) uname_release="$optarg"
+ --enable-iasl) build_acpi_tables="yes"
;;
+ --disable-nptl) nptl="no"
+ ;;
esac
done
-@@ -438,6 +441,23 @@
+@@ -441,6 +444,23 @@
fi
fi
##########################################
# SDL probe
-@@ -556,6 +576,7 @@
+@@ -559,6 +579,7 @@
fi
echo "FMOD support $fmod $fmod_support"
echo "kqemu support $kqemu"
echo "Documentation $build_docs"
[ ! -z "$uname_release" ] && \
echo "uname -r $uname_release"
-@@ -864,6 +885,14 @@
+@@ -880,6 +901,14 @@
echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
fi
fi
if test "$cocoa" = "yes" ; then
Index: qemu/exec-all.h
===================================================================
---- qemu.orig/exec-all.h 2006-05-26 18:10:52.000000000 +0100
-+++ qemu/exec-all.h 2006-08-14 22:37:29.000000000 +0100
+--- 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];
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-08-14 22:37:29.000000000 +0100
+--- 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
#define ARM_NR_thumb_semihosting 0xAB
Index: qemu/linux-user/main.c
===================================================================
---- qemu.orig/linux-user/main.c 2006-05-26 18:11:01.000000000 +0100
-+++ qemu/linux-user/main.c 2006-08-14 22:37:29.000000000 +0100
-@@ -331,6 +331,50 @@
+--- 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 @@
}
}
void cpu_loop(CPUARMState *env)
{
int trapnr;
-@@ -387,10 +431,8 @@
+@@ -365,10 +409,8 @@
}
}
env->regs[0] = do_arm_semihosting (env);
} else if (n == 0 || n >= ARM_SYSCALL_BASE
|| (env->thumb && n == ARM_THUMB_SYSCALL)) {
-@@ -401,14 +443,34 @@
+@@ -379,14 +421,34 @@
n -= ARM_SYSCALL_BASE;
env->eabi = 0;
}
} else {
goto error;
}
-@@ -447,6 +509,10 @@
+@@ -425,6 +487,10 @@
}
}
break;
default:
error:
fprintf(stderr, "qemu: unhandled CPU exception 0x%x - aborting\n",
-@@ -1649,6 +1715,10 @@
+@@ -1639,6 +1705,10 @@
ts->heap_base = info->brk;
/* This will be filled in on the first SYS_HEAPINFO call. */
ts->heap_limit = 0;
{
Index: qemu/linux-user/qemu.h
===================================================================
---- qemu.orig/linux-user/qemu.h 2006-05-26 18:11:01.000000000 +0100
-+++ qemu/linux-user/qemu.h 2006-08-14 22:37:29.000000000 +0100
-@@ -76,6 +76,9 @@
+--- 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
+ uint32_t *child_tidptr;
+#endif
+ struct image_info *info;
uint8_t stack[0];
} __attribute__((aligned(16))) TaskState;
-
Index: qemu/linux-user/syscall.c
===================================================================
---- qemu.orig/linux-user/syscall.c 2006-05-26 18:11:01.000000000 +0100
-+++ qemu/linux-user/syscall.c 2006-08-14 22:44:47.000000000 +0100
+--- 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>
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC)
/* 16 bit uid wrappers emulation */
#define USE_UID16
-@@ -1569,20 +1578,38 @@
+@@ -1602,20 +1611,38 @@
thread/process */
#define NEW_STACK_SIZE 8192
if (flags & CLONE_VM) {
ts = malloc(sizeof(TaskState) + NEW_STACK_SIZE);
-@@ -1627,16 +1654,60 @@
+@@ -1665,16 +1692,60 @@
#error unsupported target CPU
#endif
new_env->opaque = ts;
}
return ret;
}
-@@ -1880,7 +1951,7 @@
+@@ -1918,7 +1989,7 @@
ret = do_brk(arg1);
break;
case TARGET_NR_fork:
break;
case TARGET_NR_waitpid:
{
-@@ -2836,7 +2907,8 @@
+@@ -2989,7 +3060,8 @@
ret = get_errno(fsync(arg1));
break;
case TARGET_NR_clone:
break;
#ifdef __NR_exit_group
/* new thread calls */
-@@ -3186,7 +3258,8 @@
+@@ -3339,7 +3411,8 @@
#endif
#ifdef TARGET_NR_vfork
case TARGET_NR_vfork:
break;
#endif
#ifdef TARGET_NR_ugetrlimit
-@@ -3681,4 +3754,3 @@
+@@ -3838,4 +3911,3 @@
#endif
return ret;
}
-
Index: qemu/target-arm/cpu.h
===================================================================
---- qemu.orig/target-arm/cpu.h 2006-02-20 00:33:36.000000000 +0000
-+++ qemu/target-arm/cpu.h 2006-08-14 22:39:35.000000000 +0100
+--- 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
/* 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-08-14 22:37:29.000000000 +0100
+--- 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 */
Index: qemu/target-arm/op.c
===================================================================
---- qemu.orig/target-arm/op.c 2006-02-20 00:33:36.000000000 +0000
-+++ qemu/target-arm/op.c 2006-08-14 22:37:29.000000000 +0100
+--- 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();
}
"d" suffix. */
Index: qemu/target-arm/translate.c
===================================================================
---- qemu.orig/target-arm/translate.c 2006-05-26 18:11:04.000000000 +0100
-+++ qemu/target-arm/translate.c 2006-08-14 22:37:29.000000000 +0100
-@@ -2377,6 +2377,7 @@
+--- 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;
}
/* 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. */
-@@ -2411,6 +2412,15 @@
+@@ -2416,6 +2417,15 @@
nb_gen_labels = 0;
lj = -1;
do {
Index: qemu/qemu_spinlock.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ qemu/qemu_spinlock.h 2006-08-14 22:37:29.000000000 +0100
++++ qemu/qemu_spinlock.h 2006-08-26 16:31:53.000000000 +0100
@@ -0,0 +1,182 @@
+/*
+ * internal execution defines for qemu