SHA256
1
0
forked from pool/qemu
OBS User unknown 2009-04-01 16:57:34 +00:00 committed by Git OBS Bridge
parent ff85d36533
commit a9eab62e5c
22 changed files with 1777 additions and 4113 deletions

2
.gitattributes vendored
View File

@ -21,5 +21,3 @@
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
kvm_bios.bin filter=lfs diff=lfs merge=lfs -text

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd82361665a1e5a7fd3bb5f6bc56c145d0f094a09d5f7d059a7a40632043d87a
size 131072

3
qemu-0.10.1.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c987d50d321cc856b0d98fd227bb26b0764e43f49abe24ae2312dd9eda204591
size 3068967

View File

@ -1,19 +0,0 @@
--- linux-user/signal.c
+++ linux-user/signal.c
@@ -364,10 +364,15 @@
k = &sigact_table[sig - 1];
handler = k->sa._sa_handler;
if (handler == TARGET_SIG_DFL) {
+ if (sig == TARGET_SIGTSTP || sig == TARGET_SIGTTIN || sig == TARGET_SIGTTOU) {
+ kill(getpid(),SIGSTOP);
+ return 0;
+ } else
/* default handler : ignore some signal. The other are fatal */
if (sig != TARGET_SIGCHLD &&
sig != TARGET_SIGURG &&
- sig != TARGET_SIGWINCH) {
+ sig != TARGET_SIGWINCH &&
+ sig != TARGET_SIGCONT) {
force_sig(sig);
} else {
return 0; /* indicate ignored */

View File

@ -1,55 +0,0 @@
2007-03-14 Gwenole Beauchesne <gbeauchesne@mandriva.com>
* hw/pc.c (pc_init1): Use the KVM specific BIOS for now.
================================================================================
--- qemu-0.9.0/Makefile
+++ qemu-0.9.0/Makefile
@@ -77,7 +77,7 @@
mkdir -p "$(DESTDIR)$(bindir)"
$(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
mkdir -p "$(DESTDIR)$(datadir)"
- for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
+ for x in bios.bin kvm_bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
video.x openbios-sparc32 linux_boot.bin pxe-ne2k_pci.bin \
pxe-rtl8139.bin pxe-pcnet.bin; do \
$(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
@@ -157,6 +157,7 @@
$(bindir)/qemu-mipsel \
$(bindir)/qemu-img \
$(datadir)/bios.bin \
+ $(datadir)/kvm_bios.bin \
$(datadir)/vgabios.bin \
$(datadir)/vgabios-cirrus.bin \
$(datadir)/ppc_rom.bin \
--- qemu-0.9.0/hw/pc.c
+++ qemu-0.9.0/hw/pc.c
@@ -27,6 +27,7 @@
//#define DEBUG_BIOS
#define BIOS_FILENAME "bios.bin"
+#define KVM_BIOS_FILENAME "kvm_bios.bin"
#define VGABIOS_FILENAME "vgabios.bin"
#define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin"
#define LINUX_BOOT_FILENAME "linux_boot.bin"
@@ -460,6 +461,7 @@
int piix3_devfn = -1;
CPUState *env;
NICInfo *nd;
+ const char *bios_filename = BIOS_FILENAME;
linux_boot = (kernel_filename != NULL);
@@ -486,7 +488,11 @@
bios_offset = ram_size + vga_ram_size;
vga_bios_offset = bios_offset + 256 * 1024;
- snprintf(buf, sizeof(buf), "%s/%s", bios_dir, BIOS_FILENAME);
+#ifdef USE_KVM
+ if (kvm_allowed)
+ bios_filename = KVM_BIOS_FILENAME;
+#endif
+ snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_filename);
bios_size = get_image_size(buf);
if (bios_size <= 0 ||
(bios_size % 65536) != 0 ||

View File

@ -1,37 +0,0 @@
2007-03-14 Gwenole Beauchesne <gbeauchesne@mandriva.com>
* sdl.c (sdl_update_caption): Report KQEMU accelerator accordingly
in the SDL window.
--- qemu-0.9.0/sdl.c.kvm-kqemu-window-caption 2007-03-14 17:59:05.000000000 +0100
+++ qemu-0.9.0/sdl.c 2007-03-14 18:02:55.000000000 +0100
@@ -212,13 +212,27 @@ static void sdl_process_key(SDL_Keyboard
static void sdl_update_caption(void)
{
+ int accl_mode = 0; /* 1=kqemu, 2=kvm */
char buf[1024];
strcpy(buf, "QEMU");
-#if USE_KVM
+#ifdef USE_KQEMU
+ if (kqemu_allowed) {
+ accl_mode = 1;
+ }
+#endif
+#ifdef USE_KVM
if (kvm_allowed) {
- strcat(buf, "/KVM");
+ accl_mode = 2;
}
#endif
+ switch (accl_mode) {
+ case 1:
+ strcat(buf, "/KQEMU");
+ break;
+ case 2:
+ strcat(buf, "/KVM");
+ break;
+ }
if (!vm_running) {
strcat(buf, " [Stopped]");
}

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:858780f82c1b357e203cb4a64b3fa6de18b344bc72e320cbbe9e09e1430a40ba
size 2780412

View File

@ -1,23 +0,0 @@
--- Makefile.target
+++ Makefile.target
@@ -84,6 +84,8 @@
OP_CFLAGS+=$(call cc-option, -fno-reorder-blocks, "")
OP_CFLAGS+=$(call cc-option, -fno-gcse, "")
OP_CFLAGS+=$(call cc-option, -fno-tree-ch, "")
+OP_CFLAGS+=$(call cc-option, -fno-tree-dominator-opts, "")
+OP_CFLAGS+=$(call cc-option, -fno-tree-vrp, "")
OP_CFLAGS+=$(call cc-option, -fno-optimize-sibling-calls, "")
OP_CFLAGS+=$(call cc-option, -fno-crossjumping, "")
OP_CFLAGS+=$(call cc-option, -fno-align-labels, "")
@@ -141,8 +143,9 @@
endif
ifeq ($(ARCH),ia64)
-CFLAGS+=-mno-sdata
-OP_CFLAGS+=-mno-sdata
+OP_CFLAGS+=$(call cc-option, -mno-sched-ar-data-spec, "")
+CFLAGS+=-G0 -mno-sdata
+OP_CFLAGS+=-G0 -mno-sdata
endif
ifeq ($(ARCH),arm)

View File

@ -1,11 +1,11 @@
Index: qemu/linux-user/syscall.c
================================================================================
--- qemu/linux-user/syscall.c
+++ qemu/linux-user/syscall.c
--- qemu-0.10.1/linux-user/syscall.c
+++ qemu-0.10.1/linux-user/syscall.c
@@ -29,7 +29,7 @@
#include <fcntl.h>
#include <time.h>
#include <limits.h>
#include <dirent.h>
-#include <sys/types.h>
+#include <linux/types.h>
#include <sys/ipc.h>
@ -21,15 +21,15 @@ Index: qemu/linux-user/syscall.c
#include <sys/shm.h>
#include <sys/sem.h>
#include <sys/statfs.h>
@@ -154,6 +157,7 @@
@@ -158,6 +161,7 @@
#define __NR_sys_exit __NR_exit
#define __NR_sys_sched_getaffinity __NR_sched_getaffinity
+#define __NR_sys_ipc __NR_ipc
#define __NR_sys_uname __NR_uname
#define __NR_sys_faccessat __NR_faccessat
#define __NR_sys_fchmodat __NR_fchmodat
@@ -261,6 +265,10 @@
@@ -266,6 +270,10 @@
#if defined(TARGET_NR_tkill) && defined(__NR_tkill)
_syscall2(int,sys_tkill,int,tid,int,sig)
#endif
@ -40,29 +40,7 @@ Index: qemu/linux-user/syscall.c
#ifdef __NR_sys_sched_getaffinity
_syscall3(int,sys_sched_getaffinity,pid_t,pid,unsigned int,cpusetsize,void*,mask)
#endif
@@ -1639,6 +1647,21 @@
abi_ulong __unused2;
};
+struct target_ipc64_perm
+{
+ int key;
+ unsigned int uid;
+ unsigned int gid;
+ unsigned int cuid;
+ unsigned int cgid;
+ unsigned short mode;
+ unsigned short __pad1;
+ unsigned short seq;
+ unsigned short __pad2;
+ target_ulong __unused1;
+ target_ulong __unused2;
+};
+
struct target_semid_ds
{
struct target_ipc_perm sem_perm;
@@ -1651,6 +1674,18 @@
@@ -1687,6 +1695,18 @@
abi_ulong __unused4;
};
@ -81,7 +59,7 @@ Index: qemu/linux-user/syscall.c
static inline abi_long target_to_host_ipc_perm(struct ipc_perm *host_ip,
abi_ulong target_addr)
{
@@ -1689,6 +1724,43 @@
@@ -1725,6 +1745,43 @@
return 0;
}
@ -125,7 +103,7 @@ Index: qemu/linux-user/syscall.c
static inline abi_long target_to_host_semid_ds(struct semid_ds *host_sd,
abi_ulong target_addr)
{
@@ -1719,6 +1791,32 @@
@@ -1755,6 +1812,32 @@
return 0;
}
@ -158,7 +136,7 @@ Index: qemu/linux-user/syscall.c
union semun {
int val;
struct semid_ds *buf;
@@ -1731,6 +1829,10 @@
@@ -1767,6 +1850,10 @@
unsigned short int *array;
};
@ -169,7 +147,7 @@ Index: qemu/linux-user/syscall.c
static inline abi_long target_to_host_semun(int cmd,
union semun *host_su,
abi_ulong target_addr,
@@ -1743,7 +1845,15 @@
@@ -1779,7 +1866,15 @@
case IPC_SET:
if (!lock_user_struct(VERIFY_READ, target_su, target_addr, 1))
return -TARGET_EFAULT;
@ -186,7 +164,7 @@ Index: qemu/linux-user/syscall.c
host_su->buf = ds;
unlock_user_struct(target_su, target_addr, 0);
break;
@@ -1779,7 +1889,14 @@
@@ -1815,7 +1910,14 @@
case IPC_SET:
if (lock_user_struct(VERIFY_WRITE, target_su, target_addr, 0))
return -TARGET_EFAULT;
@ -202,7 +180,7 @@ Index: qemu/linux-user/syscall.c
unlock_user_struct(target_su, target_addr, 1);
break;
case GETVAL:
@@ -1807,7 +1924,8 @@
@@ -1843,7 +1945,8 @@
{
union semun arg;
struct semid_ds dsarg;
@ -212,7 +190,7 @@ Index: qemu/linux-user/syscall.c
abi_long ret = 0;
switch( cmd ) {
@@ -1836,13 +1954,23 @@
@@ -1872,13 +1975,23 @@
ret = get_errno(semctl(first, second, cmd, arg));
host_to_target_semun(cmd,ptr,&arg,&dsarg);
break;
@ -237,8 +215,8 @@ Index: qemu/linux-user/syscall.c
}
return ret;
@@ -1866,6 +1994,41 @@
abi_ulong __unused5;
@@ -1908,6 +2021,41 @@
abi_ulong __unused5;
};
+struct target_shmid64_ds {
@ -279,7 +257,7 @@ Index: qemu/linux-user/syscall.c
static inline abi_long target_to_host_msqid_ds(struct msqid_ds *host_md,
abi_ulong target_addr)
{
@@ -2094,11 +2257,59 @@
@@ -2193,11 +2341,59 @@
case IPCOP_shmctl:
switch(second) {
case IPC_RMID:
@ -339,3 +317,48 @@ Index: qemu/linux-user/syscall.c
goto unimplemented;
}
break;
--- qemu-0.10.1/linux-user/syscall_defs.h
+++ qemu-0.10.1/linux-user/syscall_defs.h
@@ -2001,3 +2001,18 @@
#include "socket.h"
#include "errno_defs.h"
+
+struct target_ipc64_perm
+{
+ int key;
+ uint32_t uid;
+ uint32_t gid;
+ uint32_t cuid;
+ uint32_t cgid;
+ unsigned short mode;
+ unsigned short __pad1;
+ unsigned short seq;
+ unsigned short __pad2;
+ abi_ulong __unused1;
+ abi_ulong __unused2;
+};
--- qemu-0.10.1/linux-user/x86_64/syscall.h
+++ qemu-0.10.1/linux-user/x86_64/syscall.h
@@ -61,21 +61,6 @@
};
#endif
-struct target_ipc64_perm
-{
- int key;
- uint32_t uid;
- uint32_t gid;
- uint32_t cuid;
- uint32_t cgid;
- unsigned short mode;
- unsigned short __pad1;
- unsigned short seq;
- unsigned short __pad2;
- abi_ulong __unused1;
- abi_ulong __unused2;
-};
-
struct target_msqid64_ds {
struct target_ipc64_perm msg_perm;
unsigned int msg_stime; /* last msgsnd time */

View File

@ -1,10 +1,10 @@
Index: qemu/linux-user/mmap.c
================================================================================
--- qemu/linux-user/mmap.c
+++ qemu/linux-user/mmap.c
@@ -27,6 +27,10 @@
--- qemu-0.10.1/linux-user/mmap.c
+++ qemu-0.10.1/linux-user/mmap.c
@@ -33,6 +33,10 @@
#include "qemu.h"
#include "qemu-common.h"
+#if !defined(MAP_32BIT)
+#define MAP_32BIT 0
@ -13,7 +13,7 @@ Index: qemu/linux-user/mmap.c
//#define DEBUG_MMAP
#if defined(USE_NPTL)
@@ -211,7 +215,7 @@
@@ -232,7 +236,7 @@
if (prot1 == 0) {
/* no page was there, so we allocate one */
void *p = mmap(host_start, qemu_host_page_size, prot,
@ -22,12 +22,3 @@ Index: qemu/linux-user/mmap.c
if (p == MAP_FAILED)
return -1;
prot1 = prot;
@@ -551,7 +555,7 @@
mmap_lock();
/* XXX: use 5 args syscall */
- host_addr = (long)mremap(g2h(old_addr), old_size, new_size, flags);
+ host_addr = (long)mremap(g2h(old_addr), old_size, new_size, flags | MAP_32BIT);
if (host_addr == -1) {
new_addr = -1;
} else {

View File

@ -1,7 +1,7 @@
Index: qemu.bkp/linux-user/path.c
================================================================================
--- qemu/linux-user/path.c
+++ qemu/linux-user/path.c
--- qemu-0.10.1/linux-user/path.c
+++ qemu-0.10.1/linux-user/path.c
@@ -1,159 +1,81 @@
/* Code to mangle pathnames into those matching a given prefix.
eg. open("/lib/foo.so") => open("/usr/gnemul/i386-linux/lib/foo.so");
@ -176,7 +176,7 @@ Index: qemu.bkp/linux-user/path.c
+
/* Only do absolute paths: quick and dirty, but should mostly be OK.
Could do relative by tracking cwd. */
- if (!base || name[0] != '/')
- if (!base || !name || name[0] != '/')
- return name;
+ if (!list_head || result[0] != '/')
+ goto exit;

View File

@ -1,33 +0,0 @@
--- target-ppc/op.c
+++ target-ppc/op.c
@@ -2720,6 +2720,7 @@
}
#endif /* !defined(CONFIG_USER_ONLY) */
+#if defined(TARGET_PPC64)
/* SPE extension */
void OPPROTO op_splatw_T1_64 (void)
{
@@ -3438,3 +3439,4 @@
T0 = _do_efdtsteq(T0_64, T1_64);
RETURN();
}
+#endif
--- target-ppc/translate.c
+++ target-ppc/translate.c
@@ -5853,6 +5853,7 @@
#endif /* !defined(TARGET_PPC64) */
+#if defined(TARGET_PPC64)
#define GEN_SPE(name0, name1, opc2, opc3, inval, type) \
GEN_HANDLER(name0##_##name1, 0x04, opc2, opc3, inval, type) \
{ \
@@ -6760,6 +6761,7 @@
GEN_SPE(efdctsiz, speundef, 0x1D, 0x0B, 0x00180000, PPC_SPEFPU); //
GEN_SPE(efdtstgt, efdtstlt, 0x1E, 0x0B, 0x00600000, PPC_SPEFPU); //
GEN_SPE(efdtsteq, speundef, 0x1F, 0x0B, 0x00600000, PPC_SPEFPU); //
+#endif
/* End opcode list */
GEN_OPCODE_MARK(end);

View File

@ -1,16 +1,16 @@
Index: qemu.bkp/linux-user/syscall.c
================================================================================
--- qemu/linux-user/syscall.c
+++ qemu/linux-user/syscall.c
@@ -152,6 +152,7 @@
}
--- qemu-0.10.1/linux-user/syscall.c
+++ qemu-0.10.1/linux-user/syscall.c
@@ -157,6 +157,7 @@
#define __NR_sys_exit __NR_exit
+#define __NR_sys_sched_getaffinity __NR_sched_getaffinity
#define __NR_sys_uname __NR_uname
#define __NR_sys_faccessat __NR_faccessat
#define __NR_sys_fchmodat __NR_fchmodat
@@ -242,6 +243,9 @@
@@ -265,6 +266,9 @@
#if defined(TARGET_NR_tkill) && defined(__NR_tkill)
_syscall2(int,sys_tkill,int,tid,int,sig)
#endif
@ -20,7 +20,7 @@ Index: qemu.bkp/linux-user/syscall.c
#ifdef __NR_exit_group
_syscall1(int,exit_group,int,error_code)
#endif
@@ -5857,6 +5861,17 @@
@@ -6090,6 +6094,17 @@
break;
#endif

View File

@ -1,71 +0,0 @@
Index: qemu/cpu-exec.c
===================================================================
--- qemu.orig/cpu-exec.c
+++ qemu/cpu-exec.c
@@ -408,7 +408,7 @@ int cpu_exec(CPUState *env1)
!(env->hflags & HF_INHIBIT_IRQ_MASK)) {
int intno;
svm_check_intercept(SVM_EXIT_INTR);
- env->interrupt_request &= ~CPU_INTERRUPT_HARD;
+ env->interrupt_request &= ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ);
intno = cpu_get_pic_interrupt(env);
if (loglevel & CPU_LOG_TB_IN_ASM) {
fprintf(logfile, "Servicing hardware INT=0x%02x\n", intno);
@@ -427,12 +427,13 @@ int cpu_exec(CPUState *env1)
int intno;
/* FIXME: this should respect TPR */
env->interrupt_request &= ~CPU_INTERRUPT_VIRQ;
- stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl),
- ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl)) & ~V_IRQ_MASK);
+ svm_check_intercept(SVM_EXIT_VINTR);
intno = ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_vector));
if (loglevel & CPU_LOG_TB_IN_ASM)
fprintf(logfile, "Servicing virtual hardware INT=0x%02x\n", intno);
do_interrupt(intno, 0, 0, -1, 1);
+ stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl),
+ ldl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_ctl)) & ~V_IRQ_MASK);
#if defined(__sparc__) && !defined(HOST_SOLARIS)
tmp_T0 = 0;
#else
Index: qemu/target-i386/helper.c
===================================================================
--- qemu.orig/target-i386/helper.c
+++ qemu/target-i386/helper.c
@@ -4120,8 +4122,9 @@ void helper_vmrun(target_ulong addr)
if (loglevel & CPU_LOG_TB_IN_ASM)
fprintf(logfile, " %#x %#x\n", env->exception_index, env->error_code);
}
- if (int_ctl & V_IRQ_MASK)
+ if ((int_ctl & V_IRQ_MASK) || (env->intercept & INTERCEPT_VINTR)) {
env->interrupt_request |= CPU_INTERRUPT_VIRQ;
+ }
cpu_loop_exit();
}
@@ -4283,6 +4291,13 @@ void vmexit(uint64_t exit_code, uint64_t
ldq_phys(env->vm_vmcb + offsetof(struct vmcb, control.exit_info_2)),
EIP);
+ if(env->hflags & HF_INHIBIT_IRQ_MASK) {
+ stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_state), SVM_INTERRUPT_SHADOW_MASK);
+ env->hflags &= ~HF_INHIBIT_IRQ_MASK;
+ } else {
+ stl_phys(env->vm_vmcb + offsetof(struct vmcb, control.int_state), 0);
+ }
+
/* Save the VM state in the vmcb */
SVM_SAVE_SEG(env->vm_vmcb, segs[R_ES], es);
SVM_SAVE_SEG(env->vm_vmcb, segs[R_CS], cs);
Index: qemu/target-i386/translate.c
===================================================================
--- qemu.orig/target-i386/translate.c
+++ qemu/target-i386/translate.c
@@ -5551,8 +5551,6 @@ static target_ulong disas_insn(DisasCont
gen_op_set_inhibit_irq();
/* give a chance to handle pending irqs */
gen_jmp_im(s->pc - s->cs_base);
- if (gen_svm_check_intercept(s, pc_start, SVM_EXIT_VINTR))
- break;
gen_eob(s);
} else {
gen_exception(s, EXCP0D_GPF, pc_start - s->cs_base);

46
qemu-svn-i386-nptl.patch Normal file
View File

@ -0,0 +1,46 @@
Index: linux-user/syscall.c
================================================================================
--- configure
+++ configure
@@ -1610,6 +1610,7 @@
echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
echo "#define CONFIG_KVM 1" >> $config_h
fi
+ target_nptl="yes"
;;
x86_64)
echo "TARGET_ARCH=x86_64" >> $config_mak
--- linux-user/syscall.c
+++ linux-user/syscall.c
@@ -3175,8 +3175,14 @@
flags &= ~CLONE_NPTL_FLAGS2;
/* TODO: Implement CLONE_CHILD_CLEARTID. */
- if (nptl_flags & CLONE_SETTLS)
+ if (nptl_flags & CLONE_SETTLS) {
+#if defined(TARGET_I386) && defined(TARGET_ABI32)
+ do_set_thread_area(new_env, newtls);
+ cpu_x86_load_seg(new_env, R_GS, new_env->segs[R_GS].selector);
+#else
cpu_set_tls (new_env, newtls);
+#endif
+ }
/* Grab a mutex so that thread setup appears atomic. */
pthread_mutex_lock(&clone_lock);
@@ -3247,8 +3253,14 @@
if (flags & CLONE_PARENT_SETTID)
put_user_u32(gettid(), parent_tidptr);
ts = (TaskState *)env->opaque;
- if (flags & CLONE_SETTLS)
+ if (flags & CLONE_SETTLS) {
+#if defined(TARGET_I386) && defined(TARGET_ABI32)
+ do_set_thread_area(env, newtls);
+ cpu_x86_load_seg(env, R_GS, env->segs[R_GS].selector);
+#else
cpu_set_tls (env, newtls);
+#endif
+ }
/* TODO: Implement CLONE_CHILD_CLEARTID. */
#endif
} else {

View File

@ -1,15 +1,15 @@
--- configure
+++ configure
@@ -799,7 +799,7 @@
@@ -949,7 +949,7 @@
#include <curses.h>
int main(void) { return curses_version(); }
EOF
- if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
+ if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lncurses 2> /dev/null ; then
- if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses > /dev/null 2> /dev/null ; then
+ if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lncurses > /dev/null 2> /dev/null ; then
curses=yes
fi
fi # test "$curses"
@@ -1102,7 +1102,7 @@
@@ -1427,7 +1427,7 @@
if test "$curses" = "yes" ; then
echo "#define CONFIG_CURSES 1" >> $config_h
echo "CONFIG_CURSES=yes" >> $config_mak

View File

@ -1,26 +0,0 @@
--- configure
+++ configure
@@ -547,11 +549,8 @@
mipsel-softmmu \
mips64-softmmu \
mips64el-softmmu \
-ppc-softmmu \
-ppcemb-softmmu \
-ppc64-softmmu \
sh4-softmmu \
sh4eb-softmmu \
sparc-softmmu \
"
fi
@@ -569,11 +566,8 @@
m68k-linux-user \
mips-linux-user \
mipsel-linux-user \
-ppc-linux-user \
-ppc64-linux-user \
-ppc64abi32-linux-user \
sh4-linux-user \
sh4eb-linux-user \
sparc-linux-user \
sparc64-linux-user \
sparc32plus-linux-user \

View File

@ -2,7 +2,7 @@ Index: Makefile.target
================================================================================
--- Makefile.target
+++ Makefile.target
@@ -644,6 +644,9 @@
@@ -690,6 +690,9 @@
ifdef CONFIG_SLIRP
CPPFLAGS+=-I$(SRC_PATH)/slirp
endif
@ -14,7 +14,7 @@ Index: Makefile.target
# specific flags are needed for non soft mmu emulator
--- configure
+++ configure
@@ -92,6 +92,7 @@
@@ -160,6 +160,7 @@
gdbstub="yes"
slirp="yes"
vde="yes"
@ -22,7 +22,7 @@ Index: Makefile.target
fmod_lib=""
fmod_inc=""
oss_lib=""
@@ -296,6 +297,8 @@
@@ -392,6 +393,8 @@
;;
--disable-vde) vde="no"
;;
@ -31,7 +31,7 @@ Index: Makefile.target
--disable-kqemu) kqemu="no"
;;
--disable-brlapi) brlapi="no"
@@ -1204,6 +1207,10 @@
@@ -1353,6 +1356,10 @@
echo "#define CONFIG_VDE 1" >> $config_h
echo "VDE_LIBS=-lvdeplug" >> $config_mak
fi
@ -42,25 +42,14 @@ Index: Makefile.target
for card in $audio_card_list; do
def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
echo "$def=yes" >> $config_mak
--- vl.c
+++ vl.c
@@ -106,6 +106,10 @@
#include "qemu_socket.h"
+#if defined(CONFIG_PCAP)
+#include <pcap.h>
+#endif
+
#if defined(CONFIG_SLIRP)
#include "libslirp.h"
#endif
@@ -4305,6 +4309,104 @@
--- net.c
+++ net.c
@@ -689,6 +689,104 @@
#endif /* CONFIG_SLIRP */
+#if defined(CONFIG_PCAP)
+
+#include <pcap.h>
+typedef struct PCAPState {
+ VLANClientState *vc;
+ pcap_t *handle;
@ -87,7 +76,7 @@ Index: Makefile.target
+ pcap_dispatch(s->handle, 1, (pcap_handler)&pcap_callback, (u_char *)s->vc);
+}
+
+static int net_pcap_init(VLANState *vlan, char *ifname)
+static int net_pcap_init(VLANState *vlan, const char *model, const char *name, char *ifname)
+{
+ PCAPState *s;
+ char errbuf[PCAP_ERRBUF_SIZE];
@ -136,7 +125,7 @@ Index: Makefile.target
+ }
+#endif /* BIOCIMMEDIATE */
+
+ s->vc = qemu_new_vlan_client(vlan, pcap_receive, NULL, s);
+ s->vc = qemu_new_vlan_client(vlan, model, name, pcap_receive, NULL, s);
+ snprintf(s->vc->info_str, sizeof(s->vc->info_str), "pcap redirector");
+ if ((fd = pcap_get_selectable_fd(s->handle)) < 0) {
+ fprintf(stderr, "qemu: pcap_get_selectable_fd failed\n");
@ -160,30 +149,35 @@ Index: Makefile.target
#if !defined(_WIN32)
typedef struct TAPState {
@@ -5235,6 +5337,15 @@
ret = net_slirp_init(vlan);
} else
#endif
@@ -1656,7 +1754,17 @@
}
vlan->nb_host_devs++;
ret = net_slirp_init(vlan, device, name);
- } else if (!strcmp(device, "channel")) {
+ } else
+#ifdef CONFIG_PCAP
+ if (!strcmp(device, "pcap")) {
+ char ifname[64];
+ if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0)
+ ret = net_pcap_init(vlan, NULL);
+ ret = net_pcap_init(vlan, device, name, NULL);
+ else
+ ret = net_pcap_init(vlan, ifname);
+ ret = net_pcap_init(vlan, device, name, ifname);
+ } else
+#endif
#ifdef _WIN32
if (!strcmp(device, "tap")) {
char ifname[64];
@@ -8108,6 +8219,10 @@
" connect the user mode network stack to VLAN 'n' and send\n"
" hostname 'host' to DHCP clients\n"
+ if (!strcmp(device, "channel")) {
long port;
char name[20], *devname;
struct VMChannel *vmc;
--- vl.c
+++ vl.c
@@ -3990,6 +3994,10 @@
" use '[down]script=no' to disable script execution;\n"
" use 'fd=h' to connect to an already opened TAP interface\n"
#endif
+#ifdef CONFIG_PCAP
+ "-net pcap[,vlan=n][,ifname=name]\n"
+ " connect the host network interface using PCAP to VLAN 'n'\n"
+#endif
#ifdef _WIN32
"-net tap[,vlan=n],ifname=name\n"
" connect the host TAP network interface to VLAN 'n'\n"
"-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
" connect the vlan 'n' to another VLAN using a socket connection\n"
"-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"

1481
qemu-svn-s390.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,63 @@
-------------------------------------------------------------------
Fri Mar 27 12:20:21 CET 2009 - crrodriguez@suse.de
- BuildRequire zlib-devel-static
-------------------------------------------------------------------
Tue Mar 24 15:33:47 CET 2009 - uli@suse.de
- update -> release (0.10.1)
- fixes bnc #435135 (CVE-2008-4539, SWAMP #22179), #362956
(CVE-2008-1945, CVE-2008-0928), #461565 (CVE-2008-2382)
- Kernel Virtual Machine acceleration support
- GDB XML register description support
- Intel e1000 emulation
- HPET emulation
- VirtIO paravirtual device support
- Marvell 88w8618 / MusicPal emulation
- Nokia N-series tablet emulation / OMAP2 processor emulation
- PCI hotplug support
- Curses display support
- qemu-nbd utility to mount supported block formats
- Altivec support in PPC emulation and new firmware (OpenBIOS)
- Multiple VNC clients are now supported
- TLS encryption is now supported in VNC
- MIPS Magnum R4000 machine (Hervé Poussineau)
- Braille support (Samuel Thibault)
- Freecom MusicPal system emulation (Jan Kiszka)
- OMAP242x and Nokia N800, N810 machines (Andrzej Zaborowski)
- EsounD audio driver (Frederick Reeve)
- Gravis Ultrasound GF1 sound card (Tibor "TS" Schütz)
- Many, many, bug fixes and new features
- virtio-net: allow masking of notifications on empty queue (Alex
Williamson)
- e1000: fix rx descriptor low threshold logic (Alex Willaimson)
- x86 tcg: add NULL checks to lsl instruction (Jan Kiszka)
- kvm vga: fix screen corruption with -std-vga and Windows (Avi Kivity)
- kvm vga: fix screen corruption with Ubuntu installations (Glauber Costa)
- virtio-net: check right return size on sg list (Alex Williamson)
- Make qemu_announce_self handle holes (live migration after hotplug)
(Marcelo Tosatti)
- Revert r6804-r6808 (qcow2 allocation info). This series of changes
added a high cost to startup for large qcow2 images (Anthony Liguori)
- qemu-img: fix help message (Aurelien Jarno)
- Fix build for non-default installs of SDL (Anthony Liguori)
- Fix race condition in env->interrupt_request. When using TCG and a
dynticks host timer, this condition could cause TCG to get stuck in an
infinite loop (Aurelien Jarno)
- Fix reading encrypted hard disk passwords during early startup (Jan
Kiszka)
- Fix encrypted disk reporting in 'info block' (Jan Kiszka)
- Fix console size with tiny displays (MusicPal) (Jan Kiszka)
- Improve error handling in bdrv_open2 (Jan Kiszka)
- Avoid leaking data in mux'ed character devices (Jan Kiszka)
- Fix initial character device reset (no banner in monitor) (Jan Kiszka)
- Fix cpuid KVM crash on i386 host (Lubomir Rintel)
- Fix SLES10sp2 installation by adding ISTAT1 register to LSI SCSI
emulation (Ryan Harper)
- s390x TCG backend
- i386-linux-user NPTL support
-------------------------------------------------------------------
Wed Oct 8 17:03:34 CEST 2008 - uli@suse.de

113
qemu.spec
View File

@ -1,7 +1,7 @@
#
# spec file for package qemu (Version 0.9.2svn20081008)
# spec file for package qemu (Version 0.10.1)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -19,23 +19,19 @@
Name: qemu
BuildRequires: SDL-devel bison e2fsprogs-devel libgnutls-devel libpcap-devel ncurses-devel
BuildRequires: SDL-devel bison e2fsprogs-devel libgnutls-devel libpcap-devel ncurses-devel zlib-devel-static
Url: http://fabrice.bellard.free.fr/qemu/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
Group: System/Emulators/PC
Summary: Universal CPU emulator
Version: 0.9.2svn20081008
Version: 0.10.1
Release: 1
Source: %name-20081008.tar.bz2
Source: %name-%version.tar.bz2
Patch1: qemu-0.9.0.cvs-binfmt.patch
Patch6: qemu-0.7.0-amd64.patch
Patch8: qemu-cvs-pthread.patch
Patch14: qemu-0.7.1-jobsignals.patch
#Patch19: qemu-0.9.0-nousbdevfs.patch
Patch34: qemu-0.9.0-migration.patch
Patch37: qemu-0.9.0-kvm.patch
Patch38: qemu-0.9.0-kvm-bios.patch
Patch39: qemu-0.9.0-kvm-kqemu-window-caption.patch
Patch50: qemu-cvs-newpath.patch
Patch53: qemu-cvs-sched_getaffinity.patch
Patch56: qemu-cvs-ipc.patch
@ -49,21 +45,17 @@ Patch63: qemu-cvs-gettimeofday.patch
Patch64: qemu-cvs-nofadvise64.patch
Patch65: qemu-cvs-flash.patch
Patch66: qemu-cvs-mmap-amd64.patch
#Patch67: qemu-cvs-noppcemb.patch
Patch69: qemu-cvs-ia64.patch
Patch82: qemu-cvs-svm2.patch
Patch83: qemu-cvs-ppcspe.patch
Patch85: qemu-img-vmdk-scsi.patch
Patch86: qemu-svn-ncurses.patch
Patch87: qemu-svn-nodyngen.patch
Patch88: qemu-svn-pcap.patch
Patch90: qemu-nonvoid_return.patch
#Patch91: qemu-svn-dirent.patch
Source200: kvm_bios.bin
Patch92: qemu-svn-s390.patch
Patch93: qemu-svn-i386-nptl.patch
# this is to make lint happy
Source300: rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 ppc sparc x86_64 ia64 s390 ppc64
ExclusiveArch: %ix86 ppc sparc %arm x86_64 s390x ppc64
%description
QEMU is an extremely well-performing CPU emulator that allows you to
@ -79,12 +71,11 @@ Authors:
Fabrice Bellard <fabrice.bellard@free.fr>
%prep
%setup -q -n %name
%setup -q
ln -s fpu/*.h .
%patch1 -p1
%patch6
%patch8 -p1
%patch14
#%patch19
%patch50 -p1
%patch53 -p1
@ -99,18 +90,15 @@ ln -s fpu/*.h .
%patch64 -p1
%patch65 -p1
%patch66 -p1
#%patch67 -p1
%patch69
%patch83
%patch85 -p1
%patch86
%patch87
%patch88
%patch90
#%patch91
%patch92
%patch93
%build
cp -p %SOURCE200 pc-bios/
# build QEMU
mkdir -p dynamic
# build qemu-system without kqemu support
@ -118,20 +106,19 @@ mkdir -p dynamic
--interp-prefix=/usr/share/qemu/qemu-i386 \
--audio-card-list="ac97 adlib cs4231a gus" \
--audio-drv-list="alsa sdl" --enable-mixemu \
--disable-gcc-check \
--extra-cflags="$QEMU_OPT_FLAGS" --enable-system --disable-linux-user
make %{?jobs:-j%{jobs}}
mv */qemu */qemu-* dynamic || true
make %{?jobs:-j%{jobs}} V=1
make qemu-img V=1
mv */qemu */qemu-* qemu-img dynamic || true
make clean
# build userland emus
./configure --prefix=/usr \
--interp-prefix=/usr/share/qemu/qemu-i386 \
--enable-linux-user \
--disable-system \
--static --disable-gcc-check \
--static \
--extra-cflags="$QEMU_OPT_FLAGS"
make %{?jobs:-j%{jobs}}
make qemu-img
make %{?jobs:-j%{jobs}} V=1
%install
install -d -m 755 $RPM_BUILD_ROOT/usr/bin
@ -146,7 +133,7 @@ install -d -m 755 $RPM_BUILD_ROOT/usr/share/qemu
install -m 644 pc-bios/*.bin pc-bios/video.x pc-bios/openbios-sparc* $RPM_BUILD_ROOT/usr/share/qemu
install -d -m 755 $RPM_BUILD_ROOT/usr/sbin
install -m 755 qemu-binfmt-conf.sh $RPM_BUILD_ROOT/usr/sbin
install -m 755 qemu-img $RPM_BUILD_ROOT/usr/bin
install -m 755 dynamic/qemu-img $RPM_BUILD_ROOT/usr/bin
install -d -m 755 $RPM_BUILD_ROOT/usr/share/qemu/keymaps
install -m 644 keymaps/[a-z]* $RPM_BUILD_ROOT/usr/share/qemu/keymaps
%ifnarch %ix86 x86_64
@ -174,6 +161,60 @@ rm -rf ${RPM_BUILD_ROOT}
%endif
%changelog
* Fri Mar 27 2009 crrodriguez@suse.de
- BuildRequire zlib-devel-static
* Tue Mar 24 2009 uli@suse.de
- update -> release (0.10.1)
- fixes bnc #435135 (CVE-2008-4539, SWAMP #22179), #362956
(CVE-2008-1945, CVE-2008-0928), #461565 (CVE-2008-2382)
- Kernel Virtual Machine acceleration support
- GDB XML register description support
- Intel e1000 emulation
- HPET emulation
- VirtIO paravirtual device support
- Marvell 88w8618 / MusicPal emulation
- Nokia N-series tablet emulation / OMAP2 processor emulation
- PCI hotplug support
- Curses display support
- qemu-nbd utility to mount supported block formats
- Altivec support in PPC emulation and new firmware (OpenBIOS)
- Multiple VNC clients are now supported
- TLS encryption is now supported in VNC
- MIPS Magnum R4000 machine (Hervé Poussineau)
- Braille support (Samuel Thibault)
- Freecom MusicPal system emulation (Jan Kiszka)
- OMAP242x and Nokia N800, N810 machines (Andrzej Zaborowski)
- EsounD audio driver (Frederick Reeve)
- Gravis Ultrasound GF1 sound card (Tibor "TS" Schütz)
- Many, many, bug fixes and new features
- virtio-net: allow masking of notifications on empty queue (Alex
Williamson)
- e1000: fix rx descriptor low threshold logic (Alex Willaimson)
- x86 tcg: add NULL checks to lsl instruction (Jan Kiszka)
- kvm vga: fix screen corruption with -std-vga and Windows (Avi Kivity)
- kvm vga: fix screen corruption with Ubuntu installations (Glauber Costa)
- virtio-net: check right return size on sg list (Alex Williamson)
- Make qemu_announce_self handle holes (live migration after hotplug)
(Marcelo Tosatti)
- Revert r6804-r6808 (qcow2 allocation info). This series of changes
added a high cost to startup for large qcow2 images (Anthony Liguori)
- qemu-img: fix help message (Aurelien Jarno)
- Fix build for non-default installs of SDL (Anthony Liguori)
- Fix race condition in env->interrupt_request. When using TCG and a
dynticks host timer, this condition could cause TCG to get stuck in an
infinite loop (Aurelien Jarno)
- Fix reading encrypted hard disk passwords during early startup (Jan
Kiszka)
- Fix encrypted disk reporting in 'info block' (Jan Kiszka)
- Fix console size with tiny displays (MusicPal) (Jan Kiszka)
- Improve error handling in bdrv_open2 (Jan Kiszka)
- Avoid leaking data in mux'ed character devices (Jan Kiszka)
- Fix initial character device reset (no banner in monitor) (Jan Kiszka)
- Fix cpuid KVM crash on i386 host (Lubomir Rintel)
- Fix SLES10sp2 installation by adding ISTAT1 register to LSI SCSI
emulation (Ryan Harper)
- s390x TCG backend
- i386-linux-user NPTL support
* Wed Oct 08 2008 uli@suse.de
- update -> current SVN
- fixes PPC hosts
@ -258,7 +299,7 @@ rm -rf ${RPM_BUILD_ROOT}
- disable only SNDRV_SB_CSP_IOCTL_LOAD_CODE for _IOC_SIZEBITS < 14
* Thu Aug 09 2007 olh@suse.de
- disable some alsa SB ioctl declarations
* Tue Aug 07 2007 olh@suse.de
* Mon Aug 06 2007 olh@suse.de
- remove inclusion of linux/compiler.h
* Mon Jul 30 2007 uli@suse.de
- fixed for S/390
@ -287,7 +328,7 @@ rm -rf ${RPM_BUILD_ROOT}
* Thu Jun 14 2007 agraf@suse.de
- made wine work (set FS register to 0 on init)
- suppressed robust_list warnings
* Thu Jun 14 2007 agraf@suse.de
* Wed Jun 13 2007 agraf@suse.de
- made flash player 9 work on ppc
- fixed FUTEX_WAKE_OP on machines where endianness differs
- made mmap on x86_64 use the MAP_32BIT flag
@ -315,7 +356,7 @@ rm -rf ${RPM_BUILD_ROOT}
- applied strace patch for debugging (by Stuart R. Anderson)
* Wed Apr 04 2007 agraf@suse.de
- fixed initrd loading on x86
* Fri Mar 30 2007 ro@suse.de
* Thu Mar 29 2007 ro@suse.de
- added bison to BuildRequires
* Tue Feb 20 2007 uli@suse.de
- added better fix by Robert Schiele (bug #241950)
@ -368,9 +409,9 @@ rm -rf ${RPM_BUILD_ROOT}
* Wed Mar 08 2006 uli@suse.de
- split giant patch
- added NWFPE glue code fix
* Wed Mar 08 2006 schwab@suse.de
- More fixes for ia64 port.
* Tue Mar 07 2006 schwab@suse.de
- More fixes for ia64 port.
* Mon Mar 06 2006 schwab@suse.de
- Remove obsolete hunk from ia64 patch.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
@ -386,7 +427,7 @@ rm -rf ${RPM_BUILD_ROOT}
- updated linker scripts for new binutils release
* Sat Sep 17 2005 dmueller@suse.de
- update to 0.7.2
* Tue Aug 16 2005 schwab@suse.de
* Mon Aug 15 2005 schwab@suse.de
- Don't package /emul/ia32-linux on ia64.
* Mon Aug 15 2005 schwab@suse.de
- Fix compilation on ia64.