Re: [PATCH] meson: honor --enable-rbd if cc.links test fails

2021-01-26 Thread Peter Lieven
Am 26.01.21 um 11:27 schrieb Paolo Bonzini:
> If the link test failed, compilation proceeded with RBD disabled,
> even if --enable-rbd was used on the configure command line.
> Fix that.
>
> Signed-off-by: Paolo Bonzini 
> ---
>  meson.build | 24 +++-
>  1 file changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/meson.build b/meson.build
> index f991d4274d..5943aa8a51 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -690,15 +690,21 @@ if not get_option('rbd').auto() or have_block
>librbd = cc.find_library('rbd', has_headers: ['rbd/librbd.h'],
> required: get_option('rbd'),
> kwargs: static_kwargs)
> -  if librados.found() and librbd.found() and cc.links('''
> -#include 
> -#include 
> -int main(void) {
> -  rados_t cluster;
> -  rados_create(, NULL);
> -  return 0;
> -}''', dependencies: [librbd, librados])
> -rbd = declare_dependency(dependencies: [librbd, librados])
> +  if librados.found() and librbd.found()
> +if cc.links('''
> +  #include 
> +  #include 
> +  int main(void) {
> +rados_t cluster;
> +rados_create(, NULL);
> +return 0;
> +  }''', dependencies: [librbd, librados])
> +  rbd = declare_dependency(dependencies: [librbd, librados])
> +elif get_option('rbd').enabled()
> +  error('could not link librados')
> +else
> +  warning('could not link librados, disabling')
> +endif
>endif
>  endif
>  


That was fast, tank you.


Tested-by: Peter Lieven 


Peter





[PATCH] meson: honor --enable-rbd if cc.links test fails

2021-01-26 Thread Paolo Bonzini
If the link test failed, compilation proceeded with RBD disabled,
even if --enable-rbd was used on the configure command line.
Fix that.

Signed-off-by: Paolo Bonzini 
---
 meson.build | 24 +++-
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/meson.build b/meson.build
index f991d4274d..5943aa8a51 100644
--- a/meson.build
+++ b/meson.build
@@ -690,15 +690,21 @@ if not get_option('rbd').auto() or have_block
   librbd = cc.find_library('rbd', has_headers: ['rbd/librbd.h'],
required: get_option('rbd'),
kwargs: static_kwargs)
-  if librados.found() and librbd.found() and cc.links('''
-#include 
-#include 
-int main(void) {
-  rados_t cluster;
-  rados_create(, NULL);
-  return 0;
-}''', dependencies: [librbd, librados])
-rbd = declare_dependency(dependencies: [librbd, librados])
+  if librados.found() and librbd.found()
+if cc.links('''
+  #include 
+  #include 
+  int main(void) {
+rados_t cluster;
+rados_create(, NULL);
+return 0;
+  }''', dependencies: [librbd, librados])
+  rbd = declare_dependency(dependencies: [librbd, librados])
+elif get_option('rbd').enabled()
+  error('could not link librados')
+else
+  warning('could not link librados, disabling')
+endif
   endif
 endif
 
-- 
2.29.2