From: "Marc-André Lureau" <marcandre.lureau@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, Michael Roth <mdroth@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH v2 25/54] qapi-visit: add #if conditions to visitors
Date: Wed, 6 Sep 2017 10:22:31 -0400 (EDT) [thread overview]
Message-ID: <548852672.9319673.1504707751479.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <87efrk85ce.fsf@dusky.pond.sub.org>
----- Original Message -----
> Marc-André Lureau <marcandre.lureau@redhat.com> writes:
>
> > Wrap generated code with #if/#endif using the ifcond_decorator.
> >
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> > scripts/qapi-visit.py | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
> > index c29c2d869e..bb18c9edee 100644
> > --- a/scripts/qapi-visit.py
> > +++ b/scripts/qapi-visit.py
> > @@ -267,6 +267,7 @@ class QAPISchemaGenVisitVisitor(QAPISchemaVisitor):
> > self.decl = None
> > self.defn = None
> > self._btin = None
> > + self.if_members = ['decl', 'defn', '_btin']
> >
> > def visit_begin(self, schema):
> > self.decl = ''
> > @@ -282,6 +283,7 @@ class QAPISchemaGenVisitVisitor(QAPISchemaVisitor):
> > self.decl = self._btin + self.decl
> > self._btin = None
> >
> > + @ifcond_decorator
> > def visit_enum_type(self, name, info, values, prefix, ifcond):
> > # Special case for our lone builtin enum type
> > # TODO use something cleaner than existence of info
> > @@ -293,6 +295,7 @@ class QAPISchemaGenVisitVisitor(QAPISchemaVisitor):
> > self.decl += gen_visit_decl(name, scalar=True)
> > self.defn += gen_visit_enum(name)
> >
> > + @ifcond_decorator
> > def visit_array_type(self, name, info, element_type, ifcond):
> > decl = gen_visit_decl(name)
> > defn = gen_visit_list(name, element_type)
> > @@ -304,6 +307,7 @@ class QAPISchemaGenVisitVisitor(QAPISchemaVisitor):
> > self.decl += decl
> > self.defn += defn
> >
> > + @ifcond_decorator
> > def visit_object_type(self, name, info, base, members, variants,
> > ifcond):
> > # Nothing to do for the special empty builtin
> > if name == 'q_empty':
> > @@ -317,6 +321,7 @@ class QAPISchemaGenVisitVisitor(QAPISchemaVisitor):
> > self.decl += gen_visit_decl(name)
> > self.defn += gen_visit_object(name, base, members, variants)
> >
> > + @ifcond_decorator
> > def visit_alternate_type(self, name, info, variants, ifcond):
> > self.decl += gen_visit_decl(name)
> > self.defn += gen_visit_alternate(name, variants)
>
> make check fails to compile, first error:
>
I'll merge back qapi-types & qapi-visited #if addition (regression from the split).
> make -C ~/work/qemu/bld-x86/ check
> make: Entering directory '/work/armbru/qemu/bld-x86'
> [...]
> GEN tests/test-qapi-types.c
> CC tests/test-qapi-types.o
> tests/test-qapi-types.c: In function ‘qapi_free_TestIfAlternate’:
> tests/test-qapi-types.c:190:5: warning: implicit declaration of function
> ‘visit_type_TestIfAlternate’; did you mean ‘visit_type_UserDefAlternate’?
> [-Wimplicit-function-declaration]
> visit_type_TestIfAlternate(v, NULL, &obj, NULL);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~
> visit_type_UserDefAlternate
> tests/test-qapi-types.c:190:5: warning: nested extern declaration of
> ‘visit_type_TestIfAlternate’ [-Wnested-externs]
> tests/test-qapi-types.c: In function ‘qapi_free_TestIfStruct’:
> tests/test-qapi-types.c:213:5: warning: implicit declaration of function
> ‘visit_type_TestIfStruct’; did you mean ‘visit_type_TestStruct’?
> [-Wimplicit-function-declaration]
> visit_type_TestIfStruct(v, NULL, &obj, NULL);
> ^~~~~~~~~~~~~~~~~~~~~~~
> visit_type_TestStruct
> tests/test-qapi-types.c:213:5: warning: nested extern declaration of
> ‘visit_type_TestIfStruct’ [-Wnested-externs]
> tests/test-qapi-types.c: In function ‘qapi_free_TestIfUnion’:
> tests/test-qapi-types.c:226:5: warning: implicit declaration of function
> ‘visit_type_TestIfUnion’; did you mean ‘visit_type_TestStruct’?
> [-Wimplicit-function-declaration]
> visit_type_TestIfUnion(v, NULL, &obj, NULL);
> ^~~~~~~~~~~~~~~~~~~~~~
> visit_type_TestStruct
> tests/test-qapi-types.c:226:5: warning: nested extern declaration of
> ‘visit_type_TestIfUnion’ [-Wnested-externs]
> GEN tests/test-qapi-event.c
> CC tests/test-qapi-event.o
> GEN tests/test-qmp-introspect.c
> CC tests/test-qmp-introspect.o
> LINK tests/test-qobject-output-visitor
> tests/test-qapi-types.o: In function `qapi_free_TestIfAlternate':
> /work/armbru/qemu/bld-x86/tests/test-qapi-types.c:190: undefined reference to
> `visit_type_TestIfAlternate'
> tests/test-qapi-types.o: In function `qapi_free_TestIfStruct':
> test-qapi-types.c:(.text+0x361): undefined reference to
> `visit_type_TestIfStruct'
> tests/test-qapi-types.o: In function `qapi_free_TestIfUnion':
> test-qapi-types.c:(.text+0x3af): undefined reference to
> `visit_type_TestIfUnion'
> collect2: error: ld returned 1 exit status
> make: *** [/work/armbru/qemu/rules.mak:121:
> tests/test-qobject-output-visitor] Error 1
> make: Leaving directory '/work/armbru/qemu/bld-x86'
>
next prev parent reply other threads:[~2017-09-06 14:22 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-22 13:22 [Qemu-devel] [PATCH v2 00/54] qapi: add #if pre-processor conditions to generated code Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 01/54] qapi: fix type_seen key error Marc-André Lureau
2017-08-22 15:00 ` Markus Armbruster
2017-08-22 15:50 ` Marc-André Lureau
2017-08-22 16:40 ` Markus Armbruster
2017-08-25 6:02 ` Markus Armbruster
2017-08-25 12:57 ` Eduardo Habkost
2017-08-25 14:12 ` Marc-André Lureau
2017-08-28 10:52 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 02/54] qdict: add qdict_put_null() helper Marc-André Lureau
2017-08-22 15:09 ` Markus Armbruster
2017-08-25 15:46 ` Eric Blake
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 03/54] qobject: add literal qobject type Marc-André Lureau
2017-08-22 15:31 ` Markus Armbruster
2017-08-22 15:42 ` Marc-André Lureau
2017-08-22 16:24 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 04/54] qlit: add qobject_form_qlit() Marc-André Lureau
2017-08-22 15:40 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 05/54] qapi: generate a literal qobject for introspection Marc-André Lureau
2017-08-22 16:33 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 06/54] qapi: introduce qapi_enum_lookup() Marc-André Lureau
2017-08-22 18:10 ` John Snow
2017-08-23 8:02 ` Markus Armbruster
2017-08-23 10:10 ` Marc-André Lureau
2017-08-24 11:14 ` Dr. David Alan Gilbert
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 07/54] tpm: simplify driver registration & lookup Marc-André Lureau
2017-08-23 9:04 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 08/54] hmp: use qapi_enum_parse() in hmp_migrate_set_capability Marc-André Lureau
2017-08-23 9:34 ` Markus Armbruster
2017-08-24 11:29 ` Dr. David Alan Gilbert
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 09/54] hmp: use qapi_enum_parse() in hmp_migrate_set_parameter Marc-André Lureau
2017-08-23 9:43 ` Markus Armbruster
2017-08-24 13:16 ` Dr. David Alan Gilbert
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 10/54] block: use qemu_enum_parse() in blkdebug_debug_breakpoint Marc-André Lureau
2017-08-23 10:05 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 11/54] quorum: use qapi_enum_parse() in quorum_open Marc-André Lureau
2017-08-22 13:40 ` Alberto Garcia
2017-08-23 11:15 ` Markus Armbruster
2017-08-23 11:24 ` Markus Armbruster
2017-08-23 11:53 ` Alberto Garcia
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 12/54] qapi: change enum lookup structure Marc-André Lureau
2017-08-23 12:09 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 13/54] qapi: drop the sentinel in enum array Marc-André Lureau
2017-08-23 12:37 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 14/54] qapi2texi: minor python code simplification Marc-André Lureau
2017-08-22 13:56 ` Philippe Mathieu-Daudé
2017-09-01 15:49 ` Markus Armbruster
2017-09-04 8:18 ` Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 15/54] qapi: add 'if' to top-level expressions Marc-André Lureau
2017-09-04 13:27 ` Markus Armbruster
2017-09-05 13:58 ` Marc-André Lureau
2017-09-06 11:36 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 16/54] qapi: add a test for invalid 'if' Marc-André Lureau
2017-09-04 13:31 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 17/54] qapi: add 'if' condition on entity objects Marc-André Lureau
2017-09-04 16:13 ` Markus Armbruster
2017-09-05 15:38 ` Marc-André Lureau
2017-09-05 16:31 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 18/54] qapi: add 'ifcond' to visitor methods Marc-André Lureau
2017-09-04 16:47 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 19/54] qapi: add #if/#endif helpers Marc-André Lureau
2017-09-05 9:32 ` Markus Armbruster
2017-09-06 15:19 ` Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 20/54] qapi-introspect: modify to_qlit() to take an optional suffix Marc-André Lureau
2017-09-05 9:42 ` Markus Armbruster
2017-09-06 14:02 ` Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 21/54] qapi-introspect: modify to_qlit() to generate #if code Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 22/54] qapi-introspect: add preprocessor conditions to generated QLit Marc-André Lureau
2017-09-05 14:24 ` Markus Armbruster
2017-09-05 16:24 ` Marc-André Lureau
2017-09-06 11:38 ` Markus Armbruster
2017-09-06 14:26 ` Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 23/54] qapi-commands: add #if conditions to commands Marc-André Lureau
2017-09-05 14:53 ` Markus Armbruster
2017-09-05 15:05 ` Marc-André Lureau
2017-09-05 15:08 ` Marc-André Lureau
2017-09-05 16:34 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 24/54] qapi-event: add #if conditions to events Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 25/54] qapi-visit: add #if conditions to visitors Marc-André Lureau
2017-09-06 10:54 ` Markus Armbruster
2017-09-06 14:22 ` Marc-André Lureau [this message]
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 26/54] qapi-types: refactor variants handling Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 27/54] qapi-types: add #if conditions to types Marc-André Lureau
2017-09-06 11:43 ` Markus Armbruster
2017-09-06 14:56 ` Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 28/54] qapi: do not define enumeration value explicitely Marc-André Lureau
2017-08-22 14:00 ` Philippe Mathieu-Daudé
2017-09-05 17:45 ` Markus Armbruster
2017-09-06 12:09 ` Marc-André Lureau
2017-09-06 13:39 ` Markus Armbruster
2017-09-06 13:55 ` Marc-André Lureau
2017-09-06 15:20 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 29/54] qapi: add 'if' to enum members Marc-André Lureau
2017-09-06 13:01 ` Markus Armbruster
2017-09-07 14:11 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 30/54] qapi: add #if conditions on generated enum values Marc-André Lureau
2017-09-06 15:38 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 31/54] tests: add some enum members tests Marc-André Lureau
2017-09-06 15:41 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 32/54] qapi: add 'if' to struct members Marc-André Lureau
2017-09-07 14:26 ` Markus Armbruster
2017-09-07 15:30 ` Marc-André Lureau
2017-09-07 15:52 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 33/54] qapi: add some struct member tests Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 34/54] qapi: add #if conditions to generated struct members Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 35/54] qapi: add 'if' on union variants Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 36/54] qapi: add #if conditions to generated variants Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 37/54] qapi: 'if' to alternate variant Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 38/54] qapi: add tests for invalid alternate Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 39/54] qapi: add #if conditions to generated alternate variants Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 40/54] docs: document schema configuration Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 41/54] qapi2texi: add 'If:' section to generated documentation Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 42/54] qapi2texi: add 'If:' condition to enum values Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 43/54] qapi2texi: add 'If:' condition to struct members Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 44/54] qapi2texi: add condition to variants Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 45/54] qapi: add conditions to VNC type/commands/events on the schema Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 46/54] qapi: add conditions to SPICE " Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 47/54] qapi: add conditions to REPLICATION type/commands " Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 48/54] tests/qmp-test: add query-qmp-schema test Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 49/54] build-sys: make qemu qapi objects per-target Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 50/54] qapi: make rtc-reset-reinjection depend on TARGET_I386 Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 51/54] qapi: make s390 commands depend on TARGET_S390X Marc-André Lureau
2017-08-22 14:24 ` Cornelia Huck
2017-08-22 14:25 ` David Hildenbrand
2017-08-22 14:41 ` Marc-André Lureau
2017-08-22 15:14 ` Cornelia Huck
2017-08-22 15:46 ` Marc-André Lureau
2017-08-22 15:58 ` Markus Armbruster
2017-08-22 16:01 ` David Hildenbrand
2017-08-22 16:25 ` Markus Armbruster
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 52/54] qapi: make query-gic-capabilities depend on TARGET_ARM Marc-André Lureau
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 53/54] qapi: make query-cpu-model-expansion depend on s390 or x86 Marc-André Lureau
2017-08-22 18:42 ` Eduardo Habkost
2017-08-23 10:21 ` Marc-André Lureau
2017-08-23 12:57 ` Eduardo Habkost
2017-08-23 13:58 ` Marc-André Lureau
2017-08-23 14:13 ` Eduardo Habkost
2017-08-22 13:22 ` [Qemu-devel] [PATCH v2 54/54] qapi: make query-cpu-definitions depend on specific targets Marc-André Lureau
2017-08-22 14:47 ` [Qemu-devel] [PATCH v2 00/54] qapi: add #if pre-processor conditions to generated code no-reply
2017-08-23 12:46 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=548852672.9319673.1504707751479.JavaMail.zimbra@redhat.com \
--to=marcandre.lureau@redhat.com \
--cc=armbru@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).