From be5d92e01441e5f26ca4236f8d1e42ec37548f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulf=20M=C3=B6ller?= Date: Sat, 3 Jun 2000 23:23:10 +0000 Subject: [PATCH] CygWin32 support. Submitted by: John Jarvie --- CHANGES | 3 +++ Configure | 8 +++++--- INSTALL.W32 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ e_os.h | 8 ++++---- 4 files changed, 58 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index 9cee7298e0..9f6560b882 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,9 @@ Changes between 0.9.5a and 0.9.6 [xx XXX 2000] + *) CygWin32 support. + [John Jarvie ] + *) 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 diff --git a/Configure b/Configure index 7a0a1206cb..974d969df4 100755 --- a/Configure +++ b/Configure @@ -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 "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=""; diff --git a/INSTALL.W32 b/INSTALL.W32 index 7b81ac0579..3e30095486 100644 --- a/INSTALL.W32 +++ b/INSTALL.W32 @@ -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 --------------- diff --git a/e_os.h b/e_os.h index aca01cdc64..95590a7cb2 100644 --- a/e_os.h +++ b/e_os.h @@ -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 -- GitLab