qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is VXHS actually maintained?


From: Alex Bennée
Subject: Re: Is VXHS actually maintained?
Date: Thu, 09 Jul 2020 16:50:40 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]