diff options
Diffstat (limited to 'lib/libssl/src/crypto/engine/eng_padlock.c')
-rw-r--r-- | lib/libssl/src/crypto/engine/eng_padlock.c | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/lib/libssl/src/crypto/engine/eng_padlock.c b/lib/libssl/src/crypto/engine/eng_padlock.c index 743558ab336..9f7a85a8da5 100644 --- a/lib/libssl/src/crypto/engine/eng_padlock.c +++ b/lib/libssl/src/crypto/engine/eng_padlock.c @@ -104,10 +104,14 @@ # if (defined(__GNUC__) && (defined(__i386__) || defined(__i386))) || \ (defined(_MSC_VER) && defined(_M_IX86)) # define COMPILE_HW_PADLOCK -static ENGINE *ENGINE_padlock (void); # endif #endif +#ifdef OPENSSL_NO_DYNAMIC_ENGINE +#ifdef COMPILE_HW_PADLOCK +static ENGINE *ENGINE_padlock (void); +#endif + void ENGINE_load_padlock (void) { /* On non-x86 CPUs it just returns. */ @@ -120,17 +124,21 @@ void ENGINE_load_padlock (void) #endif } +#endif + #ifdef COMPILE_HW_PADLOCK /* We do these includes here to avoid header problems on platforms that do not have the VIA padlock anyway... */ -#ifdef _MSC_VER +#include <stdlib.h> +#ifdef _WIN32 # include <malloc.h> -# define alloca _alloca -#elif defined(NETWARE_CLIB) && defined(__GNUC__) - void *alloca(size_t); -# define alloca(s) __builtin_alloca(s) -#else -# include <stdlib.h> +# ifndef alloca +# define alloca _alloca +# endif +#elif defined(__GNUC__) +# ifndef alloca +# define alloca(s) __builtin_alloca(s) +# endif #endif /* Function for ENGINE detection and control */ @@ -191,6 +199,8 @@ padlock_bind_helper(ENGINE *e) return 1; } +#ifdef OPENSSL_NO_DYNAMIC_ENGINE + /* Constructor */ static ENGINE * ENGINE_padlock(void) @@ -209,6 +219,8 @@ ENGINE_padlock(void) return eng; } +#endif + /* Check availability of the engine */ static int padlock_init(ENGINE *e) @@ -234,7 +246,7 @@ padlock_bind_fn(ENGINE *e, const char *id) return 1; } -IMPLEMENT_DYNAMIC_CHECK_FN () +IMPLEMENT_DYNAMIC_CHECK_FN() IMPLEMENT_DYNAMIC_BIND_FN (padlock_bind_fn) #endif /* DYNAMIC_ENGINE */ @@ -1213,6 +1225,14 @@ static RAND_METHOD padlock_rand = { padlock_rand_status, /* rand status */ }; +#else /* !COMPILE_HW_PADLOCK */ +#ifndef OPENSSL_NO_DYNAMIC_ENGINE +OPENSSL_EXPORT +int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); +OPENSSL_EXPORT +int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { return 0; } +IMPLEMENT_DYNAMIC_CHECK_FN() +#endif #endif /* COMPILE_HW_PADLOCK */ #endif /* !OPENSSL_NO_HW_PADLOCK */ |