qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Marc-André Lureau" <marcandre.lureau@gmail.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Jeff Cody" <codyprime@gmail.com>, QEMU <qemu-devel@nongnu.org>,
	"Max Reitz" <mreitz@redhat.com>,
	ashmit602@gmail.com
Subject: Re: Is VXHS actually maintained?
Date: Thu, 09 Jul 2020 16:50:40 +0100	[thread overview]
Message-ID: <874kqgn0vj.fsf@linaro.org> (raw)
In-Reply-To: <CAJ+F1C+MK0tEyHS_xSD6bBWJZFALF6jOwFAU2zYoJimnyGRdAw@mail.gmail.com> ("Marc-André Lureau"'s message of "Thu, 9 Jul 2020 19:41:48 +0400")

Marc-André Lureau <marcandre.lureau@gmail.com> writes:

> Hi
>
> On Thu, Jul 9, 2020 at 7:30 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
>  On Thu, 9 Jul 2020 at 16:27, Daniel P. Berrangé <berrange@redhat.com> wrote:
>  > If it doesn't even compile, do we even need to go through the full
>  > deprecation cycle ? I tend to feel like the release where it first
>  > fails to compile automatically starts the deprecation countdown.
>
>  Mmm, assuming that it's "couldn't possibly compile for anybody"
>  rather than "doesn't compile for me (but maybe it would be OK
>  on some other host OS config)".
>
>  Marc-André, what are the details of the compilation failure?
>
> I have done some release bisection.
>
> v2.11.0 compiles, v2.12.0 started failing with:
>
>   CC      block/vxhs.o
> /home/elmarco/src/qq/block/vxhs.c:126:1: error: variable ‘runtime_opts’ has initializer but incomplete type
>   126 | static QemuOptsList runtime_opts = {
>       | ^~~~~~
> /home/elmarco/src/qq/block/vxhs.c:127:6: error: ‘QemuOptsList’ has no member named ‘name’
>   127 |     .name = "vxhs",
>       |      ^~~~
> /home/elmarco/src/qq/block/vxhs.c:127:13: warning: excess elements in struct initializer
>   127 |     .name = "vxhs",
>       |             ^~~~~~
> /home/elmarco/src/qq/block/vxhs.c:127:13: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:128:6: error: ‘QemuOptsList’ has no member named ‘head’
>   128 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
>       |      ^~~~
> In file included from /home/elmarco/src/qq/include/qemu/notify.h:17,
>                  from /home/elmarco/src/qq/include/qemu/timer.h:5,
>                  from /home/elmarco/src/qq/include/qemu/timed-average.h:29,
>                  from /home/elmarco/src/qq/include/block/accounting.h:28,
>                  from /home/elmarco/src/qq/include/block/block_int.h:27,
>                  from /home/elmarco/src/qq/block/vxhs.c:14:
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: error: extra brace group at end of initializer
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:128:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   128 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: note: (near initialization for ‘runtime_opts’)
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:128:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   128 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:128:49: error: invalid use of incomplete typedef ‘QemuOptsList’
>   128 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
>       |                                                 ^
> /home/elmarco/src/qq/include/qemu/queue.h:360:19: note: in definition of macro ‘QTAILQ_HEAD_INITIALIZER’
>   360 |         { NULL, &(head).tqh_first }
>       |                   ^~~~
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: warning: excess elements in struct initializer
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:128:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   128 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: note: (near initialization for ‘runtime_opts’)
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:128:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   128 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:129:6: error: ‘QemuOptsList’ has no member named ‘desc’
>   129 |     .desc = {
>       |      ^~~~
> /home/elmarco/src/qq/block/vxhs.c:129:13: error: extra brace group at end of initializer
>   129 |     .desc = {
>       |             ^
> /home/elmarco/src/qq/block/vxhs.c:129:13: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:130:9: error: extra brace group at end of initializer
>   130 |         {
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:130:9: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:132:21: error: ‘QEMU_OPT_STRING’ undeclared here (not in a function)
>   132 |             .type = QEMU_OPT_STRING,
>       |                     ^~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:135:9: error: extra brace group at end of initializer
>   135 |         {
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:135:9: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:140:9: error: extra brace group at end of initializer
>   140 |         {
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:140:9: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:145:9: error: extra brace group at end of initializer
>   145 |         { /* end of list */ }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:145:9: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:129:13: warning: excess elements in struct initializer
>   129 |     .desc = {
>       |             ^
> /home/elmarco/src/qq/block/vxhs.c:129:13: note: (near initialization for ‘runtime_opts’)
> /home/elmarco/src/qq/block/vxhs.c:149:1: error: variable ‘runtime_tcp_opts’ has initializer but incomplete type
>   149 | static QemuOptsList runtime_tcp_opts = {
>       | ^~~~~~
> /home/elmarco/src/qq/block/vxhs.c:150:6: error: ‘QemuOptsList’ has no member named ‘name’
>   150 |     .name = "vxhs_tcp",
>       |      ^~~~
> /home/elmarco/src/qq/block/vxhs.c:150:13: warning: excess elements in struct initializer
>   150 |     .name = "vxhs_tcp",
>       |             ^~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:150:13: note: (near initialization for ‘runtime_tcp_opts’)
> /home/elmarco/src/qq/block/vxhs.c:151:6: error: ‘QemuOptsList’ has no member named ‘head’
>   151 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
>       |      ^~~~
> In file included from /home/elmarco/src/qq/include/qemu/notify.h:17,
>                  from /home/elmarco/src/qq/include/qemu/timer.h:5,
>                  from /home/elmarco/src/qq/include/qemu/timed-average.h:29,
>                  from /home/elmarco/src/qq/include/block/accounting.h:28,
>                  from /home/elmarco/src/qq/include/block/block_int.h:27,
>                  from /home/elmarco/src/qq/block/vxhs.c:14:
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: error: extra brace group at end of initializer
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:151:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   151 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: note: (near initialization for ‘runtime_tcp_opts’)
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:151:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   151 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:151:53: error: invalid use of incomplete typedef ‘QemuOptsList’
>   151 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
>       |                                                     ^
> /home/elmarco/src/qq/include/qemu/queue.h:360:19: note: in definition of macro ‘QTAILQ_HEAD_INITIALIZER’
>   360 |         { NULL, &(head).tqh_first }
>       |                   ^~~~
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: warning: excess elements in struct initializer
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:151:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   151 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/include/qemu/queue.h:360:9: note: (near initialization for ‘runtime_tcp_opts’)
>   360 |         { NULL, &(head).tqh_first }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:151:13: note: in expansion of macro ‘QTAILQ_HEAD_INITIALIZER’
>   151 |     .head = QTAILQ_HEAD_INITIALIZER(runtime_tcp_opts.head),
>       |             ^~~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:152:6: error: ‘QemuOptsList’ has no member named ‘desc’
>   152 |     .desc = {
>       |      ^~~~
> /home/elmarco/src/qq/block/vxhs.c:152:13: error: extra brace group at end of initializer
>   152 |     .desc = {
>       |             ^
> /home/elmarco/src/qq/block/vxhs.c:152:13: note: (near initialization for ‘runtime_tcp_opts’)
> /home/elmarco/src/qq/block/vxhs.c:153:9: error: extra brace group at end of initializer
>   153 |         {
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:153:9: note: (near initialization for ‘runtime_tcp_opts’)
> /home/elmarco/src/qq/block/vxhs.c:158:9: error: extra brace group at end of initializer
>   158 |         {
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:158:9: note: (near initialization for ‘runtime_tcp_opts’)
> /home/elmarco/src/qq/block/vxhs.c:160:21: error: ‘QEMU_OPT_NUMBER’ undeclared here (not in a function)
>   160 |             .type = QEMU_OPT_NUMBER,
>       |                     ^~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:164:9: error: extra brace group at end of initializer
>   164 |         { /* end of list */ }
>       |         ^
> /home/elmarco/src/qq/block/vxhs.c:164:9: note: (near initialization for ‘runtime_tcp_opts’)
> /home/elmarco/src/qq/block/vxhs.c:152:13: warning: excess elements in struct initializer
>   152 |     .desc = {
>       |             ^
> /home/elmarco/src/qq/block/vxhs.c:152:13: note: (near initialization for ‘runtime_tcp_opts’)
> /home/elmarco/src/qq/block/vxhs.c: In function ‘vxhs_open’:
> /home/elmarco/src/qq/block/vxhs.c:309:12: warning: implicit declaration of function ‘qemu_opts_create’; did you mean ‘qbus_create’? [-Wimplicit-function-declaration]
>   309 |     opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
>       |            ^~~~~~~~~~~~~~~~
>       |            qbus_create
> /home/elmarco/src/qq/block/vxhs.c:309:12: warning: nested extern declaration of ‘qemu_opts_create’ [-Wnested-externs]
> /home/elmarco/src/qq/block/vxhs.c:309:10: warning: assignment to ‘QemuOpts *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
>   309 |     opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
>       |          ^
> /home/elmarco/src/qq/block/vxhs.c:310:14: warning: assignment to ‘QemuOpts *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
>   310 |     tcp_opts = qemu_opts_create(&runtime_tcp_opts, NULL, 0, &error_abort);
>       |              ^
> /home/elmarco/src/qq/block/vxhs.c:312:5: warning: implicit declaration of function ‘qemu_opts_absorb_qdict’ [-Wimplicit-function-declaration]
>   312 |     qemu_opts_absorb_qdict(opts, options, &local_err);
>       |     ^~~~~~~~~~~~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:312:5: warning: nested extern declaration of ‘qemu_opts_absorb_qdict’ [-Wnested-externs]
> /home/elmarco/src/qq/block/vxhs.c:319:20: warning: implicit declaration of function ‘qemu_opt_get’; did you mean ‘qemu_aio_get’? [-Wimplicit-function-declaration]
>   319 |     vdisk_id_opt = qemu_opt_get(opts, VXHS_OPT_VDISK_ID);
>       |                    ^~~~~~~~~~~~
>       |                    qemu_aio_get
> /home/elmarco/src/qq/block/vxhs.c:319:20: warning: nested extern declaration of ‘qemu_opt_get’ [-Wnested-externs]
> /home/elmarco/src/qq/block/vxhs.c:319:18: warning: assignment to ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
>   319 |     vdisk_id_opt = qemu_opt_get(opts, VXHS_OPT_VDISK_ID);
>       |                  ^
> /home/elmarco/src/qq/block/vxhs.c:346:21: warning: assignment to ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
>   346 |     server_host_opt = qemu_opt_get(tcp_opts, VXHS_OPT_HOST);
>       |                     ^
> /home/elmarco/src/qq/block/vxhs.c:362:30: warning: passing argument 1 of ‘g_strdup’ makes pointer from integer without a cast [-Wint-conversion]
>   362 |     s->tlscredsid = g_strdup(qemu_opt_get(opts, "tls-creds"));
>       |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       |                              |
>       |                              int
> In file included from /usr/local/stow/glib/include/glib-2.0/glib.h:82,
>                  from /home/elmarco/src/qq/include/glib-compat.h:19,
>                  from /home/elmarco/src/qq/include/qemu/osdep.h:107,
>                  from /home/elmarco/src/qq/block/vxhs.c:11:
> /usr/local/stow/glib/include/glib-2.0/glib/gstrfuncs.h:217:52: note: expected ‘const gchar *’ {aka ‘const char *’} but argument is of type ‘int’
>   217 | gchar*               g_strdup        (const gchar *str) G_GNUC_MALLOC;
>       |                                       ~~~~~~~~~~~~~^~~
> /home/elmarco/src/qq/block/vxhs.c:374:46: warning: passing argument 1 of ‘g_ascii_strtoll’ makes pointer from integer without a cast [-Wint-conversion]
>   374 |     s->vdisk_hostinfo.port = g_ascii_strtoll(qemu_opt_get(tcp_opts,
>       |                                              ^~~~~~~~~~~~~~~~~~~~~~
>       |                                              |
>       |                                              int
>   375 |                                                           VXHS_OPT_PORT),
>       |                                                           ~~~~~~~~~~~~~~
> In file included from /usr/local/stow/glib/include/glib-2.0/glib.h:82,
>                  from /home/elmarco/src/qq/include/glib-compat.h:19,
>                  from /home/elmarco/src/qq/include/qemu/osdep.h:107,
>                  from /home/elmarco/src/qq/block/vxhs.c:11:
> /usr/local/stow/glib/include/glib-2.0/glib/gstrfuncs.h:157:46: note: expected ‘const gchar *’ {aka ‘const char *’} but argument is of type ‘int’
>   157 | gint64        g_ascii_strtoll  (const gchar *nptr,
>       |                                 ~~~~~~~~~~~~~^~~~
> /home/elmarco/src/qq/block/vxhs.c:400:5: warning: implicit declaration of function ‘qemu_opts_del’; did you mean ‘qemu_open’? [-Wimplicit-function-declaration]
>   400 |     qemu_opts_del(tcp_opts);
>       |     ^~~~~~~~~~~~~
>       |     qemu_open
> /home/elmarco/src/qq/block/vxhs.c:400:5: warning: nested extern declaration of ‘qemu_opts_del’ [-Wnested-externs]
> /home/elmarco/src/qq/block/vxhs.c: At top level:
> /home/elmarco/src/qq/block/vxhs.c:126:21: error: storage size of ‘runtime_opts’ isn’t known
>   126 | static QemuOptsList runtime_opts = {
>       |                     ^~~~~~~~~~~~
> /home/elmarco/src/qq/block/vxhs.c:149:21: error: storage size of ‘runtime_tcp_opts’ isn’t known
>   149 | static QemuOptsList runtime_tcp_opts = {
>       |                     ^~~~~~~~~~~~~~~~
> make: *** [/home/elmarco/src/qq/rules.mak:66: block/vxhs.o] Error 1

That looks more like it got missed in a clean-up series because we don't
have coverage in our typical builds and CI?

-- 
Alex Bennée


  parent reply	other threads:[~2020-07-09 15:51 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-09 15:10 Is VXHS actually maintained? Marc-André Lureau
2020-07-09 15:20 ` Thomas Huth
2020-07-09 15:25   ` Philippe Mathieu-Daudé
2020-07-09 15:26   ` Daniel P. Berrangé
2020-07-09 15:30     ` Peter Maydell
2020-07-09 15:41       ` Marc-André Lureau
2020-07-09 15:47         ` Peter Maydell
2020-07-09 15:50         ` Alex Bennée [this message]
2020-07-09 15:51           ` Peter Maydell
2020-07-09 16:02             ` Marc-André Lureau
2020-07-09 16:25             ` Alex Bennée

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=874kqgn0vj.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=ashmit602@gmail.com \
    --cc=berrange@redhat.com \
    --cc=codyprime@gmail.com \
    --cc=kwolf@redhat.com \
    --cc=marcandre.lureau@gmail.com \
    --cc=mreitz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /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).