CygWin32 support.
Submitted by: John Jarvie <jjarvie@newsguy.com>
This commit is contained in:
parent
c32364f54c
commit
be5d92e014
3
CHANGES
3
CHANGES
@ -4,6 +4,9 @@
|
|||||||
|
|
||||||
Changes between 0.9.5a and 0.9.6 [xx XXX 2000]
|
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
|
*) The type-safe stack code has been rejigged. It is now only compiled
|
||||||
in when OpenSSL is configured with the DEBUG_SAFESTACK option and
|
in when OpenSSL is configured with the DEBUG_SAFESTACK option and
|
||||||
by default all type-specific stack functions are "#define"d back to
|
by default all type-specific stack functions are "#define"d back to
|
||||||
|
@ -362,12 +362,14 @@ my %table=(
|
|||||||
"BC-32","bcc32:::::BN_LLONG DES_PTR RC4_INDEX:::",
|
"BC-32","bcc32:::::BN_LLONG DES_PTR RC4_INDEX:::",
|
||||||
"BC-16","bcc:::(unknown)::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",
|
"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
|
# (Note: the real CFLAGS for Windows builds are defined by util/mk1mf.pl
|
||||||
# and its library files in util/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}:",
|
"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 from Bernhard Simon <simon@zid.tuwien.ac.at>
|
||||||
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown)::::::",
|
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown)::::::",
|
||||||
"ultrix-gcc","gcc:-O3 -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
|
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 $prefix="";
|
||||||
my $openssldir="";
|
my $openssldir="";
|
||||||
|
46
INSTALL.W32
46
INSTALL.W32
@ -134,6 +134,52 @@
|
|||||||
> cd out
|
> cd out
|
||||||
> ..\ms\test
|
> ..\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
|
Troubleshooting
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
8
e_os.h
8
e_os.h
@ -108,11 +108,11 @@ extern "C" {
|
|||||||
# define MS_STATIC
|
# define MS_STATIC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(WIN32)
|
#if defined(_WIN32) && !defined(WIN32) && !defined(__CYGWIN32__)
|
||||||
# define WIN32
|
# define WIN32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WIN32) || defined(WIN16)
|
#if (defined(WIN32) || defined(WIN16)) && !defined(__CYGWIN32__)
|
||||||
# ifndef WINDOWS
|
# ifndef WINDOWS
|
||||||
# define WINDOWS
|
# define WINDOWS
|
||||||
# endif
|
# endif
|
||||||
@ -136,7 +136,7 @@ extern "C" {
|
|||||||
#define clear_sys_error() errno=0
|
#define clear_sys_error() errno=0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WINDOWS
|
#if defined(WINDOWS) && !defined(__CYGWIN32__)
|
||||||
#define get_last_socket_error() WSAGetLastError()
|
#define get_last_socket_error() WSAGetLastError()
|
||||||
#define clear_socket_error() WSASetLastError(0)
|
#define clear_socket_error() WSASetLastError(0)
|
||||||
#define readsocket(s,b,n) recv((s),(b),(n),0)
|
#define readsocket(s,b,n) recv((s),(b),(n),0)
|
||||||
@ -170,7 +170,7 @@ extern "C" {
|
|||||||
# define NO_FP_API
|
# define NO_FP_API
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WINDOWS) || defined(MSDOS)
|
#if (defined(WINDOWS) || defined(MSDOS)) && !defined(__CYGWIN32__)
|
||||||
|
|
||||||
# ifndef S_IFDIR
|
# ifndef S_IFDIR
|
||||||
# define S_IFDIR _S_IFDIR
|
# define S_IFDIR _S_IFDIR
|
||||||
|
Loading…
x
Reference in New Issue
Block a user