On 2011-02-23 09:05, klondike wrote:
> El 23/02/11 08:49, Nikola Ciprich escribió:
>> Hello Avi,
> Hi,
>> when trying to compile(link) various targets, I get:
>>   LINK  sparc-softmmu/qemu-system-sparc
>> pci-stub.o: In function `do_pci_info_print':
>> /usr/src/redhat/BUILD/qemu-kvm-0.14.0/hw/pci-stub.c:36: multiple definition 
>> of `do_pci_info_print'
>> pci.o:/usr/src/redhat/BUILD/qemu-kvm-0.14.0/hw/pci.c:1398: first defined here
>> /usr/bin/ld: Warning: size of symbol `do_pci_info_print' changed from 147 in 
>> pci.o to 50 in pci-stub.o
>> pci-stub.o: In function `do_pci_info':
>> /usr/src/redhat/BUILD/qemu-kvm-0.14.0/hw/pci-stub.c:31: multiple definition 
>> of `do_pci_info'
>> pci.o:/usr/src/redhat/BUILD/qemu-kvm-0.14.0/hw/pci.c:1560: first defined here
>> /usr/bin/ld: Warning: size of symbol `do_pci_info' changed from 150 in pci.o 
>> to 50 in pci-stub.o
>> pci.o: In function `pci_update_mappings':
>> pci.c:(.text+0xa91): undefined reference to `pci_bridge_get_base'
>> pci.c:(.text+0xaa5): undefined reference to `pci_bridge_get_limit'
>> pci.c:(.text+0xb7b): undefined reference to `pci_bridge_get_base'
>> pci.c:(.text+0xb8e): undefined reference to `pci_bridge_get_limit'
>> pci.o: In function `pci_get_devices_list':
>> pci.c:(.text+0x2024): undefined reference to `pci_bridge_get_limit'
>> pci.c:(.text+0x2036): undefined reference to `pci_bridge_get_base'
>> pci.c:(.text+0x2043): undefined reference to `pci_bridge_get_limit'
>> pci.c:(.text+0x2050): undefined reference to `pci_bridge_get_base'
>> pci.c:(.text+0x2060): undefined reference to `pci_bridge_get_limit'
>> pci.c:(.text+0x2070): undefined reference to `pci_bridge_get_base'
>> collect2: ld returned 1 exit status
>> make[1]: *** [qemu-system-sparc] Error 1
>> make: *** [subdir-sparc-softmmu] Error 2
> I hit this problem too and after a long night I tracked it back to some
> odd merge, this patch solved the issue for me.

This unfortunately breaks the build with device assignment enabled.
Patch below is required.

Generally, I would recommend to avoid using the qemu-kvm tree for
anything else than x86 with kvm support. Other use cases ought to work
but are rarely tested. Better pick upstream qemu in this case until we
reduced the diffs between both trees to a much smaller amount.
qemu-kvm-0.15 may become a milestone in this regard.

Jan

----------8<----------

Replace obsolete qemu-kvm.h with kvm.h in pci.c and build that module
just like upstream does. This fixes non-x86 targets which have no PCI
support.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 Makefile.objs   |    2 +-
 Makefile.target |    2 +-
 hw/pci.c        |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile.objs b/Makefile.objs
index f5702eb..3ec7121 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -170,7 +170,7 @@ hw-obj-y =
 hw-obj-y += loader.o
 hw-obj-$(CONFIG_VIRTIO) += virtio.o virtio-console.o
 hw-obj-y += fw_cfg.o
-hw-obj-$(CONFIG_PCI) += pci_bridge.o
+hw-obj-$(CONFIG_PCI) += pci.o pci_bridge.o
 hw-obj-$(CONFIG_PCI) += msix.o msi.o
 hw-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o
 hw-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o
diff --git a/Makefile.target b/Makefile.target
index 6e9a024..23367eb 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -195,7 +195,7 @@ endif #CONFIG_BSD_USER
 # System emulator target
 ifdef CONFIG_SOFTMMU
 
-obj-y = arch_init.o cpus.o monitor.o pci.o machine.o gdbstub.o vl.o balloon.o
+obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o vl.o balloon.o
 # virtio has to be here due to weird dependency between PCI and virtio-net.
 # need to fix this properly
 obj-$(CONFIG_NO_PCI) += pci-stub.o
diff --git a/hw/pci.c b/hw/pci.c
index 0c44939..1f6cebe 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -29,8 +29,8 @@
 #include "net.h"
 #include "sysemu.h"
 #include "loader.h"
-#include "qemu-kvm.h"
 #include "hw/pc.h"
+#include "kvm.h"
 #include "device-assignment.h"
 #include "qemu-objects.h"
 #include "range.h"
-- 
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to