On Mon, Dec 03, 2012 at 10:49:56PM +0100, Igor Mammedov wrote:
> On Fri, 30 Nov 2012 17:27:18 -0200
> Eduardo Habkost <ehabk...@redhat.com> wrote:
> 
> > Add vmstate stub functions, so that qdev.o can be used without savevm.o
> > when vmstate support is not necessary (i.e. by *-user).
> > 
> > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
> > ---
> > Originally submitted as:
> >   Subject: qdev-core: isolate vmstate handling into separate functions
> > 
> > Changes v1 -> v2:
> >  - Add GCC_WEAK_DECL to function declarations
> > 
> > Changes v2 -> v3:
> >  - Subject: qdev: add weak aliases for vmstate handling on qdev.c
> >  - Make vmstate_register_with_alias_id()/vmstate_unregister()
> >    have GCC_WEAK versions, instead of creating a new function
> >  - Kept qdev_get_vmsd() inside qdev.c
> > 
> > Changss v3 -> v4:
> >  - Use the new QEMU_WEAK_ALIAS system instead of GCC_WEAK
> > 
> > Changes v4 -> v5:
> >  - Use the new libqemustub.a, instead of QEMU_WEAK_ALIAS
> > 
> > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
> > ---
> >  stubs/Makefile.objs |  1 +
> >  stubs/vmstate.c     | 17 +++++++++++++++++
> >  2 files changed, 18 insertions(+)
> >  create mode 100644 stubs/vmstate.c
> > 
> > diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs
> > index 035b29a..5557079 100644
> > --- a/stubs/Makefile.objs
> > +++ b/stubs/Makefile.objs
> > @@ -5,4 +5,5 @@ stub-obj-y += fdset-get-fd.o
> >  stub-obj-y += fdset-remove-fd.o
> >  stub-obj-y += get-fd.o
> >  stub-obj-y += set-fd-handler.o
> > +stub-obj-y += vmstate.o
> >  stub-obj-$(CONFIG_WIN32) += fd-register.o
> > diff --git a/stubs/vmstate.c b/stubs/vmstate.c
> > new file mode 100644
> > index 0000000..bb17884
> > --- /dev/null
> > +++ b/stubs/vmstate.c
> > @@ -0,0 +1,17 @@
> > +#include "qemu-common.h"
> > +#include "vmstate.h"
> > +
> > +int vmstate_register_with_alias_id(DeviceState *dev,
> > +                                               int instance_id,
> > +                                               const VMStateDescription 
> > *vmsd,
> > +                                               void *base, int alias_id,
> > +                                               int required_for_version)
> > +{
> > +    return 0;
> > +}
> > +
> > +void vmstate_unregister(DeviceState *dev,
> > +                                    const VMStateDescription *vmsd,
> > +                                    void *opaque)
> > +{
> > +}
> > -- 
> > 1.7.11.7
> > 
> commit 3bc2f570ec9f description says, there should be a 1 object
> file per stub /with a corresponding file name if 3bc2f570ec9f is used as a
> model/.

Well, the commit description says that "if you place each function in a
separate source file, object files for unused functions will not be
taken in", I don't see it as a requirement. In this case, pulling both
stubs is a feature: if a binary ends up using the vmstate_register stub,
we really want it to use the vmstate_unregister stub as well.

> 
> Paolo,
>  Is it ok to put several related stub functions in one file?
> 
> -- 
> Regards,
>   Igor
> 

-- 
Eduardo

Reply via email to