diff mbox series

[v2] meson: Propagate gnutls dependency to migration

Message ID 20210320171221.37437-1-jrtc27@jrtc27.com (mailing list archive)
State New, archived
Headers show
Series [v2] meson: Propagate gnutls dependency to migration | expand

Commit Message

Jessica Clarke March 20, 2021, 5:12 p.m. UTC
Commit 3eacf70bb5a83e4775ad8003cbca63a40f70c8c2 neglected to fix this
for softmmu configs, which pull in migration's use of gnutls.

This fixes the following compilation failure on Arm-based Macs:

  In file included from migration/multifd.c:23:
  In file included from migration/tls.h:25:
  In file included from include/io/channel-tls.h:26:
  In file included from include/crypto/tlssession.h:24:
  include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
  #include <gnutls/gnutls.h>
           ^~~~~~~~~~~~~~~~~
  1 error generated.

(as well as for channel.c and tls.c)

Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
---
Changes in v2:
 * Added error to commit message

 migration/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Juan Quintela March 23, 2021, 3:04 p.m. UTC | #1
Jessica Clarke <jrtc27@jrtc27.com> wrote:
> Commit 3eacf70bb5a83e4775ad8003cbca63a40f70c8c2 neglected to fix this
> for softmmu configs, which pull in migration's use of gnutls.
>
> This fixes the following compilation failure on Arm-based Macs:
>
>   In file included from migration/multifd.c:23:
>   In file included from migration/tls.h:25:
>   In file included from include/io/channel-tls.h:26:
>   In file included from include/crypto/tlssession.h:24:
>   include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
>   #include <gnutls/gnutls.h>
>            ^~~~~~~~~~~~~~~~~
>   1 error generated.
>
> (as well as for channel.c and tls.c)
>
> Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

I would preffer to be the other way around, i.e. modularize tls out of
migration, but a fast look at it shows it as a big job.  As said on the
commint message, channel.c & tls.c both use tls not conditionally.
Once there, multifd.c also requires tls compiled in.
Can we realistically build qemu without tls nowadays?

Later, Juan.
Daniel P. Berrangé March 23, 2021, 3:13 p.m. UTC | #2
On Tue, Mar 23, 2021 at 04:04:48PM +0100, Juan Quintela wrote:
> Jessica Clarke <jrtc27@jrtc27.com> wrote:
> > Commit 3eacf70bb5a83e4775ad8003cbca63a40f70c8c2 neglected to fix this
> > for softmmu configs, which pull in migration's use of gnutls.
> >
> > This fixes the following compilation failure on Arm-based Macs:
> >
> >   In file included from migration/multifd.c:23:
> >   In file included from migration/tls.h:25:
> >   In file included from include/io/channel-tls.h:26:
> >   In file included from include/crypto/tlssession.h:24:
> >   include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
> >   #include <gnutls/gnutls.h>
> >            ^~~~~~~~~~~~~~~~~
> >   1 error generated.
> >
> > (as well as for channel.c and tls.c)
> >
> > Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
> 
> Reviewed-by: Juan Quintela <quintela@redhat.com>
> 
> I would preffer to be the other way around, i.e. modularize tls out of
> migration, but a fast look at it shows it as a big job.  As said on the
> commint message, channel.c & tls.c both use tls not conditionally.
> Once there, multifd.c also requires tls compiled in.
> Can we realistically build qemu without tls nowadays?

The intention is that use of TLS is conditionalized *only* in the
crypto/tls*.c and include/crypto/tls*.h files.

The rest of QEMU is supposed to use TLS unconditionally, and will
simply get an error message at runtime if it was unavailable. This
is precisely to avoid littering the whole codebase in QEMU with
conditionals on GNUTLS.


Regards,
Daniel
Paolo Bonzini March 24, 2021, 1:45 p.m. UTC | #3
On 20/03/21 18:12, Jessica Clarke wrote:
> Commit 3eacf70bb5a83e4775ad8003cbca63a40f70c8c2 neglected to fix this
> for softmmu configs, which pull in migration's use of gnutls.
> 
> This fixes the following compilation failure on Arm-based Macs:
> 
>    In file included from migration/multifd.c:23:
>    In file included from migration/tls.h:25:
>    In file included from include/io/channel-tls.h:26:
>    In file included from include/crypto/tlssession.h:24:
>    include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not found
>    #include <gnutls/gnutls.h>
>             ^~~~~~~~~~~~~~~~~
>    1 error generated.
> 
> (as well as for channel.c and tls.c)
> 
> Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
> ---
> Changes in v2:
>   * Added error to commit message
> 
>   migration/meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/migration/meson.build b/migration/meson.build
> index 9645f44005..6fa2f8745d 100644
> --- a/migration/meson.build
> +++ b/migration/meson.build
> @@ -24,7 +24,7 @@ softmmu_ss.add(files(
>     'savevm.c',
>     'socket.c',
>     'tls.c',
> -))
> +), gnutls)
>   
>   softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c'))
>   softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: files('block.c'))
> 

Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/migration/meson.build b/migration/meson.build
index 9645f44005..6fa2f8745d 100644
--- a/migration/meson.build
+++ b/migration/meson.build
@@ -24,7 +24,7 @@  softmmu_ss.add(files(
   'savevm.c',
   'socket.c',
   'tls.c',
-))
+), gnutls)
 
 softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c'))
 softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: files('block.c'))