NetWare fixes provided by Verdon Walker for OpenSSL 0.9.8-dev.

The changes have been mailed to <crypt@bis.doc.gov> as well.

PR: 903
This commit is contained in:
Richard Levitte 2004-06-28 11:55:28 +00:00
parent 7d3932e8cf
commit 47c1735acd
7 changed files with 59 additions and 38 deletions

View File

@ -529,6 +529,7 @@ my %table=(
"netware-clib", "mwccnlm:::::${x86_gcc_opts}:::", "netware-clib", "mwccnlm:::::${x86_gcc_opts}:::",
# netware-libc => LibC/NKS support # netware-libc => LibC/NKS support
"netware-libc", "mwccnlm:::::BN_LLONG ${x86_gcc_opts}:::", "netware-libc", "mwccnlm:::::BN_LLONG ${x86_gcc_opts}:::",
"netware-libc-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall::::${x86_gcc_opts}:::",
# DJGPP # 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 -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::",

View File

@ -149,13 +149,11 @@ environment variables:
LibC ex: set MWCIncludes=c:\ndk\libc\include LibC ex: set MWCIncludes=c:\ndk\libc\include
PRELUDE - The absolute path of the prelude object to link with. For PRELUDE - The absolute path of the prelude object to link with. For
a CLIB build it is recommended you use the "nwpre.obj" file shipped a CLIB build it is recommended you use the "clibpre.o" files shipped
with the Metrowerks PDK for NetWare. For a LibC build you should with the Metrowerks PDK for NetWare. For a LibC build you should
use the "libcpre.o" file delivered with the LibC NDK components. use the "libcpre.o" file delivered with the LibC NDK components.
CLIB ex: set PRELUDE=c:\codewar\novell support\metrowerks support\ CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.o
libraries\runtime\nwpre.obj
LibC ex: set PRELUDE=c:\ndk\libc\imports\libcpre.o LibC ex: set PRELUDE=c:\ndk\libc\imports\libcpre.o
IMPORTS - The locaton of the NDK import files. IMPORTS - The locaton of the NDK import files.
@ -435,3 +433,4 @@ the import files. The issues should be fixed in the September 2001 release
of the NDK. If you experience the problems you can temporarily of the NDK. If you experience the problems you can temporarily
work around it by manually adding the missing symbols to your version of work around it by manually adding the missing symbols to your version of
"clib.imp". "clib.imp".

View File

@ -60,10 +60,10 @@ if "%LIBC_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\libc\imports
if "%CLIB_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\nwsdk\imports if "%CLIB_BUILD%" == "Y" set IMPORTS=%TOOLS%\ndk\nwsdk\imports
rem Set PRELUDE to the absolute path of the prelude object to link with in rem Set PRELUDE to the absolute path of the prelude object to link with in
rem the Metrowerks NetWare PDK - NOTE: for Clib builds "nwpre.obj" is rem the Metrowerks NetWare PDK - NOTE: for Clib builds "clibpre.o" is
rem recommended, for LibC NKS builds libcpre.o must be used rem recommended, for LibC NKS builds libcpre.o must be used
if "%LIBC_BUILD%" == "Y" set PRELUDE=%TOOLS%\ndk\libc\imports\libcpre.o if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.o
if "%CLIB_BUILD%" == "Y" set PRELUDE=%TOOLS%\codewar\pdk_21\novell support\metrowerks support\libraries\runtime\nwpre.obj if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.o
if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build

View File

@ -690,6 +690,16 @@ re_start:
} else i=select(width,(void *)&readfds,(void *)&writefds, } else i=select(width,(void *)&readfds,(void *)&writefds,
NULL,NULL); NULL,NULL);
} }
#elif defined(OPENSSL_SYS_NETWARE)
if(!write_tty) {
if(read_tty) {
tv.tv_sec = 1;
tv.tv_usec = 0;
i=select(width,(void *)&readfds,(void *)&writefds,
NULL,&tv);
} else i=select(width,(void *)&readfds,(void *)&writefds,
NULL,NULL);
}
#else #else
i=select(width,(void *)&readfds,(void *)&writefds, i=select(width,(void *)&readfds,(void *)&writefds,
NULL,NULL); NULL,NULL);

View File

@ -1,4 +1,4 @@
/* crypto/rand/rand_win.c */ /* crypto/rand/rand_nw.c */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved. * All rights reserved.
* *
@ -116,7 +116,7 @@
#if defined (OPENSSL_SYS_NETWARE) #if defined (OPENSSL_SYS_NETWARE)
#if defined(NETWARE_LIBC) #if defined(NETWARE_LIBC)
#include <nks\thread.h> #include <nks/thread.h>
#endif #endif
extern long RunningProcess; extern long RunningProcess;
@ -147,11 +147,16 @@ int RAND_poll(void)
for( i=2; i<ENTROPY_NEEDED; i++) for( i=2; i<ENTROPY_NEEDED; i++)
{ {
#ifdef __MWERKS__
asm asm
{ {
rdtsc rdtsc
mov tsc, eax mov tsc, eax
} }
#else
asm volatile("rdtsc":"=A" (tsc));
#endif
RAND_add(&tsc, sizeof(tsc), 1); RAND_add(&tsc, sizeof(tsc), 1);
l = GetSuperHighResolutionTimer(); l = GetSuperHighResolutionTimer();

View File

@ -161,6 +161,7 @@ int main(int argc, char *argv[])
#ifdef OPENSSL_SYS_NETWARE #ifdef OPENSSL_SYS_NETWARE
if (err) printf("ERROR: %d\n", err); if (err) printf("ERROR: %d\n", err);
#endif #endif
EVP_MD_CTX_cleanup(&c);
EXIT(err); EXIT(err);
return(0); return(0);
} }

5
e_os.h
View File

@ -181,6 +181,11 @@ extern "C" {
#define closesocket(s) close(s) #define closesocket(s) close(s)
#define readsocket(s,b,n) read((s),(b),(n)) #define readsocket(s,b,n) read((s),(b),(n))
#define writesocket(s,b,n) write((s),(char *)(b),(n)) #define writesocket(s,b,n) write((s),(char *)(b),(n))
#elif defined(OPENSSL_SYS_NETWARE)
#define get_last_socket_error() WSAGetLastError()
#define clear_socket_error() WSASetLastError(0)
#define readsocket(s,b,n) recv((s),(b),(n),0)
#define writesocket(s,b,n) send((s),(b),(n),0)
#else #else
#define get_last_socket_error() errno #define get_last_socket_error() errno
#define clear_socket_error() errno=0 #define clear_socket_error() errno=0