# PadLock engine is never compiled as a shared object although
# OpenSSL sometimes thinks so.  This patch fixes the
# initialization sequence so that it works with static PadLock
# again.
# Taken from Fedora Core 5

Index: openssl/crypto/engine/eng_all.c
===================================================================
--- openssl.orig/crypto/engine/eng_all.c
+++ openssl/crypto/engine/eng_all.c
@@ -68,6 +68,9 @@ void ENGINE_load_builtin_engines(void)
 #if 0
 	ENGINE_load_openssl();
 #endif
+#if !defined(OPENSSL_NO_HW) && !defined(OPENSSL_NO_HW_PADLOCK)
+	ENGINE_load_padlock();
+#endif
 	ENGINE_load_dynamic();
 #ifndef OPENSSL_NO_STATIC_ENGINE
 #ifndef OPENSSL_NO_HW
@@ -95,9 +98,6 @@ void ENGINE_load_builtin_engines(void)
 #ifndef OPENSSL_NO_HW_UBSEC
 	ENGINE_load_ubsec();
 #endif
-#ifndef OPENSSL_NO_HW_PADLOCK
-	ENGINE_load_padlock();
-#endif
 #endif
 #if defined(__OpenBSD__) || defined(__FreeBSD__)
 	ENGINE_load_cryptodev();
