comparison src/msvc-openssl-1.patch @ 3113:1fbdd34dd2ef

[MSVC] enable OpenSSL compilation - make OpenSSL DLL relocatable - make engine support compatible with library prefix/suffix
author Michael Goffioul <michael.goffioul@gmail.com>
date Mon, 01 Jul 2013 13:31:12 -0400
parents
children 45018a221c4a
comparison
equal deleted inserted replaced
3112:31edb6eea0eb 3113:1fbdd34dd2ef
1 diff -ur openssl-1.0.1c-orig/Configure openssl-1.0.1c/Configure
2 --- openssl-1.0.1c-orig/Configure 2012-03-14 18:20:40 -0400
3 +++ openssl-1.0.1c/Configure 2013-07-01 12:42:45 -0400
4 @@ -532,6 +532,7 @@
5
6 # MinGW
7 "mingw", "gcc:-mno-cygwin -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin:.dll.a",
8 +"msvc", "clgcc:-DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DOPENSSL_SYSNAME_WIN32 -O2 -Wall::-D_MT:MINGW32:-lws2_32 -lgdi32 -lcrypt32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_asm}:coff:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK::.lib",
9 # As for OPENSSL_USE_APPLINK. Applink makes it possible to use .dll
10 # compiled with one compiler with application compiled with another
11 # compiler. It's possible to engage Applink support in mingw64 build,
12 @@ -1120,7 +1121,7 @@
13
14 my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
15
16 -$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target =~ /^mingw/);
17 +$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target =~ /^mingw/ || $target =~ /^msvc/);
18 $exe_ext=".nlm" if ($target =~ /netware/);
19 $exe_ext=".pm" if ($target =~ /vos/);
20 $openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
21 @@ -1175,6 +1176,7 @@
22 my $shared_cflag = $fields[$idx_shared_cflag];
23 my $shared_ldflag = $fields[$idx_shared_ldflag];
24 my $shared_extension = $fields[$idx_shared_extension];
25 +my $shared_prefix = "lib";
26 my $ranlib = $ENV{'RANLIB'} || $fields[$idx_ranlib];
27 my $ar = $ENV{'AR'} || "ar";
28 my $arflags = $fields[$idx_arflags];
29 @@ -1201,6 +1203,11 @@
30 $shared_ldflag =~ s/\-mno\-cygwin\s*//;
31 }
32
33 +if ($target =~ /^msvc/)
34 + {
35 + $shared_prefix = "";
36 + }
37 +
38 my $no_shared_warn=0;
39 my $no_user_cflags=0;
40
41 @@ -1601,6 +1608,7 @@
42 s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/;
43 s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/;
44 s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/;
45 + s/^SHLIB_PRE=.*/SHLIB_PRE=$shared_prefix/;
46 s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
47 s/^MULTILIB=.*$/MULTILIB=$multilib/;
48 s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
49 @@ -1806,6 +1814,12 @@
50 $foo =~ s/\\/\\\\/g;
51 print OUT "#define ENGINESDIR \"$foo\"\n";
52 }
53 + elsif (/^#define\s+OPENSSLROOT/)
54 + {
55 + my $foo = "$prefix";
56 + $foo =~ s/\\/\\\\/g;
57 + print OUT "#define OPENSSLROOT \"$foo\"\n";
58 + }
59 elsif (/^#((define)|(undef))\s+OPENSSL_EXPORT_VAR_AS_FUNCTION/)
60 { printf OUT "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\n"
61 if $export_var_as_fn;
62 diff -ur openssl-1.0.1c-orig/Makefile.org openssl-1.0.1c/Makefile.org
63 --- openssl-1.0.1c-orig/Makefile.org 2012-04-22 09:25:19 -0400
64 +++ openssl-1.0.1c/Makefile.org 2013-07-01 12:42:45 -0400
65 @@ -10,6 +10,7 @@
66 SHLIB_MAJOR=
67 SHLIB_MINOR=
68 SHLIB_EXT=
69 +SHLIB_PRE=lib
70 PLATFORM=dist
71 OPTIONS=
72 CONFIGURE_ARGS=
73 @@ -170,8 +171,8 @@
74 EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
75 WDIRS= windows
76 LIBS= libcrypto.a libssl.a
77 -SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
78 -SHARED_SSL=libssl$(SHLIB_EXT)
79 +SHARED_CRYPTO=$(SHLIB_PRE)crypto$(SHLIB_EXT)
80 +SHARED_SSL=$(SHLIB_PRE)ssl$(SHLIB_EXT)
81 SHARED_LIBS=
82 SHARED_LIBS_LINK_EXTS=
83 SHARED_LDFLAGS=
84 @@ -204,7 +205,7 @@
85
86 BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
87 CC='$(CC)' CFLAG='$(CFLAG)' \
88 - AS='$(CC)' ASFLAG='$(CFLAG) -c' \
89 + AS='$(AS)' ASFLAG='$(CFLAG) -c' \
90 AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
91 CROSS_COMPILE='$(CROSS_COMPILE)' \
92 PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
93 @@ -219,7 +220,7 @@
94 KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \
95 ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \
96 EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
97 - SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
98 + SHLIB_PRE='$(SHLIB_PRE)' SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
99 PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \
100 CPUID_OBJ='$(CPUID_OBJ)' \
101 BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)' \
102 @@ -295,7 +296,7 @@
103 $(FIPSLIBDIR)fips_premain.c $(FIPSLIBDIR)fipscanister.o \
104 libcrypto.a $(EX_LIBS)
105
106 -libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
107 +$(SHLIB_PRE)crypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
108 @if [ "$(SHLIB_TARGET)" != "" ]; then \
109 if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
110 FIPSLD_LIBCRYPTO=libcrypto.a ; \
111 @@ -308,7 +309,7 @@
112 exit 1; \
113 fi
114
115 -libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
116 +$(SHLIB_PRE)ssl$(SHLIB_EXT): $(SHLIB_PRE)crypto$(SHLIB_EXT) libssl.a
117 @if [ "$(SHLIB_TARGET)" != "" ]; then \
118 $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
119 else \
120 @@ -324,7 +325,7 @@
121 ( set -x; rm -f lib$$i$$j ); \
122 done; \
123 fi; \
124 - ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
125 + ( set -x; rm -f $(SHLIB_PRE)$$i$(SHLIB_EXT) ); \
126 if [ "$(PLATFORM)" = "Cygwin" ]; then \
127 ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
128 fi; \
129 @@ -583,16 +584,21 @@
130 chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
131 mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
132 fi ); \
133 - if expr $(PLATFORM) : 'mingw' > /dev/null; then \
134 - ( case $$i in \
135 - *crypto*) i=libeay32.dll;; \
136 - *ssl*) i=ssleay32.dll;; \
137 + case $(PLATFORM) in \
138 + mingw | msvc) \
139 + ( \
140 + case $$i in \
141 + *crypto*) i=@LIBRARY_PREFIX@crypto32@LIBRARY_SUFFIX@.dll;; \
142 + *ssl*) i=@LIBRARY_PREFIX@ssl32@LIBRARY_SUFFIX@.dll;; \
143 esac; \
144 echo installing $$i; \
145 cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
146 chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
147 - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
148 - fi; \
149 + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \
150 + $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i \
151 + ); \
152 + ;; \
153 + esac; \
154 fi; \
155 done; \
156 ( here="`pwd`"; \
157 diff -ur openssl-1.0.1c-orig/Makefile.shared openssl-1.0.1c/Makefile.shared
158 --- openssl-1.0.1c-orig/Makefile.shared 2010-08-21 07:37:17 -0400
159 +++ openssl-1.0.1c/Makefile.shared 2013-07-01 12:42:45 -0400
160 @@ -261,13 +261,15 @@
161 SHLIB=cyg$(LIBNAME); \
162 base=-Wl,--enable-auto-image-base; \
163 deffile=; \
164 - if expr $(PLATFORM) : 'mingw' > /dev/null; then \
165 - SHLIB=$(LIBNAME)eay32; base=; \
166 + case $(PLATFORM) in \
167 + mingw | msvc) \
168 + SHLIB=@LIBRARY_PREFIX@$(LIBNAME)32; base=; \
169 if test -f $(LIBNAME)eay32.def; then \
170 deffile=$(LIBNAME)eay32.def; \
171 fi; \
172 - fi; \
173 - SHLIB_SUFFIX=.dll; \
174 + ;; \
175 + esac; \
176 + SHLIB_SUFFIX=@LIBRARY_SUFFIX@.dll; \
177 LIBVERSION="$(LIBVERSION)"; \
178 SHLIB_SOVER=${LIBVERSION:+"-$(LIBVERSION)"}; \
179 ALLSYMSFLAGS='-Wl,--whole-archive'; \
180 @@ -278,26 +280,28 @@
181 link_a.cygwin:
182 @ $(CALC_VERSIONS); \
183 INHIBIT_SYMLINKS=yes; \
184 - SHLIB=cyg$(LIBNAME); SHLIB_SOVER=-$(LIBVERSION); SHLIB_SUFFIX=.dll; \
185 + SHLIB=cyg$(LIBNAME); SHLIB_SOVER=-$(LIBVERSION); SHLIB_SUFFIX=@LIBRARY_SUFFIX@.dll; \
186 dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; extras=; \
187 base=-Wl,--enable-auto-image-base; \
188 - if expr $(PLATFORM) : 'mingw' > /dev/null; then \
189 + case $(PLATFORM) in \
190 + mingw | msvc) \
191 case $(LIBNAME) in \
192 - crypto) SHLIB=libeay;; \
193 - ssl) SHLIB=ssleay;; \
194 + crypto) SHLIB=@LIBRARY_PREFIX@crypto;; \
195 + ssl) SHLIB=@LIBRARY_PREFIX@ssl;; \
196 esac; \
197 SHLIB_SOVER=32; \
198 extras="$(LIBNAME).def"; \
199 - $(PERL) util/mkdef.pl 32 $$SHLIB > $$extras; \
200 + $(PERL) util/mkdef.pl 32 $(LIBNAME) > $$extras; \
201 base=; [ $(LIBNAME) = "crypto" ] && base=-Wl,--image-base,0x63000000; \
202 - fi; \
203 + ;; \
204 + esac; \
205 dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
206 $(PERL) util/mkrc.pl $$dll_name | \
207 $(CROSS_COMPILE)windres -o rc.o; \
208 extras="$$extras rc.o"; \
209 ALLSYMSFLAGS='-Wl,--whole-archive'; \
210 NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
211 - SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--out-implib,lib$(LIBNAME).dll.a $$extras"; \
212 + SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared $$base -Wl,-s,-Bsymbolic -Wl,--out-implib,$(SHLIB_PRE)$(LIBNAME)$(SHLIB_EXT) $$extras"; \
213 [ -f apps/$$dll_name ] && rm apps/$$dll_name; \
214 [ -f test/$$dll_name ] && rm test/$$dll_name; \
215 $(LINK_SO_A) || exit 1; \
216 diff -ur openssl-1.0.1c-orig/crypto/Makefile openssl-1.0.1c/crypto/Makefile
217 --- openssl-1.0.1c-orig/crypto/Makefile 2011-12-09 20:37:55 -0500
218 +++ openssl-1.0.1c/crypto/Makefile 2013-07-01 12:42:45 -0400
219 @@ -33,7 +33,7 @@
220 GENERAL=Makefile README crypto-lib.com install.com
221
222 LIB= $(TOP)/libcrypto.a
223 -SHARED_LIB= libcrypto$(SHLIB_EXT)
224 +SHARED_LIB= $(SHLIB_PRE)crypto$(SHLIB_EXT)
225 LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
226 ebcdic.c uid.c o_time.c o_str.c o_dir.c o_fips.c o_init.c fips_ers.c
227 LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o ebcdic.o \
228 diff -ur openssl-1.0.1c-orig/crypto/cryptlib.c openssl-1.0.1c/crypto/cryptlib.c
229 --- openssl-1.0.1c-orig/crypto/cryptlib.c 2012-01-21 07:18:29 -0500
230 +++ openssl-1.0.1c/crypto/cryptlib.c 2013-07-01 12:42:45 -0400
231 @@ -924,3 +924,81 @@
232 }
233
234 void *OPENSSL_stderr(void) { return stderr; }
235 +
236 +#ifdef _MSC_VER
237 +char* OPENSSL_relocate(const char* path)
238 +{
239 + static char* openssl_root = NULL;
240 + static size_t openssl_root_len = 0;
241 +
242 + if (path == NULL)
243 + return path;
244 +
245 + if (openssl_root == NULL)
246 + {
247 + HMODULE hMod;
248 +
249 + if (GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
250 + (LPCTSTR)OPENSSL_relocate,
251 + &hMod))
252 + {
253 + DWORD len = 256, rlen;
254 +
255 + while (1)
256 + {
257 + openssl_root = (char*)OPENSSL_realloc(openssl_root, len);
258 + if (openssl_root == NULL)
259 + {
260 + OPENSSL_showfatal("Unable to allocate internal buffer");
261 + break;
262 + }
263 + rlen = GetModuleFileName(hMod, openssl_root, len);
264 + if (rlen == 0)
265 + OPENSSL_showfatal("Unable to retrieve OpenSSL module file name");
266 + else if (rlen < len)
267 + {
268 + char* p;
269 +
270 + p = strrchr(openssl_root, '\\');
271 + if (p != NULL)
272 + {
273 + *p = '\0';
274 + rlen = strlen(openssl_root);
275 + }
276 +
277 + if (rlen >= 4 && strcmp(openssl_root+rlen-4, "\\bin") == 0)
278 + {
279 + openssl_root[rlen-4] = '\0';
280 + rlen -= 4;
281 + }
282 + openssl_root_len = rlen;
283 +
284 + /* Convert to forward slashes */
285 + for (p = openssl_root; *p; ++p)
286 + if (*p == '\\')
287 + *p = '/';
288 +
289 + break;
290 + }
291 + else
292 + len *= 2;
293 + }
294 + }
295 + else
296 + OPENSSL_showfatal("Unable to get OpenSSL module handle");
297 + }
298 +
299 + if (strncmp(path, OPENSSLROOT, sizeof(OPENSSLROOT)-1) == 0)
300 + {
301 + size_t plen = openssl_root_len + strlen(path) - sizeof(OPENSSLROOT) + 2;
302 + char* new_path = (char*)OPENSSL_malloc(plen);
303 +
304 + BUF_strlcpy(new_path, openssl_root, plen);
305 + BUF_strlcat(new_path, path + sizeof(OPENSSLROOT) - 1, plen);
306 +
307 + return new_path;
308 + }
309 + else
310 + return OPENSSL_strdup(path);
311 +}
312 +#endif
313 diff -ur openssl-1.0.1c-orig/crypto/cryptlib.h openssl-1.0.1c/crypto/cryptlib.h
314 --- openssl-1.0.1c-orig/crypto/cryptlib.h 2011-06-28 09:31:57 -0400
315 +++ openssl-1.0.1c/crypto/cryptlib.h 2013-07-01 12:42:45 -0400
316 @@ -103,6 +103,9 @@
317 void OPENSSL_showfatal(const char *,...);
318 void *OPENSSL_stderr(void);
319 extern int OPENSSL_NONPIC_relocated;
320 +#ifdef _MSC_VER
321 +extern char* OPENSSL_relocate(const char* path);
322 +#endif
323
324 #ifdef __cplusplus
325 }
326 diff -ur openssl-1.0.1c-orig/crypto/dso/dso_win32.c openssl-1.0.1c/crypto/dso/dso_win32.c
327 --- openssl-1.0.1c-orig/crypto/dso/dso_win32.c 2009-07-15 07:01:40 -0400
328 +++ openssl-1.0.1c/crypto/dso/dso_win32.c 2013-07-01 12:44:21 -0400
329 @@ -638,7 +638,9 @@
330 (strstr(filename, ":") == NULL));
331 if(transform)
332 /* We will convert this to "%s.dll" */
333 - translated = OPENSSL_malloc(len + 5);
334 + translated = OPENSSL_malloc(len + 5 +
335 + strlen("@LIBRARY_PREFIX@") +
336 + strlen("32@LIBRARY_SUFFIX@"));
337 else
338 /* We will simply duplicate filename */
339 translated = OPENSSL_malloc(len + 1);
340 @@ -649,7 +651,7 @@
341 return(NULL);
342 }
343 if(transform)
344 - sprintf(translated, "%s.dll", filename);
345 + sprintf(translated, "%s%s%s.dll", "@LIBRARY_PREFIX@", filename, "32@LIBRARY_SUFFIX@");
346 else
347 sprintf(translated, "%s", filename);
348 return(translated);
349 diff -ur openssl-1.0.1c-orig/crypto/engine/eng_list.c openssl-1.0.1c/crypto/engine/eng_list.c
350 --- openssl-1.0.1c-orig/crypto/engine/eng_list.c 2010-03-27 14:28:13 -0400
351 +++ openssl-1.0.1c/crypto/engine/eng_list.c 2013-07-01 12:42:45 -0400
352 @@ -401,8 +401,12 @@
353 #ifdef OPENSSL_SYS_VMS
354 if((load_dir = getenv("OPENSSL_ENGINES")) == 0) load_dir = "SSLROOT:[ENGINES]";
355 #else
356 +#ifdef _MSC_VER
357 + if((load_dir = getenv("OPENSSL_ENGINES")) == 0) load_dir = OPENSSL_relocate(ENGINESDIR);
358 +#else
359 if((load_dir = getenv("OPENSSL_ENGINES")) == 0) load_dir = ENGINESDIR;
360 #endif
361 +#endif
362 iterator = ENGINE_by_id("dynamic");
363 if(!iterator || !ENGINE_ctrl_cmd_string(iterator, "ID", id, 0) ||
364 !ENGINE_ctrl_cmd_string(iterator, "DIR_LOAD", "2", 0) ||
365 @@ -410,9 +414,15 @@
366 load_dir, 0) ||
367 !ENGINE_ctrl_cmd_string(iterator, "LOAD", NULL, 0))
368 goto notfound;
369 +#ifdef _MSC_VER
370 + if (load_dir != NULL) OPENSSL_free(load_dir);
371 +#endif
372 return iterator;
373 }
374 notfound:
375 +#ifdef _MSC_VER
376 + if (load_dir != NULL) OPENSSL_free(load_dir);
377 +#endif
378 ENGINE_free(iterator);
379 ENGINEerr(ENGINE_F_ENGINE_BY_ID,ENGINE_R_NO_SUCH_ENGINE);
380 ERR_add_error_data(2, "id=", id);
381 diff -ur openssl-1.0.1c-orig/crypto/opensslconf.h.in openssl-1.0.1c/crypto/opensslconf.h.in
382 --- openssl-1.0.1c-orig/crypto/opensslconf.h.in 2005-12-16 05:37:23 -0500
383 +++ openssl-1.0.1c/crypto/opensslconf.h.in 2013-07-01 12:42:45 -0400
384 @@ -5,6 +5,7 @@
385
386 #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
387 #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
388 +#define OPENSSLROOT "/usr/local"
389 #define ENGINESDIR "/usr/local/lib/engines"
390 #define OPENSSLDIR "/usr/local/ssl"
391 #endif
392 diff -ur openssl-1.0.1c-orig/crypto/x509/x509_def.c openssl-1.0.1c/crypto/x509/x509_def.c
393 --- openssl-1.0.1c-orig/crypto/x509/x509_def.c 1999-09-11 13:54:11 -0400
394 +++ openssl-1.0.1c/crypto/x509/x509_def.c 2013-07-01 12:42:45 -0400
395 @@ -61,21 +61,31 @@
396 #include <openssl/crypto.h>
397 #include <openssl/x509.h>
398
399 +#ifdef _MSC_VER
400 +#define X509_GET_DEFAULT_PATH(p) \
401 +static char* __internal__ = NULL; \
402 +if (__internal__ == NULL) \
403 + __internal__ = OPENSSL_relocate(p); \
404 +return __internal__
405 +#else
406 +#define X509_GET_DEFAULT_PATH(p) return(p)
407 +#endif
408 +
409 const char *X509_get_default_private_dir(void)
410 - { return(X509_PRIVATE_DIR); }
411 -
412 + { X509_GET_DEFAULT_PATH(X509_PRIVATE_DIR); }
413 +
414 const char *X509_get_default_cert_area(void)
415 - { return(X509_CERT_AREA); }
416 + { X509_GET_DEFAULT_PATH(X509_CERT_AREA); }
417
418 const char *X509_get_default_cert_dir(void)
419 - { return(X509_CERT_DIR); }
420 + { X509_GET_DEFAULT_PATH(X509_CERT_DIR); }
421
422 const char *X509_get_default_cert_file(void)
423 - { return(X509_CERT_FILE); }
424 + { X509_GET_DEFAULT_PATH(X509_CERT_FILE); }
425
426 const char *X509_get_default_cert_dir_env(void)
427 - { return(X509_CERT_DIR_EVP); }
428 + { X509_GET_DEFAULT_PATH(X509_CERT_DIR_EVP); }
429
430 const char *X509_get_default_cert_file_env(void)
431 - { return(X509_CERT_FILE_EVP); }
432 + { X509_GET_DEFAULT_PATH(X509_CERT_FILE_EVP); }
433
434 diff -ur openssl-1.0.1c-orig/engines/Makefile openssl-1.0.1c/engines/Makefile
435 --- openssl-1.0.1c-orig/engines/Makefile 2010-08-24 17:46:58 -0400
436 +++ openssl-1.0.1c/engines/Makefile 2013-07-01 12:42:45 -0400
437 @@ -116,7 +116,7 @@
438 *DSO_BEOS*) sfx=".so";; \
439 *DSO_DLFCN*) sfx=`expr "$(SHLIB_EXT)" : '.*\(\.[a-z][a-z]*\)' \| ".so"`;; \
440 *DSO_DL*) sfx=".sl";; \
441 - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \
442 + *DSO_WIN32*) sfx="32@LIBRARY_SUFFIX@.dll"; pfx="@LIBRARY_PREFIX@";; \
443 *) sfx=".bad";; \
444 esac; \
445 cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
446 diff -ur openssl-1.0.1c-orig/engines/ccgost/Makefile openssl-1.0.1c/engines/ccgost/Makefile
447 --- openssl-1.0.1c-orig/engines/ccgost/Makefile 2012-04-26 06:42:20 -0400
448 +++ openssl-1.0.1c/engines/ccgost/Makefile 2013-07-01 12:42:45 -0400
449 @@ -50,7 +50,7 @@
450 *DSO_BEOS*) sfx=".so";; \
451 *DSO_DLFCN*) sfx=`expr "$(SHLIB_EXT)" : '.*\(\.[a-z][a-z]*\)' \| ".so"`;; \
452 *DSO_DL*) sfx=".sl";; \
453 - *DSO_WIN32*) sfx="eay32.dll"; pfx=;; \
454 + *DSO_WIN32*) sfx="32@LIBRARY_SUFFIX@.dll"; pfx="@LIBRARY_PREFIX@";; \
455 *) sfx=".bad";; \
456 esac; \
457 cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
458 diff -ur openssl-1.0.1c-orig/ssl/Makefile openssl-1.0.1c/ssl/Makefile
459 --- openssl-1.0.1c-orig/ssl/Makefile 2012-01-02 11:41:11 -0500
460 +++ openssl-1.0.1c/ssl/Makefile 2013-07-01 12:42:45 -0400
461 @@ -19,7 +19,7 @@
462 APPS=
463
464 LIB=$(TOP)/libssl.a
465 -SHARED_LIB= libssl$(SHLIB_EXT)
466 +SHARED_LIB= $(SHLIB_PRE)ssl$(SHLIB_EXT)
467 LIBSRC= \
468 s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c \
469 s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c \
470 diff -ur openssl-1.0.1c-orig/util/mkdef.pl openssl-1.0.1c/util/mkdef.pl
471 --- openssl-1.0.1c-orig/util/mkdef.pl 2011-12-31 18:49:45 -0500
472 +++ openssl-1.0.1c/util/mkdef.pl 2013-07-01 12:42:45 -0400
473 @@ -1306,7 +1306,7 @@
474 ; Definition file for the DLL version of the $name library from OpenSSL
475 ;
476
477 -LIBRARY $libname $liboptions
478 +LIBRARY @LIBRARY_PREFIX@$libname@LIBRARY_SUFFIX@ $liboptions
479
480 EOF
481