|
@@ -1,6 +1,8 @@
|
|
|
+NOTES FOR WINDOWS PLATFORMS
|
|
|
+===========================
|
|
|
|
|
|
- NOTES FOR WINDOWS PLATFORMS
|
|
|
- ===========================
|
|
|
+ (This file, like the others, is in "markdown" format, but has a ".txt"
|
|
|
+ extension to make it easier to view/edit on Windows.)
|
|
|
|
|
|
There are various options to build and run OpenSSL on the Windows platforms.
|
|
|
|
|
@@ -17,7 +19,6 @@
|
|
|
for building (using GNU/Unix shell, compiler, and tools) and at run time.
|
|
|
For this option you can use Cygwin.
|
|
|
|
|
|
-
|
|
|
Visual C++ native builds, aka VC-*
|
|
|
=====================================
|
|
|
|
|
@@ -28,17 +29,17 @@
|
|
|
these are required as well:
|
|
|
|
|
|
- Perl.
|
|
|
- We recommend Strawberry Perl, available from http://strawberryperl.com/
|
|
|
+ We recommend Strawberry Perl, available from <http://strawberryperl.com/>
|
|
|
Please read NOTES.PERL for more information, including the use of CPAN.
|
|
|
- An alternative is ActiveState Perl, https://www.activestate.com/ActivePerl
|
|
|
+ An alternative is ActiveState Perl, <https://www.activestate.com/ActivePerl>
|
|
|
for which you may need to explicitly build the Perl module Win32/Console.pm
|
|
|
- via https://platform.activestate.com/ActiveState and then download it.
|
|
|
+ via <https://platform.activestate.com/ActiveState> and then download it.
|
|
|
|
|
|
- Microsoft Visual C compiler.
|
|
|
Since these are proprietary and ever-changing we cannot test them all.
|
|
|
Older versions may not work. Use a recent version wherever possible.
|
|
|
|
|
|
- - Netwide Assembler (NASM), available from https://www.nasm.us
|
|
|
+ - Netwide Assembler (NASM), available from <https://www.nasm.us>
|
|
|
Note that NASM is the only supported assembler.
|
|
|
|
|
|
Quick start
|
|
@@ -55,7 +56,8 @@
|
|
|
Or run "cmd" and execute "vcvarsall.bat" with one of the options x86,
|
|
|
x86_amd64, x86_arm, x86_arm64, amd64, amd64_x86, amd64_arm, or amd64_arm64.
|
|
|
This sets up the environment variables needed for nmake.exe, cl.exe, etc.
|
|
|
- See also https://docs.microsoft.com/cpp/build/building-on-the-command-line
|
|
|
+ See also
|
|
|
+ <https://docs.microsoft.com/cpp/build/building-on-the-command-line>
|
|
|
|
|
|
5. From the root of the OpenSSL source directory enter
|
|
|
perl Configure VC-WIN32 if you want 32-bit OpenSSL or
|
|
@@ -109,7 +111,6 @@
|
|
|
"vcvarsall.bat" before you compile. For example, if you want to build
|
|
|
"arm64" builds, you should run "vcvarsall.bat x86_arm64 uwp".
|
|
|
|
|
|
-
|
|
|
Native OpenSSL built using MinGW
|
|
|
================================
|
|
|
|
|
@@ -124,7 +125,7 @@
|
|
|
|
|
|
Requirement details
|
|
|
|
|
|
- - MSYS2 shell, from https://www.msys2.org/
|
|
|
+ - MSYS2 shell, from <https://www.msys2.org/>
|
|
|
|
|
|
- Perl, at least version 5.10.0, which usually comes pre-installed with MSYS2
|
|
|
|
|
@@ -177,19 +178,20 @@
|
|
|
and exporting from .exe image in question own _OPENSSL_isservice not
|
|
|
relying on USER32.DLL. E.g., on Windows Vista and later you could:
|
|
|
|
|
|
- __declspec(dllexport) __cdecl BOOL _OPENSSL_isservice(void)
|
|
|
- { DWORD sess;
|
|
|
- if (ProcessIdToSessionId(GetCurrentProcessId(),&sess))
|
|
|
- return sess==0;
|
|
|
- return FALSE;
|
|
|
- }
|
|
|
+ __declspec(dllexport) __cdecl BOOL _OPENSSL_isservice(void)
|
|
|
+ {
|
|
|
+ DWORD sess;
|
|
|
+
|
|
|
+ if (ProcessIdToSessionId(GetCurrentProcessId(), &sess))
|
|
|
+ return sess == 0;
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
|
|
|
If you link with OpenSSL .DLLs, then you're expected to include into
|
|
|
your application code a small "shim" snippet, which provides
|
|
|
the glue between the OpenSSL BIO layer and your compiler run-time.
|
|
|
See also the OPENSSL_Applink manual page.
|
|
|
|
|
|
-
|
|
|
Hosted OpenSSL built using Cygwin
|
|
|
=================================
|
|
|
|
|
@@ -200,7 +202,7 @@
|
|
|
|
|
|
To build OpenSSL using Cygwin, you need to:
|
|
|
|
|
|
- * Install Cygwin, see https://cygwin.com/
|
|
|
+ * Install Cygwin, see <https://cygwin.com/>
|
|
|
|
|
|
* Install Cygwin Perl, at least version 5.10.0
|
|
|
and ensure it is in the $PATH
|