From: Thomas Huth <thuth@redhat.com>
To: qemu-devel@nongnu.org, Peter Maydell <peter.maydell@linaro.org>
Cc: Yonggang Luo <luoyonggang@gmail.com>
Subject: [PULL 11/14] crypto: fix build with gcrypt enabled
Date: Mon, 7 Sep 2020 14:11:24 +0200 [thread overview]
Message-ID: <20200907121127.136243-12-thuth@redhat.com> (raw)
In-Reply-To: <20200907121127.136243-1-thuth@redhat.com>
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
next prev parent reply other threads:[~2020-09-07 12:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-07 12:11 [PULL 00/14] Gitlab-CI improvements and related fixes Thomas Huth
2020-09-07 12:11 ` [PULL 01/14] tests/docker: add python3-setuptools the docker images Thomas Huth
2020-09-07 12:11 ` [PULL 02/14] tests: handling signal on win32 properly Thomas Huth
2020-09-07 12:11 ` [PULL 03/14] tests: fixes test-vmstate.c compile error on msys2 Thomas Huth
2020-09-07 12:11 ` [PULL 04/14] tests: Fixes building test-util-filemonitor.c on msys2/mingw Thomas Huth
2020-09-07 12:11 ` [PULL 05/14] tests/Makefile: test-image-locking needs CONFIG_POSIX Thomas Huth
2020-09-07 12:11 ` [PULL 06/14] dockerfiles/debian-win64-cross: Download WHPX MinGW headers Thomas Huth
2020-09-07 12:11 ` [PULL 07/14] configure: Allow automatic WHPX detection Thomas Huth
2020-09-07 12:11 ` [PULL 08/14] stubs: Move qemu_timer_notify_cb() and remove qemu_notify_event() stub Thomas Huth
2020-09-07 12:11 ` [PULL 09/14] stubs: Move qemu_fd_register stub to util/main-loop.c Thomas Huth
2020-09-07 12:11 ` [PULL 10/14] gitlab-ci: Add cross-compiling build tests Thomas Huth
2020-09-07 12:11 ` Thomas Huth [this message]
2020-09-07 12:11 ` [PULL 12/14] gitlab: expand test coverage for crypto builds Thomas Huth
2020-09-07 12:11 ` [PULL 13/14] tests/qtest: do not list ahci-test twice Thomas Huth
2020-09-07 12:11 ` [PULL 14/14] target/microblaze: Collected fixes for env->iflags Thomas Huth
2020-09-07 17:52 ` [PULL 00/14] Gitlab-CI improvements and related fixes 罗勇刚(Yonggang Luo)
2020-09-07 18:26 ` Peter Maydell
2020-09-07 18:31 ` 罗勇刚(Yonggang Luo)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200907121127.136243-12-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=luoyonggang@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).