Commit be5d92e0 authored by Ulf Möller's avatar Ulf Möller
Browse files

CygWin32 support.

Submitted by: John Jarvie <jjarvie@newsguy.com>
parent c32364f5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@

 Changes between 0.9.5a and 0.9.6  [xx XXX 2000]

  *) CygWin32 support.
     [John Jarvie <jjarvie@newsguy.com>]

  *) The type-safe stack code has been rejigged. It is now only compiled
     in when OpenSSL is configured with the DEBUG_SAFESTACK option and
     by default all type-specific stack functions are "#define"d back to
+5 −3
Original line number Diff line number Diff line
@@ -362,12 +362,14 @@ my %table=(
"BC-32","bcc32:::::BN_LLONG DES_PTR RC4_INDEX:::",
"BC-16","bcc:::(unknown)::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",

# CygWin32
# Mingw32
# (Note: the real CFLAGS for Windows builds are defined by util/mk1mf.pl
# and its library files in util/pl/*)
"CygWin32", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:",
"Mingw32", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:",

# CygWin32
"CygWin32", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:",

# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown)::::::",
"ultrix-gcc","gcc:-O3 -DL_ENDIAN::(unknown)::::::",
@@ -386,7 +388,7 @@ my %table=(
);

my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
	BC-16 CygWin32 Mingw32);
	BC-16 Mingw32);

my $prefix="";
my $openssldir="";
+46 −0
Original line number Diff line number Diff line
@@ -134,6 +134,52 @@
   > cd out
   > ..\ms\test

 GNU C (CygWin32)
 ---------------

 CygWin32 provides a bash shell and GNU tools environment running on
 NT 4.0, Windows 9x and Windows 2000. Consequently, a make of OpenSSL
 with CygWin is closer to a GNU bash environment such as Linux rather
 than other W32 makes that are based on a single makefile approach.
 CygWin32 implements Posix/Unix calls through cygwin1.dll, and is
 contrasted to Mingw32 which links dynamically to msvcrt.dll or
 crtdll.dll.

 To build OpenSSL using CygWin32:

 * Install CygWin32 (see http://sourceware.cygnus.com/cygwin)

 * Install Perl and ensure it is in the path

 * Run the CygWin bash shell

 * $ tar zxvf openssl-x.x.x.tar.gz
   $ cd openssl-x.x.x
   $ ./Configure no-threads CygWin32
   [...]
   $ make
   [...]
   $ make test
   $ make install

 This will create a default install in /usr/local/ssl.

 CygWin32 Notes:

 "make test" and normal file operations may fail in directories
 mounted as text (i.e. mount -t c:\somewhere /home) due to CygWin
 stripping of carriage returns. To avoid this ensure that a binary
 mount is used, e.g. mount -b c:\somewhere /home.

 As of version 1.1.1 CygWin32 is relatively unstable in its handling
 of cr/lf issues. These make procedures succeeded with versions 1.1 and
 the snapshot 20000524 (Slow!).

 "bc" is not provided in the CygWin32 distribution.  This causes a
 non-fatal error in "make test" but is otherwise harmless.  If
 desired, GNU bc can be built with CygWin32 without change.


 Troubleshooting
 ---------------

+4 −4
Original line number Diff line number Diff line
@@ -108,11 +108,11 @@ extern "C" {
#  define MS_STATIC
#endif

#if defined(_WIN32) && !defined(WIN32)
#if defined(_WIN32) && !defined(WIN32) && !defined(__CYGWIN32__)
#  define WIN32
#endif

#if defined(WIN32) || defined(WIN16)
#if (defined(WIN32) || defined(WIN16)) && !defined(__CYGWIN32__)
#  ifndef WINDOWS
#    define WINDOWS
#  endif
@@ -136,7 +136,7 @@ extern "C" {
#define clear_sys_error()	errno=0
#endif

#ifdef WINDOWS
#if defined(WINDOWS) && !defined(__CYGWIN32__)
#define get_last_socket_error()	WSAGetLastError()
#define clear_socket_error()	WSASetLastError(0)
#define readsocket(s,b,n)	recv((s),(b),(n),0)
@@ -170,7 +170,7 @@ extern "C" {
#  define NO_FP_API
#endif

#if defined(WINDOWS) || defined(MSDOS)
#if (defined(WINDOWS) || defined(MSDOS)) && !defined(__CYGWIN32__)

#  ifndef S_IFDIR
#    define S_IFDIR	_S_IFDIR