diff mbox series

util/meson.build: fix fdmon-io_uring build

Message ID 20200821154853.94379-1-sgarzare@redhat.com (mailing list archive)
State New, archived
Headers show
Series util/meson.build: fix fdmon-io_uring build | expand

Commit Message

Stefano Garzarella Aug. 21, 2020, 3:48 p.m. UTC
libqemuutil.a build fails with this error:

  /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `get_sqe':
  qemu/build/../util/fdmon-io_uring.c:83: undefined reference to `io_uring_get_sqe'
  /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:92: undefined reference to `io_uring_submit'
  /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:96: undefined reference to `io_uring_get_sqe'
  /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_wait':
  qemu/build/../util/fdmon-io_uring.c:289: undefined reference to `io_uring_submit_and_wait'
  /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_setup':
  qemu/build/../util/fdmon-io_uring.c:328: undefined reference to `io_uring_queue_init'
  /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_destroy':
  qemu/build/../util/fdmon-io_uring.c:343: undefined reference to `io_uring_queue_exit'
  collect2: error: ld returned 1 exit status

This patch fix the issue adding 'linux_io_uring' dependency for
fdmon-io_uring.c

Fixes: a81df1b68b ("libqemuutil, qapi, trace: convert to meson")
Cc: pbonzini@redhat.com
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
 util/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Aug. 21, 2020, 4:12 p.m. UTC | #1
Hi Stefano,

On 8/21/20 5:48 PM, Stefano Garzarella wrote:
> libqemuutil.a build fails with this error:
> 
>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `get_sqe':
>   qemu/build/../util/fdmon-io_uring.c:83: undefined reference to `io_uring_get_sqe'
>   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:92: undefined reference to `io_uring_submit'
>   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:96: undefined reference to `io_uring_get_sqe'
>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_wait':
>   qemu/build/../util/fdmon-io_uring.c:289: undefined reference to `io_uring_submit_and_wait'
>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_setup':
>   qemu/build/../util/fdmon-io_uring.c:328: undefined reference to `io_uring_queue_init'
>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_destroy':
>   qemu/build/../util/fdmon-io_uring.c:343: undefined reference to `io_uring_queue_exit'
>   collect2: error: ld returned 1 exit status

Can you add a gitlab job to reproduce this? (Or at least explain
how to reproduce, so we add that job later). Thanks!

> 
> This patch fix the issue adding 'linux_io_uring' dependency for
> fdmon-io_uring.c
> 
> Fixes: a81df1b68b ("libqemuutil, qapi, trace: convert to meson")
> Cc: pbonzini@redhat.com
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
>  util/meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/util/meson.build b/util/meson.build
> index 23b8ad459b..e6b207a99e 100644
> --- a/util/meson.build
> +++ b/util/meson.build
> @@ -4,7 +4,7 @@ util_ss.add(when: 'CONFIG_ATOMIC64', if_false: files('atomic64.c'))
>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('aio-posix.c'))
>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('fdmon-poll.c'))
>  util_ss.add(when: 'CONFIG_EPOLL_CREATE1', if_true: files('fdmon-epoll.c'))
> -util_ss.add(when: 'CONFIG_LINUX_IO_URING', if_true: files('fdmon-io_uring.c'))
> +util_ss.add(when: ['CONFIG_LINUX_IO_URING', linux_io_uring], if_true: files('fdmon-io_uring.c'))
>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('compatfd.c'))
>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('event_notifier-posix.c'))
>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('mmap-alloc.c'))
>
Stefano Garzarella Aug. 21, 2020, 4:23 p.m. UTC | #2
On Fri, Aug 21, 2020 at 06:12:45PM +0200, Philippe Mathieu-Daudé wrote:
> Hi Stefano,
> 
> On 8/21/20 5:48 PM, Stefano Garzarella wrote:
> > libqemuutil.a build fails with this error:
> > 
> >   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `get_sqe':
> >   qemu/build/../util/fdmon-io_uring.c:83: undefined reference to `io_uring_get_sqe'
> >   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:92: undefined reference to `io_uring_submit'
> >   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:96: undefined reference to `io_uring_get_sqe'
> >   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_wait':
> >   qemu/build/../util/fdmon-io_uring.c:289: undefined reference to `io_uring_submit_and_wait'
> >   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_setup':
> >   qemu/build/../util/fdmon-io_uring.c:328: undefined reference to `io_uring_queue_init'
> >   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_destroy':
> >   qemu/build/../util/fdmon-io_uring.c:343: undefined reference to `io_uring_queue_exit'
> >   collect2: error: ld returned 1 exit status
> 
> Can you add a gitlab job to reproduce this? (Or at least explain
> how to reproduce, so we add that job later). Thanks!

I think the only prerequisite is to install 'liburing-devel' package
(Fedora 32) on the build system, and then fdmon-io_uring.c will be built.

I'll try to add a gitlab job ;-)

Thanks,
Stefano

> 
> > 
> > This patch fix the issue adding 'linux_io_uring' dependency for
> > fdmon-io_uring.c
> > 
> > Fixes: a81df1b68b ("libqemuutil, qapi, trace: convert to meson")
> > Cc: pbonzini@redhat.com
> > Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> > ---
> >  util/meson.build | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/util/meson.build b/util/meson.build
> > index 23b8ad459b..e6b207a99e 100644
> > --- a/util/meson.build
> > +++ b/util/meson.build
> > @@ -4,7 +4,7 @@ util_ss.add(when: 'CONFIG_ATOMIC64', if_false: files('atomic64.c'))
> >  util_ss.add(when: 'CONFIG_POSIX', if_true: files('aio-posix.c'))
> >  util_ss.add(when: 'CONFIG_POSIX', if_true: files('fdmon-poll.c'))
> >  util_ss.add(when: 'CONFIG_EPOLL_CREATE1', if_true: files('fdmon-epoll.c'))
> > -util_ss.add(when: 'CONFIG_LINUX_IO_URING', if_true: files('fdmon-io_uring.c'))
> > +util_ss.add(when: ['CONFIG_LINUX_IO_URING', linux_io_uring], if_true: files('fdmon-io_uring.c'))
> >  util_ss.add(when: 'CONFIG_POSIX', if_true: files('compatfd.c'))
> >  util_ss.add(when: 'CONFIG_POSIX', if_true: files('event_notifier-posix.c'))
> >  util_ss.add(when: 'CONFIG_POSIX', if_true: files('mmap-alloc.c'))
> > 
>
Philippe Mathieu-Daudé Aug. 21, 2020, 4:46 p.m. UTC | #3
On 8/21/20 6:23 PM, Stefano Garzarella wrote:
> On Fri, Aug 21, 2020 at 06:12:45PM +0200, Philippe Mathieu-Daudé wrote:
>> Hi Stefano,
>>
>> On 8/21/20 5:48 PM, Stefano Garzarella wrote:
>>> libqemuutil.a build fails with this error:
>>>
>>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `get_sqe':
>>>   qemu/build/../util/fdmon-io_uring.c:83: undefined reference to `io_uring_get_sqe'
>>>   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:92: undefined reference to `io_uring_submit'
>>>   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:96: undefined reference to `io_uring_get_sqe'
>>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_wait':
>>>   qemu/build/../util/fdmon-io_uring.c:289: undefined reference to `io_uring_submit_and_wait'
>>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_setup':
>>>   qemu/build/../util/fdmon-io_uring.c:328: undefined reference to `io_uring_queue_init'
>>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_destroy':
>>>   qemu/build/../util/fdmon-io_uring.c:343: undefined reference to `io_uring_queue_exit'
>>>   collect2: error: ld returned 1 exit status
>>
>> Can you add a gitlab job to reproduce this? (Or at least explain
>> how to reproduce, so we add that job later). Thanks!
> 
> I think the only prerequisite is to install 'liburing-devel' package
> (Fedora 32) on the build system, and then fdmon-io_uring.c will be built.

Oh easy then, simply add it to PACKAGES in
tests/docker/dockerfiles/fedora.docker :)

> 
> I'll try to add a gitlab job ;-)
> 
> Thanks,
> Stefano
> 
>>
>>>
>>> This patch fix the issue adding 'linux_io_uring' dependency for
>>> fdmon-io_uring.c
>>>
>>> Fixes: a81df1b68b ("libqemuutil, qapi, trace: convert to meson")
>>> Cc: pbonzini@redhat.com
>>> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
>>> ---
>>>  util/meson.build | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/util/meson.build b/util/meson.build
>>> index 23b8ad459b..e6b207a99e 100644
>>> --- a/util/meson.build
>>> +++ b/util/meson.build
>>> @@ -4,7 +4,7 @@ util_ss.add(when: 'CONFIG_ATOMIC64', if_false: files('atomic64.c'))
>>>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('aio-posix.c'))
>>>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('fdmon-poll.c'))
>>>  util_ss.add(when: 'CONFIG_EPOLL_CREATE1', if_true: files('fdmon-epoll.c'))
>>> -util_ss.add(when: 'CONFIG_LINUX_IO_URING', if_true: files('fdmon-io_uring.c'))
>>> +util_ss.add(when: ['CONFIG_LINUX_IO_URING', linux_io_uring], if_true: files('fdmon-io_uring.c'))
>>>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('compatfd.c'))
>>>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('event_notifier-posix.c'))
>>>  util_ss.add(when: 'CONFIG_POSIX', if_true: files('mmap-alloc.c'))
>>>
>>
>
Stefano Garzarella Aug. 21, 2020, 4:50 p.m. UTC | #4
On Fri, Aug 21, 2020 at 06:46:15PM +0200, Philippe Mathieu-Daudé wrote:
> On 8/21/20 6:23 PM, Stefano Garzarella wrote:
> > On Fri, Aug 21, 2020 at 06:12:45PM +0200, Philippe Mathieu-Daudé wrote:
> >> Hi Stefano,
> >>
> >> On 8/21/20 5:48 PM, Stefano Garzarella wrote:
> >>> libqemuutil.a build fails with this error:
> >>>
> >>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `get_sqe':
> >>>   qemu/build/../util/fdmon-io_uring.c:83: undefined reference to `io_uring_get_sqe'
> >>>   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:92: undefined reference to `io_uring_submit'
> >>>   /usr/bin/ld: qemu/build/../util/fdmon-io_uring.c:96: undefined reference to `io_uring_get_sqe'
> >>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_wait':
> >>>   qemu/build/../util/fdmon-io_uring.c:289: undefined reference to `io_uring_submit_and_wait'
> >>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_setup':
> >>>   qemu/build/../util/fdmon-io_uring.c:328: undefined reference to `io_uring_queue_init'
> >>>   /usr/bin/ld: libqemuutil.a(util_fdmon-io_uring.c.o): in function `fdmon_io_uring_destroy':
> >>>   qemu/build/../util/fdmon-io_uring.c:343: undefined reference to `io_uring_queue_exit'
> >>>   collect2: error: ld returned 1 exit status
> >>
> >> Can you add a gitlab job to reproduce this? (Or at least explain
> >> how to reproduce, so we add that job later). Thanks!
> > 
> > I think the only prerequisite is to install 'liburing-devel' package
> > (Fedora 32) on the build system, and then fdmon-io_uring.c will be built.
> 
> Oh easy then, simply add it to PACKAGES in
> tests/docker/dockerfiles/fedora.docker :)

Yeah, I just found it ;-)

I'll send a patch.

Thanks,
Stefano
diff mbox series

Patch

diff --git a/util/meson.build b/util/meson.build
index 23b8ad459b..e6b207a99e 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -4,7 +4,7 @@  util_ss.add(when: 'CONFIG_ATOMIC64', if_false: files('atomic64.c'))
 util_ss.add(when: 'CONFIG_POSIX', if_true: files('aio-posix.c'))
 util_ss.add(when: 'CONFIG_POSIX', if_true: files('fdmon-poll.c'))
 util_ss.add(when: 'CONFIG_EPOLL_CREATE1', if_true: files('fdmon-epoll.c'))
-util_ss.add(when: 'CONFIG_LINUX_IO_URING', if_true: files('fdmon-io_uring.c'))
+util_ss.add(when: ['CONFIG_LINUX_IO_URING', linux_io_uring], if_true: files('fdmon-io_uring.c'))
 util_ss.add(when: 'CONFIG_POSIX', if_true: files('compatfd.c'))
 util_ss.add(when: 'CONFIG_POSIX', if_true: files('event_notifier-posix.c'))
 util_ss.add(when: 'CONFIG_POSIX', if_true: files('mmap-alloc.c'))