On Wed, Feb 2, 2011 at 5:37 PM, Eduardo Habkost <ehabk...@redhat.com> wrote: > On Wed, Feb 02, 2011 at 05:16:23PM +0000, Blue Swirl wrote: >> On Wed, Feb 2, 2011 at 7:55 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: >> > On 02/01/2011 07:10 PM, Blue Swirl wrote: >> >> >> >> One way to solve this which would preserve the device model would be >> >> to add stub devices. For example, hw/vmmouse-stub.c would be: >> >> void *vmmouse_init(void *m) >> >> { >> >> return NULL; >> >> } >> > >> > This is the wrong direction, unless you can somehow automatically generate >> > the stub file. >> > >> > The only other solution I can think of is weak symbols. There are subtle >> > differences between Windows and Linux weak symbols, but luckily we do not >> > care about it. See http://cygwin.com/ml/cygwin/2010-04/msg00281.html >> >> Boards should create optional devices so that failure in the device >> creation is handled more intelligently. For example, pci_vmsvga_init() >> is just a wrapper (a bit useless one also) to pci_create_simple(bus, >> -1, "vmware-svga"). pci_create_simple() in turn uses >> qdev_init_nofail() which aborts if the device can't be created. >> Instead, non-aborting version should be used so that if 'vmware-svga' >> device can't be initialized, a fallback device (VGA) could be used or >> error message printed. >> >> In this case, vmmouse and vmport are not converted to qdev but that >> should be done anyway. > > In the meantime, what should we do? Keep the CONFIG_VMWARE_VGA option > broken and useless just to avoid an #ifdef?
Please try the patch set I just sent.