Hello community,
here is the log from the commit of package kvm
checked in at Fri Mar 7 22:37:35 CET 2008.
--------
--- arch/i386/kvm/kvm.changes 2008-02-25 14:58:50.000000000 +0100
+++ kvm/kvm.changes 2008-03-07 17:56:30.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Mar 7 15:53:29 CET 2008 - bk@suse.de
+
+- Update to kvm-63, adds curses interface. It still uses gcc for qemu's
+ CPU emulation which is broken with gcc4 -> disable it temporarily.
+
+-------------------------------------------------------------------
Old:
----
kvm-61.tar.bz2
kvm-post61-commits.patch
New:
----
kvm-63.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kvm.spec ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:22.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:22.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package kvm (Version 61)
+# spec file for package kvm (Version 63)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -18,14 +18,23 @@
Group: System/Kernel
Summary: Kernel-based Virtual Machine
Url: http://kvm.qumranet.com/
-Version: 61
-Release: 5
-### On update of the tarball, recompress the tarball and:
-# - remove s390-dis.c
-# - remove the "patches" directory
+Version: 63
+Release: 1
+Source0: %name-%version.tar.bz2
+### To update to new version, recompress the kvm-??.tar.gz using:
+# rpmbuild -bp kvm.spec --define="_sourcedir `pwd`"
+#%(
+if [ -f %name-%version.tar.gz ]; then
+ gunzip %name-%version.tar.gz
+ tar --delete %name-%version/patches \
+ --delete "%name-%version/qemu/s390-dis.c" \
+ --delete "%name-%version/qemu/s390.ld" \
+ --file=%{name}-%{version}.tar
+ bzip2 %name-%version.tar
+fi
+)
###
ExclusiveArch: %ix86 x86_64
-Source0: %name-%version.tar.bz2
Source1: 60-kvm.rules
Patch01: qemu-datadir.diff
Patch02: kvm-susekernel.patch
@@ -41,9 +50,9 @@
Patch82: kvm-cpuid.patch
Patch83: kvm-gfxboot.patch
Patch90: acpi-tables.patch
-# Upstream patches:
+# For upstream patches:
Source100: convert-commits-to-patch.sh
-Patch100: kvm-post61-commits.patch
+#Patch100: kvm-commits.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: /usr/sbin/groupadd
%define use_kmp 1
@@ -143,18 +152,28 @@
cp -a bios bios-mac
%patch90 -p0 -b .bios-mac
%endif
+# Currently not used, keep it for later use:
# Apply selected upstream patches from the kvm-commits list:
-sh %_sourcedir/convert-commits-to-patch.sh %PATCH100 | patch -p0
+#sh %_sourcedir/convert-commits-to-patch.sh %PATCH100 | patch -p0
%build
[ -f qemu/s390-dis.c ] && exit 2 # bnc#353836
-# KVM's qemu-real-mode emulator (used with -no-kvm) is broken with -O1 or higher,
-# glxboot hangs before showing the menu if -O0 is not enforced here when -no-kvm
-# is used (do this only on x86_64, -O2 may be required on i386):
-%ifarch x86_64
-sed -i 's/-O2/-O0/' qemu/configure
-%endif
-./configure --prefix=%{_prefix} --disable-gcc-check --qemu-cflags="%{optflags}"
+# Temporary workaround until qemu's configure is fixed:
+sed -i 's/-lcurses/-lncurses/' qemu/configure
+# qemu's old CPU emulator (used if KVM disabled) is broken with gcc4
+# and using -O0 hurts qemu's device performance, so disable it and
+# give a hint until kvm merges qemu's new gcc-independent CPU instruction
+# emulator.
+# It may even be good to do that geneerally as it sounds be better
+# to give a clear noticeable error message instead of just being slow
+# by using qemu's CPU emulation:
+sed 's/Compiled with --disable-cpu-emulation, exiting./\
+CPU emulation is disabled in this kvm build, use qemu-system(-x86_64) instead!/' qemu/vl.c
+./configure --prefix=%{_prefix} \
+ --disable-cpu-emulation \
+ --disable-gcc-check --qemu-cflags="%{optflags}"
+# Aborts if curses support is not enabled:
+grep "^CONFIG_CURSES=yes" qemu/config-host.mak
# Patch kvm/user Makefile to accept inital CFLAGS:
sed -i 's/CFLAGS =/CFLAGS +=/' user/Makefile
echo "CFLAGS=%optflags" >> user/config.mak
@@ -211,6 +230,9 @@
%_mandir/man1/qemu-kvm.1.gz
%changelog
+* Fri Mar 07 2008 bk@suse.de
+- Update to kvm-63, adds curses interface. It still uses gcc for qemu's
+ CPU emulation which is broken with gcc4 -> disable it temporarily.
* Mon Feb 25 2008 alex@suse.de
- Fix cpuid patch
* Thu Feb 21 2008 bk@suse.de
++++++ acpi-tables.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:22.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:22.000000000 +0100
@@ -1,3 +1,4 @@
+# Send to upstream BOCHS
This ACPI BIOS patch provides:
- The PCI bus definition for PIC, HPET, RTC, SMC and OSYS and SMIF
- An PBLK which provides the size of the L2 and L3 caches
@@ -7,20 +8,7 @@
===================================================================
--- bios-mac/acpi-dsdt.dsl.orig
+++ bios-mac/acpi-dsdt.dsl
-@@ -25,6 +25,12 @@ DefinitionBlock (
- 0x1 // OEM Revision
- )
- {
-+ OperationRegion (GNVS, SystemMemory, 0x7EEDBC10, 0x0100)
-+ Field (GNVS, AnyAcc, Lock, Preserve)
-+ {
-+ OSYS, 16,
-+ SMIF, 8
-+ }
-
- Scope (\)
- {
-@@ -48,11 +54,84 @@ DefinitionBlock (
+@@ -199,11 +199,90 @@ DefinitionBlock (
{
DBGL, 32,
}
@@ -32,6 +20,12 @@
+ }
}
++ OperationRegion (GNVS, SystemMemory, 0x7EEDBC10, 0x0100)
++ Field (GNVS, AnyAcc, Lock, Preserve)
++ {
++ OSYS, 16,
++ SMIF, 8
++ }
/* PCI Bus definition */
Scope(\_SB) {
@@ -105,7 +99,7 @@
Device(PCI0) {
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
-@@ -312,6 +391,7 @@ DefinitionBlock (
+@@ -619,6 +698,7 @@ DefinitionBlock (
}
}
@@ -113,7 +107,7 @@
Device (COM2)
{
Name (_HID, EisaId ("PNP0501"))
-@@ -339,6 +419,7 @@ DefinitionBlock (
+@@ -646,6 +726,7 @@ DefinitionBlock (
Return (BUF0)
}
}
@@ -146,7 +140,7 @@
/* PIIX3 IDE */
pci_config_writew(d, 0x40, 0x8000); // enable IDE0
pci_config_writew(d, 0x42, 0x8000); // enable IDE1
-@@ -1498,6 +1501,13 @@ void acpi_bios_init(void)
+@@ -1449,6 +1452,13 @@ void acpi_bios_init(void)
acpi_build_table_header((struct acpi_table_header *)madt,
"APIC", madt_size, 1);
}
++++++ kvm-61.tar.bz2 -> kvm-63.tar.bz2 ++++++
++++ 16150 lines of diff (skipped)
++++++ kvm-cpuid.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,5 @@
+# Quick patch until proper version is upstream, but is safe.
+# Signed-off-by: Alex Graf - agraf@suse
Index: kvm-61/kernel/x86.c
===================================================================
--- kvm-61.orig/kernel/x86.c
++++++ kvm-gfxboot.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,4 +1,12 @@
-Index: kernel/include/asm-x86/kvm_host.h
+# Fixes boot with gfxboot of SUSE 10.0 till openSUSE 10.3 and other
+# distributions which use this version of gfxboot.
+# Has been discussed upstream, but upstream does not seem to care
+# much and wants to go for full emulation of this, but it's a project
+# for multible months to do that.
+# Room for improvement: Should use an explicitly defined illegal
+# instruction, not just one which happens to be illegal with current
+# CPUs.
+# Signed-off-by: Alex Graf - agraf@suse
===================================================================
--- kernel/include/asm-x86/kvm_host.h.orig
+++ kernel/include/asm-x86/kvm_host.h
++++++ kvm-ssse3.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,4 +1,6 @@
-Index: kernel/x86.c
+# Submit upstream
+# If real CPU has SSSE3, it exposes it in the guest:
+# Signed-off-by: Alex Graf - agraf@suse
===================================================================
--- kvm-59/kernel/x86.c
+++ kvm-59/kernel/x86.c
++++++ kvm-susekernel.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,4 @@
+# Quick suse-specific hack, never upstream this unfixed!
--- kernel/Makefile
+++ kernel/Makefile
@@ -27,7 +27,7 @@
++++++ qemu-applesmc.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,8 +1,9 @@
+#qemu-only -> submit upstream qemu
Index: qemu/Makefile.target
===================================================================
--- qemu/Makefile.target.orig
+++ qemu/Makefile.target
-@@ -581,7 +581,7 @@ ifeq ($(TARGET_BASE_ARCH), i386)
+@@ -584,7 +584,7 @@ ifeq ($(TARGET_BASE_ARCH), i386)
OBJS+= ide.o pckbd.o ps2.o vga.o $(SOUND_HW) dma.o
OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o
@@ -38,12 +39,12 @@
+ * *****************************************************************
+ *
+ * In all Intel-based Apple hardware there is an SMC chip to control the
-+ * backlight, fans and several other generic device parameters. It also
++ * backlight, fans and several other generic device parameters. It also
+ * contains the magic keys used to dongle Mac OS X to the device.
+ *
+ * This driver was mostly created by looking at the Linux AppleSMC driver
+ * implementation and does not support IRQ.
-+ *
++ *
+ */
+
+#include "hw.h"
@@ -191,9 +192,9 @@
===================================================================
--- qemu/hw/pc.h.orig
+++ qemu/hw/pc.h
-@@ -156,6 +156,10 @@ void *virtio_blk_init(PCIBus *bus, uint1
+@@ -144,6 +144,10 @@ void pci_piix4_ide_init(PCIBus *bus, Blo
- void extboot_init(BlockDriverState *bs, int cmd);
+ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd);
+/* applesmc.c */
+void applesmc_init(void);
@@ -206,43 +207,37 @@
===================================================================
--- qemu/vl.c.orig
+++ qemu/vl.c
-@@ -8059,6 +8059,7 @@ static void help(int exitcode)
- "-std-vga simulate a standard VGA card with VESA Bochs Extensions\n"
- " (default is CL-GD5446 PCI VGA)\n"
- "-no-acpi disable ACPI\n"
+@@ -8006,6 +8006,7 @@ static void help(int exitcode)
+ #endif
+ #ifdef TARGET_I386
+ "-no-fd-bootchk disable boot signature checking for floppy disks\n"
+ "-osk key set AppleSMC key\n"
#endif
- "-no-reboot exit instead of rebooting\n"
- "-loadvm file start right away with a saved state (loadvm in monitor)\n"
-@@ -8182,6 +8183,9 @@ enum {
- QEMU_OPTION_old_param,
- QEMU_OPTION_clock,
- QEMU_OPTION_startdate,
-+#ifdef TARGET_I386
+ "-m megs set virtual RAM size to megs MB [default=%d]\n"
+ "-smp n set the number of CPUs to 'n' [default=1]\n"
+@@ -8163,6 +8164,7 @@ enum {
+ QEMU_OPTION_snapshot,
+ #ifdef TARGET_I386
+ QEMU_OPTION_no_fd_bootchk,
+ QEMU_OPTION_osk,
-+#endif
- QEMU_OPTION_translation,
- QEMU_OPTION_incoming,
- QEMU_OPTION_tdf,
-@@ -8307,6 +8311,9 @@ const QEMUOption qemu_options[] = {
#endif
- { "clock", HAS_ARG, QEMU_OPTION_clock },
- { "startdate", HAS_ARG, QEMU_OPTION_startdate },
-+#ifdef TARGET_I386
+ QEMU_OPTION_m,
+ QEMU_OPTION_nographic,
+@@ -8264,6 +8266,7 @@ const QEMUOption qemu_options[] = {
+ { "snapshot", 0, QEMU_OPTION_snapshot },
+ #ifdef TARGET_I386
+ { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk },
+ { "osk", HAS_ARG, QEMU_OPTION_osk },
-+#endif
- { NULL },
- };
-
-@@ -9216,6 +9223,11 @@ int main(int argc, char **argv)
- }
- }
+ #endif
+ { "m", HAS_ARG, QEMU_OPTION_m },
+ { "nographic", 0, QEMU_OPTION_nographic },
+@@ -9009,6 +9012,9 @@ int main(int argc, char **argv)
+ case QEMU_OPTION_no_fd_bootchk:
+ fd_bootchk = 0;
break;
-+#ifdef TARGET_I386
+ case QEMU_OPTION_osk:
+ applesmc_setkey(optarg);
+ break;
-+#endif
- }
- }
- }
+ #endif
+ case QEMU_OPTION_no_code_copy:
+ code_copy_enabled = 0;
++++++ qemu-coreduo.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,4 @@
+#qemu-only -> submit upstream qemu
Index: qemu/target-i386/cpu.h
===================================================================
--- qemu.orig/target-i386/cpu.h
++++++ qemu-hpet.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,4 @@
+#qemu-only -> submit upstream qemu
Index: qemu/Makefile.target
===================================================================
--- qemu.orig/Makefile.target
++++++ qemu-ide.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,4 @@
+#qemu-only -> submit upstream qemu
Index: qemu/hw/ide.c
===================================================================
--- qemu.orig/hw/ide.c
++++++ qemu-intelmac.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,10 @@
+#qemu-only -> submit upstream qemu, but improve first:
+# undo rather hacky pci_enabled -> model > MODEL_ISA changes
+# and replace checks wether to enable newer emulated Mac hardware
+# depending in the bits in a bitfield which is passed pc_init1()
+# like this: pc_init1(.... , ISA, ...)
+# pc_init1(.... , PCI | IOAPIC | PIIX, ...
+# pc_init1(.... , PCI | ICH6, LPC, SMC , ...)
Index: qemu/hw/boards.h
===================================================================
--- qemu/hw/boards.h.orig
@@ -27,7 +34,7 @@
static void ioport80_write(void *opaque, uint32_t addr, uint32_t data)
{
}
-@@ -742,7 +748,7 @@ static void pc_init1(ram_addr_t ram_size
+@@ -764,7 +770,7 @@ static void pc_init1(ram_addr_t ram_size
const char *boot_device, DisplayState *ds,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename,
@@ -36,7 +43,7 @@
{
char buf[1024];
int ret, linux_boot, i;
-@@ -768,11 +774,15 @@ static void pc_init1(ram_addr_t ram_size
+@@ -790,15 +796,19 @@ static void pc_init1(ram_addr_t ram_size
/* init CPUs */
if (cpu_model == NULL) {
@@ -54,16 +61,12 @@
}
for(i = 0; i < smp_cpus; i++) {
-@@ -789,7 +799,7 @@ static void pc_init1(ram_addr_t ram_size
- }
- register_savevm("cpu", i, 4, cpu_save, cpu_load, env);
- qemu_register_reset(main_cpu_reset, env);
-- if (pci_enabled) {
-+ if (model > MODEL_ISA) {
- apic_init(env);
- }
- vmport_init(env);
-@@ -817,8 +827,16 @@ static void pc_init1(ram_addr_t ram_size
+- env = pc_new_cpu(i, cpu_model, pci_enabled);
++ env = pc_new_cpu(i, cpu_model, model > MODEL_ISA);
+ }
+
+ /* allocate RAM */
+@@ -823,8 +833,16 @@ static void pc_init1(ram_addr_t ram_size
vga_ram_addr = qemu_ram_alloc(vga_ram_size);
/* BIOS load */
@@ -82,7 +85,7 @@
snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);
bios_size = get_image_size(buf);
if (bios_size <= 0 ||
-@@ -923,7 +941,7 @@ static void pc_init1(ram_addr_t ram_size
+@@ -938,7 +956,7 @@ static void pc_init1(ram_addr_t ram_size
i8259 = i8259_init(cpu_irq[0]);
ferr_irq = i8259[13];
@@ -91,7 +94,7 @@
pci_bus = i440fx_init(&i440fx_state, i8259);
piix3_devfn = piix3_init(pci_bus, -1);
} else {
-@@ -936,7 +954,7 @@ static void pc_init1(ram_addr_t ram_size
+@@ -951,7 +969,7 @@ static void pc_init1(ram_addr_t ram_size
register_ioport_write(0xf0, 1, 1, ioportF0_write, NULL);
if (cirrus_vga_enabled) {
@@ -100,7 +103,7 @@
pci_cirrus_vga_init(pci_bus,
ds, phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size);
-@@ -945,13 +963,13 @@ static void pc_init1(ram_addr_t ram_size
+@@ -960,13 +978,13 @@ static void pc_init1(ram_addr_t ram_size
vga_ram_addr, vga_ram_size);
}
} else if (vmsvga_enabled) {
@@ -116,7 +119,7 @@
pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size, 0, 0);
} else {
-@@ -965,12 +983,18 @@ static void pc_init1(ram_addr_t ram_size
+@@ -980,12 +998,18 @@ static void pc_init1(ram_addr_t ram_size
register_ioport_read(0x92, 1, 1, ioport92_read, NULL);
register_ioport_write(0x92, 1, 1, ioport92_write, NULL);
@@ -138,7 +141,7 @@
pic_set_alt_irq_func(isa_pic, ioapic_set_irq, ioapic);
}
-@@ -990,15 +1014,21 @@ static void pc_init1(ram_addr_t ram_size
+@@ -1005,15 +1029,21 @@ static void pc_init1(ram_addr_t ram_size
for(i = 0; i < nb_nics; i++) {
nd = &nd_table[i];
if (!nd->model) {
@@ -165,7 +168,7 @@
if (strcmp(nd->model, "?") == 0)
fprintf(stderr, "qemu: Supported ISA NICs: ne2k_isa\n");
pci_nic_init(pci_bus, nd, -1);
-@@ -1029,19 +1059,25 @@ static void pc_init1(ram_addr_t ram_size
+@@ -1045,19 +1075,25 @@ static void pc_init1(ram_addr_t ram_size
hd[i] = NULL;
}
@@ -199,7 +202,7 @@
#endif
for(i = 0; i < MAX_FD; i++) {
-@@ -1055,11 +1091,11 @@ static void pc_init1(ram_addr_t ram_size
+@@ -1071,11 +1107,11 @@ static void pc_init1(ram_addr_t ram_size
cmos_init(ram_size, above_4g_mem_size, boot_device, hd, smp_cpus);
@@ -213,7 +216,7 @@
uint8_t *eeprom_buf = qemu_mallocz(8 * 256); /* XXX: make this persistent */
i2c_bus *smbus;
-@@ -1074,7 +1110,7 @@ static void pc_init1(ram_addr_t ram_size
+@@ -1090,7 +1126,7 @@ static void pc_init1(ram_addr_t ram_size
i440fx_init_memory_mappings(i440fx_state);
}
@@ -222,7 +225,7 @@
int max_bus;
int bus, unit;
void *scsi;
-@@ -1093,7 +1129,7 @@ static void pc_init1(ram_addr_t ram_size
+@@ -1109,7 +1145,7 @@ static void pc_init1(ram_addr_t ram_size
}
/* Add virtio block devices */
@@ -231,7 +234,7 @@
int index;
int unit_id = 0;
-@@ -1117,6 +1153,18 @@ static void pc_init1(ram_addr_t ram_size
+@@ -1133,6 +1169,18 @@ static void pc_init1(ram_addr_t ram_size
}
}
@@ -250,7 +253,7 @@
static void pc_init_pci(ram_addr_t ram_size, int vga_ram_size,
const char *boot_device, DisplayState *ds,
const char *kernel_filename,
-@@ -1126,7 +1174,7 @@ static void pc_init_pci(ram_addr_t ram_s
+@@ -1142,7 +1190,7 @@ static void pc_init_pci(ram_addr_t ram_s
{
pc_init1(ram_size, vga_ram_size, boot_device, ds,
kernel_filename, kernel_cmdline,
@@ -259,7 +262,7 @@
}
static void pc_init_isa(ram_addr_t ram_size, int vga_ram_size,
-@@ -1138,7 +1186,7 @@ static void pc_init_isa(ram_addr_t ram_s
+@@ -1154,7 +1202,7 @@ static void pc_init_isa(ram_addr_t ram_s
{
pc_init1(ram_size, vga_ram_size, boot_device, ds,
kernel_filename, kernel_cmdline,
@@ -268,7 +271,7 @@
}
QEMUMachine pc_machine = {
-@@ -1147,6 +1195,12 @@ QEMUMachine pc_machine = {
+@@ -1163,6 +1211,12 @@ QEMUMachine pc_machine = {
pc_init_pci,
};
@@ -285,7 +288,7 @@
===================================================================
--- qemu/vl.c.orig
+++ qemu/vl.c
-@@ -8361,6 +8361,7 @@ static void register_machines(void)
+@@ -8410,6 +8410,7 @@ static void register_machines(void)
{
#if defined(TARGET_I386)
qemu_register_machine(&pc_machine);
++++++ qemu-lpc.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,3 +1,4 @@
+#qemu-only -> submit upstream qemu
Index: qemu/Makefile.target
===================================================================
--- qemu.orig/Makefile.target
++++++ qemu-multiboot.patch ++++++
--- /var/tmp/diff_new_pack.v30798/_old 2008-03-07 22:36:27.000000000 +0100
+++ /var/tmp/diff_new_pack.v30798/_new 2008-03-07 22:36:27.000000000 +0100
@@ -1,8 +1,92 @@
-Index: qemu/hw/pc.c
-===================================================================
---- qemu.orig/hw/pc.c
+# qemu-only -> maybe submit upstream qemu
+# To boot multiboot OS kernels like Xen, Hurd, or other custom multiboot images
+#
+# It checks if the kernel given using -kernel has a multiboot signature and
+# if not, it continues to boot it as a normal linux kernel. Ideally it should
+# do nothing else, but there is one apparenlty not related patch in this one:
+
++#if (ELF_MACHINE == EM_X86_64) && !CONFIG_USER_ONLY
++ /* x86_64 systems can run i386 code as well */
++ if(ehdr.e_machine != EM_386)
++#endif
+ goto fail;
+
+# I keep it for now but may be inspected more.
+#
+# Limitations:
+# This patch is limited to the use of an IDE disk as -hda and dynamically patches
+# it's MBR (it's just what qemu does already) ...
+# Proper solution would be on top of extboot which is already upstream in kvm.
+# Author Alex Graf - agraf@suse
+
+From: Alexander Graf