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
internals:windows:libs:openssl [2008/06/01 17:45] pajoyeinternals:windows:libs:openssl [2017/09/22 13:28] (current) – external edit 127.0.0.1
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.1212342306.txt.gz · Last modified: 2017/09/22 13:28 (external edit)