internals:windows:libs:openssl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
internals:windows:libs:openssl [2008/06/01 17:45] pajoyeinternals:windows:libs:openssl [2013/02/21 18:13] – [OpenSSL Windows, How to compile] ab
Line 1: Line 1:
 ====== OpenSSL Windows, How to compile ====== ====== OpenSSL Windows, How to compile ======
  
 +For PHP suitable sources and up-to-date information see [[https://github.com/winlibs/openssl]]
 ===== Building OpenSSL 0.9.8 ===== ===== Building OpenSSL 0.9.8 =====
- 
- 
  
  
Line 10: Line 9:
   * Native Perl from ActiveState ([[http://www.activestate.com/Products/activeperl/]]) installed and perl being in your PATH   * Native Perl from ActiveState ([[http://www.activestate.com/Products/activeperl/]]) installed and perl being in your PATH
   * Common tools used to compile PHP   * Common tools used to compile PHP
 +
  
  
Line 16: Line 16:
 Configure for Win32 Configure for Win32
 <code bash> <code bash>
-cd  C:\phpbuild\libs\openssl-0.9.8d+cd  C:\phpbuild\libs\openssl-0.9.8k
 perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN32 perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN32
 </code> </code>
Line 23: Line 23:
 Configure for Win64 Configure for Win64
 <code bash> <code bash>
-cd  C:\phpbuild\libs\openssl-0.9.8d+cd  C:\phpbuild\libs\openssl-0.9.8k
 perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN64A perl Configure --openssldir=C:/phpbuild/apps_install/ VC-WIN64A
 </code> </code>
Line 29: Line 29:
 The configure will prepare the sources to compile OpenSSL for windows 32bit and install it under c:\phpbuilds\apps.  The configure will prepare the sources to compile OpenSSL for windows 32bit and install it under c:\phpbuilds\apps. 
  
-Modify the path using your configurations. Please not the unix directory separators / instead of the Windows backslash \.+Modify the path using your configurations. Please note the unix directory separators / instead of the Windows backslash \
 + 
 +The following steps are only for 0.9.8k, later versions have been fixed. 
 + 
 +  The headers are not compatible with VC9 which seems to be more picky. The openssl/ossl_typ.h header has a forward typedef that reads: 
 +<code>typedef struct ocsp_response_st OCSP_RESPONSE;</code> 
 +  ocsp_response_st is defined in openssl/ocsp.h, this typedef has to be move there. 
 + 
 +  bufferoverflowu.lib is also not present anymore (not needed) in VC9. Comment out the reference in the util/pl/VC-32.pl script on line 142, 276 and 286.
  
 === Assembly languages options === === Assembly languages options ===
  
 PHP build default in 5.2 don't use ASM. PHP build default in 5.2 don't use ASM.
-PHP build default in 5.and later uses ASM.+PHP build default in 5.and later uses ASM. 
 + 
 +  For 0.9.8k you have to modify  the file crypto\perlasm\x86ms.pl. On the line 273 remove "$extra"
  
 For Win64 builds, use only: For Win64 builds, use only:
Line 72: Line 83:
  
  
-==== Compiling ====+===== Compiling =====
 <code bash> <code bash>
 nmake -f ms\ntdll.mak nmake -f ms\ntdll.mak
Line 83: Line 94:
 </code> </code>
  
-=== Install ===+If you get the following compilation error (with other letters): 
 +<code bash> 
 +.\crypto\cversion.c(105) : warning C4129: 'p' : unrecognized character escape sequence 
 +.\crypto\cversion.c(105) : warning C4129: 'l' : unrecognized character escape sequence 
 +</code> 
 + 
 +Go back to the configure phase and be sure to use only slashed and no backslashes for --openssldir (or --prefix) 
 + 
 +===== Testing ===== 
 + 
 +The possible point of failures in the OpenSSL implementations are numerous. Thanks to their tests suite, it is possible to minimize the risk by running it after each update: 
 + 
 +<code bash> 
 +nmake -f ms\ntdll.mak test 
 +</code> 
 + 
 +===== Install =====
  
 <code bash> <code bash>
internals/windows/libs/openssl.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1