]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
[Bug 3404] Fix openSSL DLL usage under Windows
authorJuergen Perlinger <perlinger@ntp.org>
Sun, 2 Jul 2017 07:16:39 +0000 (09:16 +0200)
committerJuergen Perlinger <perlinger@ntp.org>
Sun, 2 Jul 2017 07:16:39 +0000 (09:16 +0200)
bk: 59589dd7NvBGPl2NK7u68Ohgu3Fzww

15 files changed:
ChangeLog
include/ssl_applink.c
ports/winnt/include/msvc_ssl_autolib.h
ports/winnt/vs2008/debug-x64.vsprops
ports/winnt/vs2008/debug.vsprops
ports/winnt/vs2008/release-x64.vsprops
ports/winnt/vs2008/release.vsprops
ports/winnt/vs2013/debug-x64.props
ports/winnt/vs2013/debug.props
ports/winnt/vs2013/release-x64.props
ports/winnt/vs2013/release.props
ports/winnt/vs2015/debug-x64.props
ports/winnt/vs2015/debug.props
ports/winnt/vs2015/release-x64.props
ports/winnt/vs2015/release.props

index a1a1cfae45a59975bb12958d206f6c0a48e631b5..65a2e4b4d2e0acd4ad16a8ec7f31f18e2884d2be 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+---
+* [Bug 3404] Fix openSSL DLL usage under Windows <perlinger@ntp.org>
+  - fix/drop assumptions on OpenSSL libs directory layout
+  
 ---
 (4.2.8p10-win-beta1) 2017/03/21 Released by Harlan Stenn <stenn@ntp.org>
 (4.2.8p10)
index e57cabdb5671146cd3caf1726fbcb6a8dd1562c9..86746f40dcb32e242d4884023037c87a9bc10421 100644 (file)
@@ -14,9 +14,7 @@
 #   include "msvc_ssl_autolib.h"
 #  endif
 # endif
-# if OPENSSL_VERSION_NUMBER < 0x10100000L
-#  include <openssl/applink.c>
-# endif
+# include <openssl/applink.c>
 # ifdef _MSC_VER
 #  pragma warning(pop)
 # endif
 #endif
 
 #ifdef WRAP_DBG_MALLOC
-void *wrap_dbg_malloc(size_t s, const char *f, int l);
-void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l);
-void wrap_dbg_free(void *p);
-void wrap_dbg_free_ex(void *p, const char *f, int l);
+static void *wrap_dbg_malloc(size_t s, const char *f, int l);
+static void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l);
+static void wrap_dbg_free(void *p);
+static void wrap_dbg_free_ex(void *p, const char *f, int l);
 #endif
 
 
@@ -42,17 +40,21 @@ void
 ssl_applink(void)
 {
 #if OPENSSL_VERSION_NUMBER >= 0x10100000L
+
 #   ifdef WRAP_DBG_MALLOC
        CRYPTO_set_mem_functions(wrap_dbg_malloc, wrap_dbg_realloc, wrap_dbg_free_ex);
 #   else
        OPENSSL_malloc_init();
 #   endif
-#else
+
+#  else
+
 #   ifdef WRAP_DBG_MALLOC
        CRYPTO_set_mem_ex_functions(wrap_dbg_malloc, wrap_dbg_realloc, wrap_dbg_free);
 #   else
        CRYPTO_malloc_init();
 #   endif
+
 #endif /* OpenSSL version cascade */
 }
 #else  /* !OPENSSL || !SYS_WINNT */
@@ -66,7 +68,7 @@ ssl_applink(void)
  * for DEBUG malloc/realloc/free (lacking block type).
  * Simple wrappers convert.
  */
-void *wrap_dbg_malloc(size_t s, const char *f, int l)
+static void *wrap_dbg_malloc(size_t s, const char *f, int l)
 {
        void *ret;
 
@@ -74,7 +76,7 @@ void *wrap_dbg_malloc(size_t s, const char *f, int l)
        return ret;
 }
 
-void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l)
+static void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l)
 {
        void *ret;
 
@@ -82,12 +84,12 @@ void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l)
        return ret;
 }
 
-void wrap_dbg_free(void *p)
+static void wrap_dbg_free(void *p)
 {
        _free_dbg(p, _NORMAL_BLOCK);
 }
 
-void wrap_dbg_free_ex(void *p, const char *f, int l)
+static void wrap_dbg_free_ex(void *p, const char *f, int l)
 {
        (void)f;
        (void)l;
index 688b5e262007f61808834e95d8eda0c26f5fd763..9a8ae6126c1aa6a49a25b722fb18d27006c48759 100644 (file)
  * So instead of manipulating the build environment we use the build
  * tools themselves to create requests for linking the right library.
  *
- * To use this feature, it is recommended to use the precompiled
- * VC binaries from Shining Light Productions:
+ * Unless you compile OpenSSL on your own, using the precompiled
+ * VC binaries from Shining Light Productions is probably easiest:
  *   https://slproweb.com/products/Win32OpenSSL.html
- * These are installed in (OPENSSL_LIB)/vc.
  *
- * As an alternative, create the set of build variants of OpenSSL you
- * need, implementing the following naming scheme:
+ * If 'OPENSSL_AUTOLINK_STRICT' is defined, then target bit width,
+ * runtime model and debug/release info are incoded into the library
+ * file name, according to this scheme:
  *
  *  basename<width><RT><DebRel>.lib
  *
 #pragma once
 
 #if !defined(_MSC_VER)
+
 # error use this header only with Micro$oft Visual C compilers!
+
 #elif defined(OPENSSL_NO_AUTOLINK)
+
 # pragma message("automatic OpenSSL library selection disabled")
-#else
-/* ---------------------------------------------------------------- */
+
+#elif defined(OPENSSL_AUTOLINK_STRICT)
+
+ /* ---------------------------------------------------------------- */
 /*  selection dance to get the right libraries linked               */
 /* ---------------------------------------------------------------- */
 
  * request in the object file, depending on the SSL version and the
  * build variant.
  */
+
+#  if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#   pragma comment(lib, "libcrypto" LTAG_SIZE LTAG_RTLIB LTAG_DEBUG ".lib")
+#  else
+#   pragma comment(lib, "libeay32" LTAG_RTLIB LTAG_DEBUG ".lib")
+#  endif
+
+# else
+
 # if OPENSSL_VERSION_NUMBER >= 0x10100000L
-#  pragma comment(lib, "libcrypto" LTAG_SIZE LTAG_RTLIB LTAG_DEBUG ".lib")
+#  pragma comment(lib, "libcrypto.lib")
 # else
-#  pragma comment(lib, "libeay32" LTAG_RTLIB LTAG_DEBUG ".lib")
+#  pragma comment(lib, "libeay32.lib")
 # endif
 
 #endif /*!defined(OPENSSL_NO_AUTOLINK)*/
index 3f241c2c8692065e44fb1acbf86eb8559f36ae26..36da166ea61f1b7961852934a7b50f99f25e8c42 100644 (file)
@@ -14,7 +14,7 @@
        />
        <Tool
                Name="VCLinkerTool"
-               AdditionalLibraryDirectories=" $(OPENSSL64_LIB)\vc"
+               AdditionalLibraryDirectories=" $(OPENSSL64_LIB)"
                TargetMachine="17"
        />
 </VisualStudioPropertySheet>
index 0cbd9f4ae79251b6d57ce9193888a6c7e5ee417d..2d3119e3e60bdd9f20a5d0f61be0b8d4748ef080 100644 (file)
@@ -14,7 +14,7 @@
        />
        <Tool
                Name="VCLinkerTool"
-               AdditionalLibraryDirectories=" $(OPENSSL_LIB)\vc"
+               AdditionalLibraryDirectories=" $(OPENSSL_LIB)"
                TargetMachine="1"
        />
 </VisualStudioPropertySheet>
index 8c0ee80b0be4cb0785c392c0fc393b313c84e76b..7639fbc7da4241f1fbe8276912ea693c0492f186 100644 (file)
@@ -15,7 +15,7 @@
        />
        <Tool
                Name="VCLinkerTool"
-               AdditionalLibraryDirectories=" $(OPENSSL64_LIB)\vc"
+               AdditionalLibraryDirectories=" $(OPENSSL64_LIB)"
                TargetMachine="17"
        />
 </VisualStudioPropertySheet>
index 498779578f8596be9918b8a6554979e171697d02..25c93f4c48be43e9f11525aab9879f23861a3272 100644 (file)
@@ -15,7 +15,7 @@
        />
        <Tool
                Name="VCLinkerTool"
-               AdditionalLibraryDirectories=" $(OPENSSL_LIB)\vc"
+               AdditionalLibraryDirectories=" $(OPENSSL_LIB)"
                TargetMachine="1"
        />
 </VisualStudioPropertySheet>
index 65d4f863f42ac17186e35abe785e29e447d96646..1d3d52d9c0c4962cfc1bef383d93a455487f72b5 100644 (file)
@@ -17,7 +17,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX64</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index 46792f84587ff9ab64b7e01624ca67bf0c63a3a4..e82b7e896b3a47723e7409bd9614806cb4aeffaa 100644 (file)
@@ -17,7 +17,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX86</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index 2bb07cb37d3d5cea57b956c93bbcb974096f0846..0122b1ee226ac0e39a3851869100734dbc631725 100644 (file)
@@ -18,7 +18,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX64</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index f6382dfbac38c4f52b85804af833f57b445d1ad1..0e8e2babd4377022239325095f3f37358e8e2228 100644 (file)
@@ -18,7 +18,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX86</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index 65d4f863f42ac17186e35abe785e29e447d96646..1d3d52d9c0c4962cfc1bef383d93a455487f72b5 100644 (file)
@@ -17,7 +17,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX64</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index 46792f84587ff9ab64b7e01624ca67bf0c63a3a4..e82b7e896b3a47723e7409bd9614806cb4aeffaa 100644 (file)
@@ -17,7 +17,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX86</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index 2bb07cb37d3d5cea57b956c93bbcb974096f0846..0122b1ee226ac0e39a3851869100734dbc631725 100644 (file)
@@ -18,7 +18,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX64</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL64_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />
index f6382dfbac38c4f52b85804af833f57b445d1ad1..0e8e2babd4377022239325095f3f37358e8e2228 100644 (file)
@@ -18,7 +18,7 @@
     </ClCompile>
     <Link>
       <TargetMachine>MachineX86</TargetMachine>
-      <AdditionalLibraryDirectories>$(OPENSSL_LIB)\vc</AdditionalLibraryDirectories>
+      <AdditionalLibraryDirectories>$(OPENSSL_LIB)</AdditionalLibraryDirectories>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup />