crypto: fix build with gcrypt enabled
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>
This commit is contained in:
parent
6bcb5fc0f7
commit
46859d9398
2
configure
vendored
2
configure
vendored
@ -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
|
||||
|
@ -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')
|
||||
crypto_ss.add(files('hash-glib.c', 'hmac-glib.c', 'pbkdf-stub.c'))
|
||||
endif
|
||||
if 'CONFIG_GCRYPT_HMAC' not in config_host
|
||||
wo_nettle += files('hmac-glib.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
|
||||
|
@ -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(),
|
||||
|
Loading…
Reference in New Issue
Block a user