Hi

On Thu, Jul 9, 2020 at 7:30 PM Peter Maydell <peter.mayd...@linaro.org>
wrote:

> On Thu, 9 Jul 2020 at 16:27, Daniel P. Berrangé <berra...@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

-- 
Marc-André Lureau

Reply via email to