[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 11/14] crypto: fix build with gcrypt enabled
From: |
Thomas Huth |
Subject: |
[PULL 11/14] crypto: fix build with gcrypt enabled |
Date: |
Mon, 7 Sep 2020 14:11:24 +0200 |
From: Daniel P. Berrangé <berrange@redhat.com>
If nettle is disabled and gcrypt enabled, the compiler and linker flags
needed for gcrypt are not passed.
Gnutls was also not added as a dependancy when gcrypt is enabled.
Attempting to add the library dependencies at the same time as the
source dependencies is error prone, as there are alot of different
rules for picking which sources to use, and some of the source files
use code level conditionals intead. It is thus clearer to add the
library dependencies separately.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200901133050.381844-2-berrange@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
configure | 2 ++
crypto/meson.build | 42 +++++++++++++++++++++++++++++++-----------
meson.build | 5 +++++
3 files changed, 38 insertions(+), 11 deletions(-)
diff --git a/configure b/configure
index 086c6d3197..166193cef9 100755
--- a/configure
+++ b/configure
@@ -6963,6 +6963,8 @@ if test "$gcrypt" = "yes" ; then
if test "$gcrypt_hmac" = "yes" ; then
echo "CONFIG_GCRYPT_HMAC=y" >> $config_host_mak
fi
+ echo "GCRYPT_CFLAGS=$gcrypt_cflags" >> $config_host_mak
+ echo "GCRYPT_LIBS=$gcrypt_libs" >> $config_host_mak
fi
if test "$nettle" = "yes" ; then
echo "CONFIG_NETTLE=y" >> $config_host_mak
diff --git a/crypto/meson.build b/crypto/meson.build
index 18da7c8541..f6f5ce1ecd 100644
--- a/crypto/meson.build
+++ b/crypto/meson.build
@@ -23,24 +23,35 @@ crypto_ss.add(files(
'tlssession.c',
))
-if 'CONFIG_GCRYPT' in config_host
- wo_nettle = files('hash-gcrypt.c', 'pbkdf-gcrypt.c')
+if 'CONFIG_NETTLE' in config_host
+ crypto_ss.add(files('hash-nettle.c', 'hmac-nettle.c', 'pbkdf-nettle.c'))
+elif 'CONFIG_GCRYPT' in config_host
+ crypto_ss.add(files('hash-gcrypt.c', 'pbkdf-gcrypt.c'))
+ if 'CONFIG_GCRYPT_HMAC' in config_host
+ crypto_ss.add(files('hmac-gcrypt.c'))
+ else
+ crypto_ss.add(files('hmac-glib.c'))
+ endif
else
- wo_nettle = files('hash-glib.c', 'pbkdf-stub.c')
-endif
-if 'CONFIG_GCRYPT_HMAC' not in config_host
- wo_nettle += files('hmac-glib.c')
+ crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
endif
-crypto_ss.add(when: [nettle, 'CONFIG_NETTLE'],
- if_true: files('hash-nettle.c', 'hmac-nettle.c',
'pbkdf-nettle.c'),
- if_false: wo_nettle)
crypto_ss.add(when: 'CONFIG_SECRET_KEYRING', if_true:
files('secret_keyring.c'))
crypto_ss.add(when: 'CONFIG_QEMU_PRIVATE_XTS', if_true: files('xts.c'))
-crypto_ss.add(when: 'CONFIG_GCRYPT_HMAC', if_true: files('hmac-gcrypt.c'))
crypto_ss.add(when: 'CONFIG_AF_ALG', if_true: files('afalg.c',
'cipher-afalg.c', 'hash-afalg.c'))
crypto_ss.add(when: 'CONFIG_GNUTLS', if_true: files('tls-cipher-suites.c'))
+if 'CONFIG_NETTLE' in config_host
+ crypto_ss.add(nettle)
+elif 'CONFIG_GCRYPT' in config_host
+ crypto_ss.add(gcrypt)
+endif
+
+if 'CONFIG_GNUTLS' in config_host
+ crypto_ss.add(gnutls)
+endif
+
+
crypto_ss = crypto_ss.apply(config_host, strict: false)
libcrypto = static_library('crypto', crypto_ss.sources() + genh,
dependencies: [crypto_ss.dependencies()],
@@ -52,12 +63,21 @@ crypto = declare_dependency(link_whole: libcrypto,
util_ss.add(files('aes.c'))
util_ss.add(files('init.c'))
+
if 'CONFIG_GCRYPT' in config_host
util_ss.add(files('random-gcrypt.c'))
elif 'CONFIG_GNUTLS' in config_host
- util_ss.add(files('random-gnutls.c'), gnutls)
+ util_ss.add(files('random-gnutls.c'))
elif 'CONFIG_RNG_NONE' in config_host
util_ss.add(files('random-none.c'))
else
util_ss.add(files('random-platform.c'))
endif
+
+if 'CONFIG_GCRYPT' in config_host
+ util_ss.add(gcrypt)
+endif
+
+if 'CONFIG_GNUTLS' in config_host
+ util_ss.add(gnutls)
+endif
diff --git a/meson.build b/meson.build
index 5aaa364730..04e070bb3b 100644
--- a/meson.build
+++ b/meson.build
@@ -116,6 +116,11 @@ urcubp = not_found
if 'CONFIG_TRACE_UST' in config_host
urcubp = declare_dependency(link_args: config_host['URCU_BP_LIBS'].split())
endif
+gcrypt = not_found
+if 'CONFIG_GCRYPT' in config_host
+ gcrypt = declare_dependency(compile_args:
config_host['GCRYPT_CFLAGS'].split(),
+ link_args: config_host['GCRYPT_LIBS'].split())
+endif
nettle = not_found
if 'CONFIG_NETTLE' in config_host
nettle = declare_dependency(compile_args:
config_host['NETTLE_CFLAGS'].split(),
--
2.18.2
- [PULL 00/14] Gitlab-CI improvements and related fixes, Thomas Huth, 2020/09/07
- [PULL 01/14] tests/docker: add python3-setuptools the docker images, Thomas Huth, 2020/09/07
- [PULL 02/14] tests: handling signal on win32 properly, Thomas Huth, 2020/09/07
- [PULL 03/14] tests: fixes test-vmstate.c compile error on msys2, Thomas Huth, 2020/09/07
- [PULL 05/14] tests/Makefile: test-image-locking needs CONFIG_POSIX, Thomas Huth, 2020/09/07
- [PULL 04/14] tests: Fixes building test-util-filemonitor.c on msys2/mingw, Thomas Huth, 2020/09/07
- [PULL 06/14] dockerfiles/debian-win64-cross: Download WHPX MinGW headers, Thomas Huth, 2020/09/07
- [PULL 07/14] configure: Allow automatic WHPX detection, Thomas Huth, 2020/09/07
- [PULL 08/14] stubs: Move qemu_timer_notify_cb() and remove qemu_notify_event() stub, Thomas Huth, 2020/09/07
- [PULL 10/14] gitlab-ci: Add cross-compiling build tests, Thomas Huth, 2020/09/07
- [PULL 11/14] crypto: fix build with gcrypt enabled,
Thomas Huth <=
- [PULL 12/14] gitlab: expand test coverage for crypto builds, Thomas Huth, 2020/09/07
- [PULL 13/14] tests/qtest: do not list ahci-test twice, Thomas Huth, 2020/09/07
- [PULL 14/14] target/microblaze: Collected fixes for env->iflags, Thomas Huth, 2020/09/07
- [PULL 09/14] stubs: Move qemu_fd_register stub to util/main-loop.c, Thomas Huth, 2020/09/07
- Re: [PULL 00/14] Gitlab-CI improvements and related fixes, Yonggang Luo, 2020/09/07
- Re: [PULL 00/14] Gitlab-CI improvements and related fixes, Peter Maydell, 2020/09/07