Fix AFALG kernel and headers mismatch problem
During Configure we attempt to check the kernel version of this platform to see whether we can compile the AFALG engine. If the kernel version looks recent enough then we enable AFALG. However when we compile e_afalg.c we check the version of the linux headers. If there is a mismatch between the linux headers and the currently running kernel then we don't compile the AFLAG engine and continue. This was causing a link error. Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
parent
bdcd660e33
commit
627537ddf3
2 changed files with 19 additions and 0 deletions
|
@ -69,6 +69,9 @@
|
|||
#if LINUX_VERSION_CODE <= KERNEL_VERSION(K_MAJ, K_MIN1, K_MIN2)
|
||||
# warning "AFALG ENGINE requires Kernel Headers >= 4.1.0"
|
||||
# warning "Skipping Compilation of AFALG engine"
|
||||
void engine_load_afalg_int(void)
|
||||
{
|
||||
}
|
||||
#else
|
||||
|
||||
# include <linux/if_alg.h>
|
||||
|
|
|
@ -54,6 +54,22 @@
|
|||
#include <stdio.h>
|
||||
#include <openssl/opensslconf.h>
|
||||
|
||||
#ifndef OPENSSL_NO_AFALGENG
|
||||
# include <linux/version.h>
|
||||
# define K_MAJ 4
|
||||
# define K_MIN1 1
|
||||
# define K_MIN2 0
|
||||
# if LINUX_VERSION_CODE <= KERNEL_VERSION(K_MAJ, K_MIN1, K_MIN2)
|
||||
/*
|
||||
* If we get here then it looks like there is a mismatch between the linux
|
||||
* headers and the actual kernel version, so we have tried to compile with
|
||||
* afalg support, but then skipped it in e_afalg.c. As far as this test is
|
||||
* concerned we behave as if we had been configured without support
|
||||
*/
|
||||
# define OPENSSL_NO_AFALGENG
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_AFALGENG
|
||||
#include <string.h>
|
||||
#include <openssl/engine.h>
|
||||
|
|
Loading…
Reference in a new issue