[libvirt] [PATCH] gcrypt: fix build in case we do not use gnutls and gcrypt

Olga Krishtal okrishtal at virtuozzo.com
Thu Nov 3 14:08:28 UTC 2016


On 03/11/16 16:14, Olga Krishtal wrote:
> In case when we use any crypt library and gnutls make returns
> compilation errors.
>
> Signed-off-by: Olga Krishtal <okrishtal at virtuozzo.com>
> ---
>   src/libvirt.c | 13 ++++++-------
>   1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/src/libvirt.c b/src/libvirt.c
> index 52462e3..77365d1 100644
> --- a/src/libvirt.c
> +++ b/src/libvirt.c
> @@ -269,7 +269,7 @@ virWinsockInit(void)
>   }
>   #endif
>   
> -
> +#ifdef WITH_GNUTLS
>   #ifdef WITH_GNUTLS_GCRYPT
>   static int
>   virTLSMutexInit(void **priv)
> @@ -332,6 +332,7 @@ static struct gcry_thread_cbs virTLSThreadImpl = {
>       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
>   };
>   #endif /* WITH_GNUTLS_GCRYPT */
> +#endif /* WITH_GNUTLS */
>   
>   
>   static bool virGlobalError;
> @@ -357,6 +358,7 @@ virGlobalInit(void)
>       }
>   #endif
>   
> +#ifdef WITH_GNUTLS
>   #ifdef WITH_GNUTLS_GCRYPT
>       /*
>        * This sequence of API calls it copied exactly from
> @@ -371,13 +373,10 @@ virGlobalInit(void)
>           gcry_control(GCRYCTL_DISABLE_SECMEM, NULL, 0);
>           gcry_control(GCRYCTL_INITIALIZATION_FINISHED, NULL, 0);
>       }
> -#endif
> -
> -    virLogSetFromEnv();
> -
> -#ifdef WITH_GNUTLS
> +#endif /* End of WITH_GNUTLS_GCRYPT*/
>       virNetTLSInit();
> -#endif
> +#endif /* End of WITH_GNUTLS*/
> +    virLogSetFromEnv();
>   
>   #if WITH_CURL
>       curl_global_init(CURL_GLOBAL_DEFAULT);
Error message:

libvirt.c:320:15: error: variable 'virTLSThreadImpl' has initializer but 
incomplete type
  static struct gcry_thread_cbs virTLSThreadImpl = {
                ^
libvirt.c:325:5: error: 'GCRY_THREAD_OPTION_PTHREAD' undeclared here 
(not in a function)
      GCRY_THREAD_OPTION_PTHREAD,
      ^
libvirt.c:325:5: error: excess elements in struct initializer [-Werror]
libvirt.c:325:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:327:5: error: excess elements in struct initializer [-Werror]
      NULL,
      ^
libvirt.c:327:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:328:5: error: excess elements in struct initializer [-Werror]
      virTLSMutexInit,
      ^
libvirt.c:328:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:329:5: error: excess elements in struct initializer [-Werror]
      virTLSMutexDestroy,
      ^
libvirt.c:329:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:330:5: error: excess elements in struct initializer [-Werror]
      virTLSMutexLock,
      ^
libvirt.c:330:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:331:5: error: excess elements in struct initializer [-Werror]
      virTLSMutexUnlock,
      ^
libvirt.c:331:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
      ^
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:332:5: error: excess elements in struct initializer [-Werror]
libvirt.c:332:5: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c:333:1: error: excess elements in struct initializer [-Werror]
  };
  ^
libvirt.c:333:1: error: (near initialization for 'virTLSThreadImpl') 
[-Werror]
libvirt.c: In function 'virGlobalInit':
libvirt.c:367:5: error: implicit declaration of function 'gcry_control' 
[-Werror=implicit-function-declaration]
      if (gcry_control(GCRYCTL_ANY_INITIALIZATION_P) == 0) {
      ^
libvirt.c:367:5: error: nested extern declaration of 'gcry_control' 
[-Werror=nested-externs]
libvirt.c:367:22: error: 'GCRYCTL_ANY_INITIALIZATION_P' undeclared 
(first use in this function)
      if (gcry_control(GCRYCTL_ANY_INITIALIZATION_P) == 0) {
                       ^
libvirt.c:367:22: note: each undeclared identifier is reported only once 
for each function it appears in
libvirt.c:368:22: error: 'GCRYCTL_SET_THREAD_CBS' undeclared (first use 
in this function)
          gcry_control(GCRYCTL_SET_THREAD_CBS, &virTLSThreadImpl);
                       ^
libvirt.c:369:9: error: implicit declaration of function 
'gcry_check_version' [-Werror=implicit-function-declaration]
          gcry_check_version(NULL);
          ^
libvirt.c:369:9: error: nested extern declaration of 
'gcry_check_version' [-Werror=nested-externs]
libvirt.c:371:22: error: 'GCRYCTL_DISABLE_SECMEM' undeclared (first use 
in this function)
          gcry_control(GCRYCTL_DISABLE_SECMEM, NULL, 0);
                       ^
libvirt.c:372:22: error: 'GCRYCTL_INITIALIZATION_FINISHED' undeclared 
(first use in this function)
          gcry_control(GCRYCTL_INITIALIZATION_FINISHED, NULL, 0);

-- 
Best regards,
Olga




More information about the libvir-list mailing list