diff mbox series

[v4,03/18] meson: require liburing >= 0.3

Message ID 20211124130150.268230-4-berrange@redhat.com
State New
Headers show
Series tests/docker: start using libvirt-ci's "lcitool" for dockerfiles | expand

Commit Message

Daniel P. Berrangé Nov. 24, 2021, 1:01 p.m. UTC
openSUSE Leap 15.2 ships with liburing == 0.2 against which QEMU fails
to build.

../util/fdmon-io_uring.c: In function ‘fdmon_io_uring_need_wait’:
../util/fdmon-io_uring.c:305:9: error: implicit declaration of function ‘io_uring_sq_ready’; did you mean ‘io_uring_cq_ready’? [-Werror=implicit-function-declaration]
     if (io_uring_sq_ready(&ctx->fdmon_io_uring)) {
         ^~~~~~~~~~~~~~~~~
         io_uring_cq_ready

This method was introduced in liburing 0.3, so set that as a minimum
requirement.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Dec. 15, 2021, 11:27 a.m. UTC | #1
Cc'ing Stefan & Stefano.

On 11/24/21 14:01, Daniel P. Berrangé wrote:
> openSUSE Leap 15.2 ships with liburing == 0.2 against which QEMU fails
> to build.
> 
> ../util/fdmon-io_uring.c: In function ‘fdmon_io_uring_need_wait’:
> ../util/fdmon-io_uring.c:305:9: error: implicit declaration of function ‘io_uring_sq_ready’; did you mean ‘io_uring_cq_ready’? [-Werror=implicit-function-declaration]
>      if (io_uring_sq_ready(&ctx->fdmon_io_uring)) {
>          ^~~~~~~~~~~~~~~~~
>          io_uring_cq_ready
> 
> This method was introduced in liburing 0.3, so set that as a minimum
> requirement.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  meson.build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index e2d38a43e6..04d36bf47e 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -427,7 +427,8 @@ if not get_option('linux_aio').auto() or have_block
>  endif
>  linux_io_uring = not_found
>  if not get_option('linux_io_uring').auto() or have_block
> -  linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
> +  linux_io_uring = dependency('liburing', version: '>=0.3',
> +                              required: get_option('linux_io_uring'),
>                                method: 'pkg-config', kwargs: static_kwargs)
>  endif
>  libxml2 = not_found
>
Philippe Mathieu-Daudé Dec. 15, 2021, 11:56 a.m. UTC | #2
+Cole too, who reviewed commit ae60ab7eb20
("aio-posix: fix test-aio /aio/event/wait with fdmon-io_uring").

On 12/15/21 12:27, Philippe Mathieu-Daudé wrote:
> Cc'ing Stefan & Stefano.
> 
> On 11/24/21 14:01, Daniel P. Berrangé wrote:
>> openSUSE Leap 15.2 ships with liburing == 0.2 against which QEMU fails
>> to build.
>>
>> ../util/fdmon-io_uring.c: In function ‘fdmon_io_uring_need_wait’:
>> ../util/fdmon-io_uring.c:305:9: error: implicit declaration of function ‘io_uring_sq_ready’; did you mean ‘io_uring_cq_ready’? [-Werror=implicit-function-declaration]
>>      if (io_uring_sq_ready(&ctx->fdmon_io_uring)) {
>>          ^~~~~~~~~~~~~~~~~
>>          io_uring_cq_ready
>>
>> This method was introduced in liburing 0.3, so set that as a minimum
>> requirement.

Indeed:

https://github.com/axboe/liburing/compare/liburing-0.2...liburing-0.3#diff-e0178cba1dc791a3b22c0a516225980907931d18a2773adf584e8dcffb51a2caR330

>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>> ---
>>  meson.build | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/meson.build b/meson.build
>> index e2d38a43e6..04d36bf47e 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -427,7 +427,8 @@ if not get_option('linux_aio').auto() or have_block
>>  endif
>>  linux_io_uring = not_found
>>  if not get_option('linux_io_uring').auto() or have_block
>> -  linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
>> +  linux_io_uring = dependency('liburing', version: '>=0.3',

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>> +                              required: get_option('linux_io_uring'),
>>                                method: 'pkg-config', kwargs: static_kwargs)
>>  endif
>>  libxml2 = not_found
>>
Stefan Hajnoczi Dec. 15, 2021, 1:25 p.m. UTC | #3
On Wed, Dec 15, 2021 at 12:27:43PM +0100, Philippe Mathieu-Daudé wrote:
> Cc'ing Stefan & Stefano.
> 
> On 11/24/21 14:01, Daniel P. Berrangé wrote:
> > openSUSE Leap 15.2 ships with liburing == 0.2 against which QEMU fails
> > to build.
> > 
> > ../util/fdmon-io_uring.c: In function ‘fdmon_io_uring_need_wait’:
> > ../util/fdmon-io_uring.c:305:9: error: implicit declaration of function ‘io_uring_sq_ready’; did you mean ‘io_uring_cq_ready’? [-Werror=implicit-function-declaration]
> >      if (io_uring_sq_ready(&ctx->fdmon_io_uring)) {
> >          ^~~~~~~~~~~~~~~~~
> >          io_uring_cq_ready
> > 
> > This method was introduced in liburing 0.3, so set that as a minimum
> > requirement.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >  meson.build | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/meson.build b/meson.build
> > index e2d38a43e6..04d36bf47e 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -427,7 +427,8 @@ if not get_option('linux_aio').auto() or have_block
> >  endif
> >  linux_io_uring = not_found
> >  if not get_option('linux_io_uring').auto() or have_block
> > -  linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
> > +  linux_io_uring = dependency('liburing', version: '>=0.3',
> > +                              required: get_option('linux_io_uring'),
> >                                method: 'pkg-config', kwargs: static_kwargs)
> >  endif
> >  libxml2 = not_found
> > 
> 

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Stefano Garzarella Dec. 15, 2021, 1:47 p.m. UTC | #4
On Wed, Dec 15, 2021 at 12:27:43PM +0100, Philippe Mathieu-Daudé wrote:
>Cc'ing Stefan & Stefano.

Thanks Phil!

>
>On 11/24/21 14:01, Daniel P. Berrangé wrote:
>> openSUSE Leap 15.2 ships with liburing == 0.2 against which QEMU fails
>> to build.
>>
>> ../util/fdmon-io_uring.c: In function ‘fdmon_io_uring_need_wait’:
>> ../util/fdmon-io_uring.c:305:9: error: implicit declaration of function ‘io_uring_sq_ready’; did you mean ‘io_uring_cq_ready’? [-Werror=implicit-function-declaration]
>>      if (io_uring_sq_ready(&ctx->fdmon_io_uring)) {
>>          ^~~~~~~~~~~~~~~~~
>>          io_uring_cq_ready
>>
>> This method was introduced in liburing 0.3, so set that as a minimum
>> requirement.
>>
>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>> ---
>>  meson.build | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/meson.build b/meson.build
>> index e2d38a43e6..04d36bf47e 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -427,7 +427,8 @@ if not get_option('linux_aio').auto() or have_block
>>  endif
>>  linux_io_uring = not_found
>>  if not get_option('linux_io_uring').auto() or have_block
>> -  linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
>> +  linux_io_uring = dependency('liburing', version: '>=0.3',
>> +                              required: get_option('linux_io_uring'),
>>                                method: 'pkg-config', kwargs: static_kwargs)
>>  endif
>>  libxml2 = not_found
>>
>

LGTM!

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Li Zhang Dec. 15, 2021, 4:21 p.m. UTC | #5
On 11/24/21 2:01 PM, Daniel P. Berrangé wrote:
> openSUSE Leap 15.2 ships with liburing == 0.2 against which QEMU fails
> to build.
> 
> ../util/fdmon-io_uring.c: In function ‘fdmon_io_uring_need_wait’:
> ../util/fdmon-io_uring.c:305:9: error: implicit declaration of function ‘io_uring_sq_ready’; did you mean ‘io_uring_cq_ready’? [-Werror=implicit-function-declaration]
>       if (io_uring_sq_ready(&ctx->fdmon_io_uring)) {
>           ^~~~~~~~~~~~~~~~~
>           io_uring_cq_ready
> 
> This method was introduced in liburing 0.3, so set that as a minimum
> requirement.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   meson.build | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index e2d38a43e6..04d36bf47e 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -427,7 +427,8 @@ if not get_option('linux_aio').auto() or have_block
>   endif
>   linux_io_uring = not_found
>   if not get_option('linux_io_uring').auto() or have_block
> -  linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
> +  linux_io_uring = dependency('liburing', version: '>=0.3',
> +                              required: get_option('linux_io_uring'),
>                                 method: 'pkg-config', kwargs: static_kwargs)
>   endif
>   libxml2 = not_found
> 

Thanks for fixing this. I didn't notice it on openSUSE SLE 15.2. I just 
checked my system openSUSE SLE 15.3, the version is 0.6 which is much 
newer.

Thanks
Li
diff mbox series

Patch

diff --git a/meson.build b/meson.build
index e2d38a43e6..04d36bf47e 100644
--- a/meson.build
+++ b/meson.build
@@ -427,7 +427,8 @@  if not get_option('linux_aio').auto() or have_block
 endif
 linux_io_uring = not_found
 if not get_option('linux_io_uring').auto() or have_block
-  linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
+  linux_io_uring = dependency('liburing', version: '>=0.3',
+                              required: get_option('linux_io_uring'),
                               method: 'pkg-config', kwargs: static_kwargs)
 endif
 libxml2 = not_found