Here is a revised patch for DJGPP compatibility on 0.9.7-stable. I
think this takes care of the problem with the patch breaking Makefiles
on other platforms. I also removed the egd code, since it really
didn't work on DJGPP/WATT-32. Revised patch also copied to the US Bureau
of Industry and Security.
                       Doug
-- 
Doug Kaufman
Internet: [EMAIL PROTECTED]
--- OpenSSL-0.9.7/Configure.orig        2004-08-04 00:10:26.000000000 -0800
+++ OpenSSL-0.9.7/Configure     2004-08-04 19:10:36.000000000 -0800
@@ -526,7 +526,7 @@
 "Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 
-Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:::.dll",
 
 # DJGPP
-"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 
-Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}::::::::::",
+"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer 
-fno-strict-aliasing -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG 
${x86_gcc_des} ${x86_gcc_opts}::::::::::",
 
 # Ultrix from Bernhard Simon <[EMAIL PROTECTED]>
 "ultrix-cc","cc:-std1 -O -Olimit 2500 -DL_ENDIAN::(unknown):::::::",
@@ -1168,8 +1168,8 @@
        }
 $des_obj=$des_enc      unless (!$fips && $des_obj =~ /\.o$/);
 my $fips_des_obj='asm/fips-dx86-elf.o';
-$fips_des_obj=$fips_des_enc unless $processor eq '386';
-my $fips_sha1_obj='asm/sx86-elf.o' if $processor eq '386';
+$fips_des_obj=$fips_des_enc unless ($processor eq '386' && $target ne 'DJGPP');
+my $fips_sha1_obj='asm/sx86-elf.o' if ($processor eq '386' && $target ne 'DJGPP');
 $bf_obj=$bf_enc                unless ($bf_obj =~ /\.o$/);
 $cast_obj=$cast_enc    unless ($cast_obj =~ /\.o$/);
 $rc4_obj=$rc4_enc      unless ($rc4_obj =~ /\.o$/);
--- OpenSSL-0.9.7/crypto/des/des_enc.c.ori      2004-05-11 05:00:58.000000000 -0800
+++ OpenSSL-0.9.7/crypto/des/des_enc.c  2004-08-01 17:14:50.000000000 -0800
@@ -293,7 +293,7 @@
 
 #ifndef DES_DEFAULT_OPTIONS
 
-#if !defined(OPENSSL_FIPS) || !defined(I386_ONLY)
+#if !defined(OPENSSL_FIPS) || !defined(I386_ONLY) || defined(__DJGPP__)
 
 #undef CBC_ENC_C__DONT_UPDATE_IV
 #include "ncbc_enc.c" /* DES_ncbc_encrypt */
--- OpenSSL-0.9.7/crypto/rand/rand_unix.c.ori   2003-12-27 09:01:10.000000000 -0800
+++ OpenSSL-0.9.7/crypto/rand/rand_unix.c       2004-08-02 21:40:54.000000000 -0800
@@ -142,6 +142,26 @@
        return 1;
 }
 #else
+#ifdef __DJGPP__
+int RAND_poll(void)
+{
+       long rnd = 0;
+       int i, rnd1 = 0;
+       unsigned char buf[ENTROPY_NEEDED];
+
+       for (i = 0; i < sizeof(buf); i++) {
+               srand(rawclock() + i);
+               rnd1 = rand();
+               srandom(rnd1);
+               rnd = random();
+               buf[i] = rnd;
+       }
+       RAND_add(buf, sizeof(buf), ENTROPY_NEEDED);
+       memset(buf, 0, sizeof(buf));
+
+       return 1;
+}
+#else
 int RAND_poll(void)
 {
        unsigned long l;
@@ -255,6 +275,7 @@
 
 #endif
 #endif
+#endif
 
 #if defined(OPENSSL_SYS_VXWORKS)
 int RAND_poll(void)
--- OpenSSLl-0.9.7/fips/openssl_fips_fingerprint.ori    2004-06-27 00:01:44.000000000 
-0800
+++ OpenSSLl-0.9.7/fips/openssl_fips_fingerprint        2004-08-01 17:55:24.000000000 
-0800
@@ -11,7 +11,11 @@
 # case shared libraries are built.
 if [ "X$TOP" != "X" ]
 then
-    PATH=$TOP/apps:$PATH
+   if test "$OSTYPE" = msdosdjgpp; then
+       PATH=$TOP/apps\;$PATH
+   else
+       PATH=$TOP/apps:$PATH
+   fi
     LD_LIBRARY_PATH=$TOP; export LD_LIBRARY_PATH
 else
     LD_LIBRARY_PATH=.; export LD_LIBRARY_PATH
--- OpenSSL-0.9.7/fips/aes/Makefile.orig        2004-06-27 00:01:44.000000000 -0800
+++ OpenSSL-0.9.7/fips/aes/Makefile     2004-08-06 05:41:32.000000000 -0800
@@ -19,7 +19,6 @@
 
 GENERAL=Makefile
 TEST=fips_aesavs.c
-TESTDATA=fips_aes_data
 APPS=
 
 LIB=$(TOP)/libcrypto.a
@@ -52,17 +51,15 @@
 links:
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/include/openssl $(EXHEADER)
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TEST)
-       @$(PERL) $(TOP)/util/mklink.pl $(TOP)/test $(TESTDATA)
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
 
 install:
-       @if test -n "$(EXHEADER)"; then \
-         for i in $(EXHEADER) ; \
-         do  \
+       @for i in "" $(EXHEADER) ; do \
+         if test "x" != "x$$i"; then \
            (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
            chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-         done; \
-       fi
+         fi; \
+         done
 
 tags:
        ctags $(SRC)
--- OpenSSL-0.9.7/fips/des/Makefile.orig        2004-07-17 05:00:56.000000000 -0800
+++ OpenSSL-0.9.7/fips/des/Makefile     2004-08-06 05:43:40.000000000 -0800
@@ -56,13 +56,12 @@
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
 
 install:
-       @if test -n "$(EXHEADER)"; then \
-         for i in $(EXHEADER) ; \
-         do  \
+       @for i in "" $(EXHEADER) ; do \
+         if test "x" != "x$$i"; then \
            (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
            chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-         done; \
-       fi
+         fi; \
+         done
 
 tags:
        ctags $(SRC)
--- OpenSSL-0.9.7/fips/dh/Makefile.orig 2004-06-21 01:07:38.000000000 -0800
+++ OpenSSL-0.9.7/fips/dh/Makefile      2004-08-06 05:46:06.000000000 -0800
@@ -54,13 +54,12 @@
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
 
 install:
-       @if test -n "$(EXHEADER)"; then \
-         for i in $(EXHEADER) ; \
-         do  \
+       @for i in "" $(EXHEADER) ; do \
+         if test "x" != "x$$i"; then \
            (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
            chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-         done; \
-       fi
+         fi; \
+         done
 
 tags:
        ctags $(SRC)
--- OpenSSL-0.9.7/fips/dsa/Makefile.orig        2004-06-27 00:01:46.000000000 -0800
+++ OpenSSL-0.9.7/fips/dsa/Makefile     2004-08-06 05:48:02.000000000 -0800
@@ -54,13 +54,12 @@
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
 
 install:
-       @if test -n "$(EXHEADER)"; then \
-         for i in $(EXHEADER) ; \
-         do  \
+       @for i in "" $(EXHEADER) ; do \
+         if test "x" != "x$$i"; then \
            (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
            chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-         done; \
-       fi
+         fi; \
+         done
 
 tags:
        ctags $(SRC)
--- OpenSSL-0.9.7/fips/rsa/Makefile.orig        2004-06-27 00:01:46.000000000 -0800
+++ OpenSSL-0.9.7/fips/rsa/Makefile     2004-08-06 05:50:00.000000000 -0800
@@ -54,13 +54,12 @@
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
 
 install:
-       @if test -n "$(EXHEADER)"; then \
-         for i in $(EXHEADER) ; \
-         do  \
+       @for i in "" $(EXHEADER) ; do \
+         if test "x" != "x$$i"; then \
            (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
            chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-         done; \
-       fi
+         fi; \
+         done
 
 tags:
        ctags $(SRC)
--- OpenSSL-0.9.7/fips/sha1/Makefile.orig       2004-06-27 00:01:46.000000000 -0800
+++ OpenSSL-0.9.7/fips/sha1/Makefile    2004-08-06 05:52:02.000000000 -0800
@@ -64,13 +64,12 @@
        @$(PERL) $(TOP)/util/mklink.pl $(TOP)/apps $(APPS)
 
 install:
-       @if test -n "$(EXHEADER)"; then \
-         for i in $(EXHEADER) ; \
-         do  \
+       @for i in "" $(EXHEADER) ; do \
+         if test "x" != "x$$i"; then \
            (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
            chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-         done; \
-       fi
+         fi; \
+         done
 
 tags:
        ctags $(SRC)
--- OpenSSL-0.9.7/fips/sha1/fips_sha1test.c.ori 2004-08-01 17:33:16.000000000 -0800
+++ OpenSSL-0.9.7/fips/sha1/fips_sha1test.c     2004-08-03 23:56:22.000000000 -0800
@@ -6,6 +6,11 @@
 #include <openssl/sha.h>
 #include <openssl/err.h>
 #include <openssl/fips.h>
+#ifdef __DJGPP__
+#include <io.h>
+#include <fcntl.h>
+#include <unistd.h>
+#endif
 
 #ifndef OPENSSL_FIPS
 int main(int argc, char *argv[])
@@ -64,6 +69,11 @@
     FILE *fp;
     int phase;
 
+#ifdef __DJGPP__
+    _fmode=O_BINARY;
+    if (!isatty(fileno(stdout)))
+    setmode(fileno(stdout), O_BINARY);
+#endif
     if(argc != 2)
        {
        fprintf(stderr,"%s <test vector file>\n",argv[0]);
--- OpenSSL-0.9.7/test/Makefile.ori     2004-08-01 17:37:06.000000000 -0800
+++ OpenSSL-0.9.7/test/Makefile 2004-08-01 18:34:44.000000000 -0800
@@ -320,7 +320,7 @@
          $(CC) -o $(FIPS_AESTEST)$(EXE_EXT) $(CFLAGS) $(FIPS_AESTEST).o $(PEX_LIBS) 
$(LIBCRYPTO) $(EX_LIBS) ; \
        fi
        if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > 
/dev/null; then \
-         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_AESTEST); \
+         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_AESTEST)$(EXE_EXT); \
        fi
 
 $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
@@ -394,7 +394,7 @@
          $(CC) -o $(FIPS_SHA1TEST)$(EXE_EXT) $(CFLAGS) $(FIPS_SHA1TEST).o $(PEX_LIBS) 
$(LIBCRYPTO) $(EX_LIBS) ; \
        fi
        if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > 
/dev/null; then \
-         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_SHA1TEST); \
+         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_SHA1TEST)$(EXE_EXT); \
        fi
 
 $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
@@ -493,7 +493,7 @@
          $(CC) -o $(FIPS_DESTEST)$(EXE_EXT) $(CFLAGS) $(FIPS_DESTEST).o $(PEX_LIBS) 
$(LIBCRYPTO) $(EX_LIBS) ; \
        fi
        if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > 
/dev/null; then \
-         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_DESTEST); \
+         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_DESTEST)$(EXE_EXT); \
        fi
 
 $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
@@ -511,7 +511,7 @@
          $(CC) -o $(FIPS_RANDTEST)$(EXE_EXT) $(CFLAGS) $(FIPS_RANDTEST).o $(PEX_LIBS) 
$(LIBCRYPTO) $(EX_LIBS) ; \
        fi
        if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > 
/dev/null; then \
-         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_RANDTEST); \
+         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_RANDTEST)$(EXE_EXT); \
        fi
 
 $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
@@ -537,7 +537,7 @@
          $(CC) -o $(FIPS_DSATEST)$(EXE_EXT) $(CFLAGS) $(FIPS_DSATEST).o $(PEX_LIBS) 
$(LIBCRYPTO) $(EX_LIBS) ; \
        fi
        if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > 
/dev/null; then \
-         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_DSATEST); \
+         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(FIPS_DSATEST)$(EXE_EXT); \
        fi
 
 $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
@@ -556,7 +556,7 @@
          $(CC) -o $(SSLTEST)$(EXE_EXT) $(CFLAGS) $(SSLTEST).o $(PEX_LIBS) $(LIBSSL) 
$(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
        fi
        if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > 
/dev/null; then \
-         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(SSLTEST); \
+         TOP=$(TOP) $(TOP)/fips/openssl_fips_fingerprint $(TOP)/libcrypto.a 
$(SSLTEST)$(EXE_EXT); \
        fi
 
 $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)

Reply via email to