[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL v8 00/86] Misc QEMU patches for 2020-09-24
From: |
Eduardo Habkost |
Subject: |
Re: [PULL v8 00/86] Misc QEMU patches for 2020-09-24 |
Date: |
Fri, 2 Oct 2020 13:55:54 -0400 |
On Fri, Oct 02, 2020 at 07:30:17PM +0200, Paolo Bonzini wrote:
> On 02/10/20 19:26, Michal Prívozník wrote:
> > On 10/2/20 6:22 PM, Eduardo Habkost wrote:
> >> On Fri, Oct 02, 2020 at 05:58:55PM +0200, Michal Prívozník wrote:
> >>> On 9/30/20 9:58 PM, Paolo Bonzini wrote:
> >>>>
> >>>> Eduardo Habkost (10):
> >>> <snip/>
> >>>> docs: Create docs/devel/qom.rst
> >>>
> >>> cd442a45db60a1a72fcf980c24bd1227f13f8a87 is the first bad commit
> >>>
> >>> Sorry for noticing this earlier, but is this known? The build starts
> >>> failing
> >>> for me after this commit:
> >>>
> >>> /usr/bin/sphinx-build -Dversion=5.1.50 -Drelease= -W
> >>> -Ddepfile=docs/devel.d
> >>> -Ddepfile_stamp=docs/devel.stamp -b html -d
> >>> /home/zippy/work/qemu/qemu.git/build/docs/devel.p
> >>> /home/zippy/work/qemu/qemu.git/docs/devel
> >>> /home/zippy/work/qemu/qemu.git/build/docs/devel
> >>> Running Sphinx v3.2.1
> >>> building [mo]: targets for 0 po files that are out of date
> >>> building [html]: targets for 20 source files that are out of date
> >>> updating environment: [new config] 20 added, 0 changed, 0 removed
> >>> reading sources... [100%] testing
> >>>
> >>>
> >>>
> >>>
> >>> Warning, treated as error:
> >>> /home/zippy/work/qemu/qemu.git/docs/../include/qom/object.h:747:Error in
> >>> declarator
> >>> If declarator-id with parameters (e.g., 'void f(int arg)'):
> >>> Invalid C declaration: Expected identifier in nested name. [error
> >>> at 24]
> >>> object_initialize_child ( parent, propname, child, type)
> >>> ------------------------^
> >>> If parenthesis in noptr-declarator (e.g., 'void (*f(int arg))(double)'):
> >>> Error in declarator or parameters
> >>> Invalid C declaration: Expecting "(" in parameters. [error at 32]
> >>> object_initialize_child ( parent, propname, child, type)
> >>> --------------------------------^
> >>>
> >>> make[1]: *** [Makefile.ninja:9898: docs/devel.stamp] Error 2
> >>> make[1]: *** Deleting file 'docs/devel.stamp'
> >>> make[1]: Leaving directory '/home/zippy/work/qemu/qemu.git/build'
> >>> make: *** [GNUmakefile:11: all] Error 2
> >>
> >> I can't reproduce it using Sphinx v2.2.2. I'm still trying to
> >> understand what exactly the error means.
> >>
> >
> > Same here.
> >
> >> I really wish we used virtualenv + requirements.txt to require a
> >> specific version of Sphinx instead of wasting time dealing a wide
> >> range of Sphinx versions.
> >>
> >
> > I already have a patch that I keep locally to build with v3:
> >
> > diff --git a/docs/qemu-option-trace.rst.inc
> > b/docs/qemu-option-trace.rst.inc
> > index 7e09773a9c..ae83f6a1a8 100644
> > --- a/docs/qemu-option-trace.rst.inc
> > +++ b/docs/qemu-option-trace.rst.inc
> > @@ -1,7 +1,7 @@
> >
> > Specify tracing options.
> >
> > -.. option:: [enable=]PATTERN
> > +.. option:: enable=PATTERN
> >
> > Immediately enable events matching *PATTERN*
> > (either event name or a globbing pattern). This option is only
> >
> >
> > That said, I'm not objecting to requiring v2 for now and switching to v3
> > later.
> >
> >
> > But interestingly, through trial and error I've came across this hack,
> > which allows me to build again. I have no idea why it works:
> >
> > diff --git i/include/qom/object.h w/include/qom/object.h
> > index 27aaa67e63..59c729ebb7 100644
> > --- i/include/qom/object.h
> > +++ w/include/qom/object.h
> > @@ -762,13 +762,14 @@ bool object_initialize_child_with_propsv(Object
> > *parentobj,
> > * child, sizeof(*child), type,
> > * &error_abort, NULL)
> > */
> > -#define object_initialize_child(parent, propname, child, type) \
> > - object_initialize_child_internal((parent), (propname), \
> > - (child), sizeof(*(child)), (type))
> > void object_initialize_child_internal(Object *parent, const char
> > *propname,
> > void *child, size_t size,
> > const char *type);
> >
> > +#define object_initialize_child(parent, propname, child, type) \
> > + object_initialize_child_internal((parent), (propname), \
> > + (child), sizeof(*(child)), (type))
> > +
>
> The error is due to kerneldoc treating the macro definition like a
> function, so that makes sense. If the docs look good (no reference to
> object_initialize_child_internal) then the patch can be applied.
The patch makes the document show object_initialize_child_internal().
--
Eduardo