Message ID | 2bc956011404a1ab03342aefde0087b5b4762562.1674477350.git.pkrempa@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block/blkio: Fix inclusion of required headers | expand |
Peter Krempa <pkrempa@redhat.com> writes: > After recent header file inclusion rework the build fails when the blkio > module is enabled: > > ../block/blkio.c: In function ‘blkio_detach_aio_context’: > ../block/blkio.c:321:24: error: implicit declaration of function ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? [-Werror=implicit-function-declaration] > 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), > | ^~~~~~~~~~~~~~~~~~~~ > | qemu_get_aio_context > ../block/blkio.c:321:24: error: nested extern declaration of ‘bdrv_get_aio_context’ [-Werror=nested-externs] > ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ makes pointer from integer without a cast [-Werror=int-conversion] > 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | | > | int > In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33, > from /home/pipo/git/qemu.git/include/block/blockjob.h:30, > from /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28, > from /home/pipo/git/qemu.git/include/block/block_int.h:27, > from ../block/blkio.c:13: > /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected ‘AioContext *’ but argument is of type ‘int’ > 476 | void aio_set_fd_handler(AioContext *ctx, > | ~~~~~~~~~~~~^~~ > ../block/blkio.c: In function ‘blkio_file_open’: > ../block/blkio.c:821:34: error: passing argument 2 of ‘blkio_attach_aio_context’ makes pointer from integer without a cast [-Werror=int-conversion] > 821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs)); > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | | > | int > My apologies... Why are modules disabled by default? > Fix it by including 'block/block-io.h' which contains the required > declarations. > > Fixes: e2c1c34f139f49ef909bb4322607fb8b39002312 > Signed-off-by: Peter Krempa <pkrempa@redhat.com> > --- > block/blkio.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/block/blkio.c b/block/blkio.c > index 5eae3adfaf..6ad86b23d1 100644 > --- a/block/blkio.c > +++ b/block/blkio.c > @@ -19,6 +19,8 @@ > #include "qemu/module.h" > #include "exec/memory.h" /* for ram_block_discard_disable() */ > > +#include "block/block-io.h" > + > /* > * Keep the QEMU BlockDriver names identical to the libblkio driver names. > * Using macros instead of typing out the string literals avoids typos. Reviewed-by: Markus Armbruster <armbru@redhat.com>
On Mon, Jan 23, 2023 at 15:01:37 +0100, Markus Armbruster wrote: > Peter Krempa <pkrempa@redhat.com> writes: > > > After recent header file inclusion rework the build fails when the blkio > > module is enabled: > > > > ../block/blkio.c: In function ‘blkio_detach_aio_context’: > > ../block/blkio.c:321:24: error: implicit declaration of function ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? [-Werror=implicit-function-declaration] > > 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), > > | ^~~~~~~~~~~~~~~~~~~~ > > | qemu_get_aio_context > > ../block/blkio.c:321:24: error: nested extern declaration of ‘bdrv_get_aio_context’ [-Werror=nested-externs] > > ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ makes pointer from integer without a cast [-Werror=int-conversion] > > 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > | | > > | int > > In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33, > > from /home/pipo/git/qemu.git/include/block/blockjob.h:30, > > from /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28, > > from /home/pipo/git/qemu.git/include/block/block_int.h:27, > > from ../block/blkio.c:13: > > /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected ‘AioContext *’ but argument is of type ‘int’ > > 476 | void aio_set_fd_handler(AioContext *ctx, > > | ~~~~~~~~~~~~^~~ > > ../block/blkio.c: In function ‘blkio_file_open’: > > ../block/blkio.c:821:34: error: passing argument 2 of ‘blkio_attach_aio_context’ makes pointer from integer without a cast [-Werror=int-conversion] > > 821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs)); > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > | | > > | int > > > > My apologies... > > Why are modules disabled by default? libblkio is too new and is not yet packaged too widely. IIUC it's supposed to be included e.g. in Fedora 38, so you most likely don't have the dependancy. I actually installed it explicitly since I wanted to give it a try.
On Mon, Jan 23, 2023 at 01:39:27PM +0100, Peter Krempa wrote: > After recent header file inclusion rework the build fails when the blkio > module is enabled: > > ../block/blkio.c: In function ‘blkio_detach_aio_context’: > ../block/blkio.c:321:24: error: implicit declaration of function ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? [-Werror=implicit-function-declaration] > 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), > | ^~~~~~~~~~~~~~~~~~~~ > | qemu_get_aio_context > ../block/blkio.c:321:24: error: nested extern declaration of ‘bdrv_get_aio_context’ [-Werror=nested-externs] > ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ makes pointer from integer without a cast [-Werror=int-conversion] > 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | | > | int > In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33, > from /home/pipo/git/qemu.git/include/block/blockjob.h:30, > from /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28, > from /home/pipo/git/qemu.git/include/block/block_int.h:27, > from ../block/blkio.c:13: > /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected ‘AioContext *’ but argument is of type ‘int’ > 476 | void aio_set_fd_handler(AioContext *ctx, > | ~~~~~~~~~~~~^~~ > ../block/blkio.c: In function ‘blkio_file_open’: > ../block/blkio.c:821:34: error: passing argument 2 of ‘blkio_attach_aio_context’ makes pointer from integer without a cast [-Werror=int-conversion] > 821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs)); > | ^~~~~~~~~~~~~~~~~~~~~~~~ > | | > | int > > Fix it by including 'block/block-io.h' which contains the required > declarations. > > Fixes: e2c1c34f139f49ef909bb4322607fb8b39002312 > Signed-off-by: Peter Krempa <pkrempa@redhat.com> > --- > block/blkio.c | 2 ++ > 1 file changed, 2 insertions(+) Thanks, applied to my block-next tree: https://gitlab.com/stefanha/qemu/commits/block-next Stefan
diff --git a/block/blkio.c b/block/blkio.c index 5eae3adfaf..6ad86b23d1 100644 --- a/block/blkio.c +++ b/block/blkio.c @@ -19,6 +19,8 @@ #include "qemu/module.h" #include "exec/memory.h" /* for ram_block_discard_disable() */ +#include "block/block-io.h" + /* * Keep the QEMU BlockDriver names identical to the libblkio driver names. * Using macros instead of typing out the string literals avoids typos.
After recent header file inclusion rework the build fails when the blkio module is enabled: ../block/blkio.c: In function ‘blkio_detach_aio_context’: ../block/blkio.c:321:24: error: implicit declaration of function ‘bdrv_get_aio_context’; did you mean ‘qemu_get_aio_context’? [-Werror=implicit-function-declaration] 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), | ^~~~~~~~~~~~~~~~~~~~ | qemu_get_aio_context ../block/blkio.c:321:24: error: nested extern declaration of ‘bdrv_get_aio_context’ [-Werror=nested-externs] ../block/blkio.c:321:24: error: passing argument 1 of ‘aio_set_fd_handler’ makes pointer from integer without a cast [-Werror=int-conversion] 321 | aio_set_fd_handler(bdrv_get_aio_context(bs), | ^~~~~~~~~~~~~~~~~~~~~~~~ | | | int In file included from /home/pipo/git/qemu.git/include/qemu/job.h:33, from /home/pipo/git/qemu.git/include/block/blockjob.h:30, from /home/pipo/git/qemu.git/include/block/block_int-global-state.h:28, from /home/pipo/git/qemu.git/include/block/block_int.h:27, from ../block/blkio.c:13: /home/pipo/git/qemu.git/include/block/aio.h:476:37: note: expected ‘AioContext *’ but argument is of type ‘int’ 476 | void aio_set_fd_handler(AioContext *ctx, | ~~~~~~~~~~~~^~~ ../block/blkio.c: In function ‘blkio_file_open’: ../block/blkio.c:821:34: error: passing argument 2 of ‘blkio_attach_aio_context’ makes pointer from integer without a cast [-Werror=int-conversion] 821 | blkio_attach_aio_context(bs, bdrv_get_aio_context(bs)); | ^~~~~~~~~~~~~~~~~~~~~~~~ | | | int Fix it by including 'block/block-io.h' which contains the required declarations. Fixes: e2c1c34f139f49ef909bb4322607fb8b39002312 Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- block/blkio.c | 2 ++ 1 file changed, 2 insertions(+)