All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] iscsi: always link libm into the module
@ 2021-06-03 13:07 Paolo Bonzini
  2021-06-03 13:07 ` [PATCH 1/2] meson: allow optional dependencies for block modules Paolo Bonzini
  2021-06-03 13:07 ` [PATCH 2/2] iscsi: link libm into the module Paolo Bonzini
  0 siblings, 2 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-06-03 13:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, qemu-block

Depending on the configuration of QEMU, some binaries might not need libm
at all.  In that case libiscsi, which uses exp(), will fail to load.
This series makes sure that libm is linked in the module explicitly.

Paolo

Paolo Bonzini (2):
  meson: allow optional dependencies for block modules
  iscsi: link libm into the module

 block/meson.build | 18 +++++++++---------
 meson.build       |  4 ++--
 2 files changed, 11 insertions(+), 11 deletions(-)

-- 
2.31.1



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] meson: allow optional dependencies for block modules
  2021-06-03 13:07 [PATCH 0/2] iscsi: always link libm into the module Paolo Bonzini
@ 2021-06-03 13:07 ` Paolo Bonzini
  2021-06-04  8:45   ` Vladimir Sementsov-Ogievskiy
  2021-06-03 13:07 ` [PATCH 2/2] iscsi: link libm into the module Paolo Bonzini
  1 sibling, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2021-06-03 13:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, qemu-block

Right now all dependencies for block modules are passed to
module_ss.add(when: ...), so they are mandatory.  In the next patch we
will need to add a libm dependency to a module, but libm does not exist
on all systems.  So, modify the creation of module_ss and modsrc so that
dependencies can also be passed to module_ss.add(if_true: ...).

While touching the array, remove the useless dependency of the curl
module on glib.  glib is always linked in QEMU and in fact all other
block modules also need it, but they don't have to specify it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 block/meson.build | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/block/meson.build b/block/meson.build
index e687c54dbc..9e3388f633 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -71,19 +71,19 @@ block_modules = {}
 
 modsrc = []
 foreach m : [
-  [curl, 'curl', [curl, glib], 'curl.c'],
-  [glusterfs, 'gluster', glusterfs, 'gluster.c'],
-  [libiscsi, 'iscsi', libiscsi, 'iscsi.c'],
-  [libnfs, 'nfs', libnfs, 'nfs.c'],
-  [libssh, 'ssh', libssh, 'ssh.c'],
-  [rbd, 'rbd', rbd, 'rbd.c'],
+  [curl, 'curl', files('curl.c')],
+  [glusterfs, 'gluster', files('gluster.c')],
+  [libiscsi, 'iscsi', files('iscsi.c')],
+  [libnfs, 'nfs', files('nfs.c')],
+  [libssh, 'ssh', files('ssh.c')],
+  [rbd, 'rbd', files('rbd.c')],
 ]
   if m[0].found()
+    module_ss = ss.source_set()
+    module_ss.add(when: m[0], if_true: m[2])
     if enable_modules
-      modsrc += files(m[3])
+      modsrc += module_ss.all_sources()
     endif
-    module_ss = ss.source_set()
-    module_ss.add(when: m[2], if_true: files(m[3]))
     block_modules += {m[1] : module_ss}
   endif
 endforeach
-- 
2.31.1




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] iscsi: link libm into the module
  2021-06-03 13:07 [PATCH 0/2] iscsi: always link libm into the module Paolo Bonzini
  2021-06-03 13:07 ` [PATCH 1/2] meson: allow optional dependencies for block modules Paolo Bonzini
@ 2021-06-03 13:07 ` Paolo Bonzini
  2021-06-03 13:19   ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2021-06-03 13:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, Yi Sun, qemu-block

Depending on the configuration of QEMU, some binaries might not need libm
at all.  In that case libiscsi, which uses exp(), will fail to load.
Link it in the module explicitly.

Reported-by: Yi Sun <yisun@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 block/meson.build | 2 +-
 meson.build       | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/block/meson.build b/block/meson.build
index 9e3388f633..01861e1545 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -73,7 +73,7 @@ modsrc = []
 foreach m : [
   [curl, 'curl', files('curl.c')],
   [glusterfs, 'gluster', files('gluster.c')],
-  [libiscsi, 'iscsi', files('iscsi.c')],
+  [libiscsi, 'iscsi', [files('iscsi.c'), libm]],
   [libnfs, 'nfs', files('nfs.c')],
   [libssh, 'ssh', files('ssh.c')],
   [rbd, 'rbd', files('rbd.c')],
diff --git a/meson.build b/meson.build
index a45f1a844f..913cf2a41a 100644
--- a/meson.build
+++ b/meson.build
@@ -163,7 +163,7 @@ if targetos != 'linux' and get_option('multiprocess').enabled()
 endif
 multiprocess_allowed = targetos == 'linux' and not get_option('multiprocess').disabled()
 
-m = cc.find_library('m', required: false)
+libm = cc.find_library('m', required: false)
 util = cc.find_library('util', required: false)
 winmm = []
 socket = []
@@ -1899,7 +1899,7 @@ util_ss.add_all(trace_ss)
 util_ss = util_ss.apply(config_all, strict: false)
 libqemuutil = static_library('qemuutil',
                              sources: util_ss.sources() + stub_ss.sources() + genh,
-                             dependencies: [util_ss.dependencies(), m, glib, socket, malloc, pixman])
+                             dependencies: [util_ss.dependencies(), libm, glib, socket, malloc, pixman])
 qemuutil = declare_dependency(link_with: libqemuutil,
                               sources: genh + version_res)
 
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] iscsi: link libm into the module
  2021-06-03 13:07 ` [PATCH 2/2] iscsi: link libm into the module Paolo Bonzini
@ 2021-06-03 13:19   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-06-03 13:19 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel; +Cc: kwolf, Yi Sun, qemu-block

On 6/3/21 3:07 PM, Paolo Bonzini wrote:
> Depending on the configuration of QEMU, some binaries might not need libm
> at all.  In that case libiscsi, which uses exp(), will fail to load.
> Link it in the module explicitly.
> 
> Reported-by: Yi Sun <yisun@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  block/meson.build | 2 +-
>  meson.build       | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)

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



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] meson: allow optional dependencies for block modules
  2021-06-03 13:07 ` [PATCH 1/2] meson: allow optional dependencies for block modules Paolo Bonzini
@ 2021-06-04  8:45   ` Vladimir Sementsov-Ogievskiy
  0 siblings, 0 replies; 5+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2021-06-04  8:45 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel; +Cc: kwolf, qemu-block

03.06.2021 16:07, Paolo Bonzini wrote:
> Right now all dependencies for block modules are passed to
> module_ss.add(when: ...), so they are mandatory.  In the next patch we
> will need to add a libm dependency to a module, but libm does not exist
> on all systems.  So, modify the creation of module_ss and modsrc so that
> dependencies can also be passed to module_ss.add(if_true: ...).
> 
> While touching the array, remove the useless dependency of the curl
> module on glib.  glib is always linked in QEMU and in fact all other
> block modules also need it, but they don't have to specify it.
> 
> Signed-off-by: Paolo Bonzini<pbonzini@redhat.com>


Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-06-04  8:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-03 13:07 [PATCH 0/2] iscsi: always link libm into the module Paolo Bonzini
2021-06-03 13:07 ` [PATCH 1/2] meson: allow optional dependencies for block modules Paolo Bonzini
2021-06-04  8:45   ` Vladimir Sementsov-Ogievskiy
2021-06-03 13:07 ` [PATCH 2/2] iscsi: link libm into the module Paolo Bonzini
2021-06-03 13:19   ` Philippe Mathieu-Daudé

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.