Loading CHANGES +20 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,26 @@ Changes between 0.9.8g and 0.9.9 [xx XXX xxxx] *) Netware support: - fixed wrong usage of ioctlsocket() when build for LIBC BSD sockets - fixed do_tests.pl to run the test suite with CLIB builds too (CLIB_OPT) - added some more tests to do_tests.pl - fixed RunningProcess usage so that it works with newer LIBC NDKs too - removed usage of BN_LLONG for CLIB builds to avoid runtime dependency - added new Configure targets netware-clib-bsdsock, netware-clib-gcc, netware-clib-bsdsock-gcc, netware-libc-bsdsock-gcc - various changes to netware.pl to enable gcc-cross builds on Win32 platform - changed crypto/bio/b_sock.c to work with macro functions (CLIB BSD) - various changes to fix missing prototype warnings - fixed x86nasm.pl to create correct asm files for NASM COFF output - added AES, WHIRLPOOL and CPUID assembler code to build files - added missing AES assembler make rules to mk1mf.pl - fixed order of includes in apps/ocsp.c so that e_os.h settings apply [Guenter Knauf <eflash@gmx.net>] *) Implement remaining functionality needed to support GOST ciphersuites. Interop testing has been performed using CryptoPro implementations. [Victor B. Wagner <vitus@cryptocom.ru>] Loading Configure +14 −6 Original line number Diff line number Diff line Loading @@ -496,15 +496,20 @@ my %table=( "Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a", "debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a", # NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools # NetWare from David Ward (dsward@novell.com) # requires either MetroWerks NLM development tools, or gcc / nlmconv # NetWare defaults socket bio to WinSock sockets. However, # the builds can be configured to use BSD sockets instead. # netware-clib => legacy CLib c-runtime support "netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", "netware-clib", "mwccnlm::::::${x86_gcc_opts}::", "netware-clib-bsdsock", "mwccnlm::::::${x86_gcc_opts}::", "netware-clib-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::", "netware-clib-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::", # netware-libc => LibC/NKS support # NetWare defaults socket bio to WinSock sockets. However, the LibC build can be # configured to use BSD sockets instead. "netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", "netware-libc-bsdsock", "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:::::BN_LLONG ${x86_gcc_opts}::", "netware-libc-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::", # 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}:${x86_out_asm}:", Loading Loading @@ -549,7 +554,9 @@ my %table=( my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A VC-NT VC-CE VC-WIN32 BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock); BC-32 OS2-EMX netware-clib netware-clib-bsdsock netware-libc netware-libc-bsdsock); my $idx = 0; my $idx_cc = $idx++; Loading Loading @@ -952,6 +959,7 @@ foreach (sort (keys %disabled)) my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds; $exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw"); $exe_ext=".nlm" if ($target =~ /netware/); $exe_ext=".pm" if ($target =~ /vos/); $openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq ""); $prefix=$openssldir if $prefix eq ""; Loading Loading @@ -1669,7 +1677,7 @@ EOF } # create the ms/version32.rc file if needed if ($IsMK1MF) { if ($IsMK1MF && ($target !~ /^netware/)) { my ($v1, $v2, $v3, $v4); if ($version_num =~ /(^[0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i) { $v1=hex $1; Loading INSTALL.NW +70 −60 Original line number Diff line number Diff line Loading @@ -8,58 +8,62 @@ Notes about building OpenSSL for NetWare. BUILD PLATFORM: --------------- The build scripts (batch files, perl scripts, etc) have been developed and tested on W2K. The scripts should run fine on other Windows platforms (NT, Win9x, WinXP) but they haven't been tested. They may require some modifications. tested on W2K. The scripts should run fine on other Windows platforms (NT, Win9x, WinXP) but they have not been tested. They may require some modifications. Supported NetWare Platforms - NetWare 5.x, NetWare 6.x: ------------------------------------------ OpenSSL uses the WinSock interfaces introduced in NetWare 5. Therefore, previous versions of NetWare, 4.x and 3.x, are not supported. ------------------------------------------------------- OpenSSL can either use the WinSock interfaces introduced in NetWare 5, or the BSD socket interface. Previous versions of NetWare, 4.x and 3.x, are only supported if OpenSSL is build for CLIB and BSD sockets; WinSock builds only support NetWare 5 and up. On NetWare there are two c-runtime libraries. There is the legacy CLIB interfaces and the newer LibC interfaces. Being ANSI-C libraries, the functionality in CLIB and LibC is similar but the LibC interfaces are built interfaces and the newer LIBC interfaces. Being ANSI-C libraries, the functionality in CLIB and LIBC is similar but the LIBC interfaces are built using Novell Kernal Services (NKS) which is designed to leverage multi-processor environments. The NetWare port of OpenSSL can configured to build using CLIB or LibC. The CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LibC The NetWare port of OpenSSL can be configured to build using CLIB or LIBC. The CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LIBC build was developed and tested using the NetWare 6.0 FCS. The necessary LibC functionality ships with NetWare 6. However, earlier NetWare 5.x versions will require updates in order to run the OpenSSL LibC build. The necessary LIBC functionality ships with NetWare 6. However, earlier NetWare 5.x versions will require updates in order to run the OpenSSL LIBC build (NetWare 5.1 SP8 is known to work). As of June 2005, the LibC build can be configured to use BSD sockets instead As of June 2005, the LIBC build can be configured to use BSD sockets instead of WinSock sockets. Call Configure (usually through netware\build.bat) using a target of "netware-libc-bsdsock" instead of "netware-libc". As of June 2007, support for CLIB and BSD sockets is also now available using a target of "netware-clib-bsdsock" instead of "netware-clib"; also gcc builds are now supported on both Linux and Win32 (post 0.9.8e). REQUIRED TOOLS: --------------- Based upon the configuration and build options used, some or all of the following tools may be required: * Perl for Win32 - required (http://www.activestate.com/ActivePerl) Used to run the various perl scripts on the build platform. * Perl 5.8.0 for NetWare v3.20 (or later) - required (http://developer.novell.com) Used to run the test script on NetWare after building. * Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare - required: * Compiler / Linker - required: Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare (commercial): Provides command line tools used for building. Tools: mwccnlm.exe - C/C++ Compiler for NetWare mwldnlm.exe - Linker for NetWare mwasmnlm.exe - x86 assembler for NetWare (if using assembly option) gcc / nlmconv Cross-Compiler, available from Novell Forge (free): http://forge.novell.com/modules/xfmod/project/?aunixnw * Assemblers - optional: If you intend to build using the assembly options you will need an Loading @@ -79,11 +83,11 @@ following tools may be required: In order to build you will need a make tool. Two make tools are supported, GNU make (gmake.exe) or Microsoft nmake.exe. gmake.exe - GNU make for Windows (version 3.75 used for development) http://www.gnu.org/software/make/make.html make.exe - GNU make for Windows (version 3.75 used for development) http://gnuwin32.sourceforge.net/packages/make.htm nmake.exe - Microsoft make (Version 6.00.8168.0 used for development) http://support.microsoft.com/kb/132084/EN-US/ * Novell Developer Kit (NDK) - required: (http://developer.novell.com) Loading Loading @@ -123,14 +127,14 @@ following tools may be required: LIBC - BUILDS: Libraries for C (LibC) - LibC headers and import files If you are going to build a LibC version of OpenSSL, you will need the LibC headers and imports. The March 14, 2002 NDK release or Libraries for C (LIBC) - LIBC headers and import files If you are going to build a LIBC version of OpenSSL, you will need the LIBC headers and imports. The March 14, 2002 NDK release or later is required. NOTE: The LibC SDK includes the necessary WinSock2 support. It It is not necessary to download the WinSock2 Developer when building for LibC. The LibC SDK also includes the appropriate BSD socket support NOTE: The LIBC SDK includes the necessary WinSock2 support. It is not necessary to download the WinSock2 NDK when building for LIBC. The LIBC SDK also includes the appropriate BSD socket support if configuring to use BSD sockets. Loading @@ -143,33 +147,36 @@ The set_env.bat file is a template you can use to set up the path and environment variables you will need to build. Modify the various lines to point to YOUR tools and run set_env.bat. netware\set_env.bat [target] netware\set_env.bat <target> [compiler] target - "netware-clib" - CLIB NetWare build - "netware-libc" - LIBC NetWare build target - "netware-clib" - CLib NetWare build - "netware-libc" - LibC NetWare build compiler - "gnuc" - GNU GCC Compiler - "codewarrior" - MetroWerks CodeWarrior (default) If you don't use set_env.bat, you will need to set up the following environment variables: path - Set path to point to the tools you will use. PATH - Set PATH to point to the tools you will use. MWCIncludes - The location of the NDK include files. INCLUDE - The location of the NDK include files. CLIB ex: set MWCIncludes=c:\ndk\nwsdk\include\nlm LibC ex: set MWCIncludes=c:\ndk\libc\include CLIB ex: set INCLUDE=c:\ndk\nwsdk\include\nlm LIBC ex: set INCLUDE=c:\ndk\libc\include PRELUDE - The absolute path of the prelude object to link with. For 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 use the "libcpre.o" file delivered with the LibC NDK components. with the Metrowerks PDK for NetWare. For a LIBC build you should use the "libcpre.o" file delivered with the LIBC NDK components. CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.o 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. CLIB ex: set IMPORTS=c:\ndk\nwsdk\imports LibC ex: set IMPORTS=c:\ndk\libc\imports LIBC ex: set IMPORTS=c:\ndk\libc\imports In order to build, you need to run the Perl scripts to configure the build Loading @@ -182,9 +189,10 @@ the assembly code. Always run build.bat from the "openssl" directory. netware\build [target] [debug opts] [assembly opts] [configure opts] target - "netware-clib" - CLib NetWare build (WinSock Sockets) - "netware-libc" - LibC NetWare build (WinSock Sockets) - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) target - "netware-clib" - CLIB NetWare build (WinSock Sockets) - "netware-clib-bsdsock" - CLIB NetWare build (BSD Sockets) - "netware-libc" - LIBC NetWare build (WinSock Sockets) - "netware-libc-bsdsock" - LIBC NetWare build (BSD Sockets) debug opts - "debug" - build debug Loading @@ -193,25 +201,27 @@ the assembly code. Always run build.bat from the "openssl" directory. "no-asm" - don't use assembly configure opts- all unrecognized arguments are passed to the perl configure script perl 'configure' script. See that script for internal documentation regarding options that are available. examples: CLIB build, debug, without assembly: netware\build.bat netware-clib debug no-asm LibC build, non-debug, using NASM assembly: netware\build.bat netware-libc nw-nasm LIBC build, non-debug, using NASM assembly, add mdc2 support: netware\build.bat netware-libc nw-nasm enable-mdc2 LibC build, BSD sockets, non-debug, without assembly: LIBC build, BSD sockets, non-debug, without assembly: netware\build.bat netware-libc-bsdsock no-asm Running build.bat generates a make file to be processed by your make tool (gmake or nmake): CLIB ex: gmake -f netware\nlm_clib_dbg.mak LibC ex: gmake -f netware\nlm_libc.mak LibC ex: gmake -f netware\nlm_libc_bsdsock.mak LIBC ex: gmake -f netware\nlm_libc.mak LIBC ex: gmake -f netware\nlm_libc_bsdsock.mak You can also run the build scripts manually if you do not want to use the Loading @@ -220,7 +230,7 @@ subdirectory (in the order listed below): perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock] configures no assembly build for specified netware environment (CLIB or LibC). (CLIB or LIBC). perl util\mkfiles.pl >MINFO generates a listing of source files (used by mk1mf) Loading Loading @@ -250,12 +260,12 @@ The output from the build is placed in the following directories: tmp_nw_clib - temporary build files outinc_nw_clib - necesary include files LibC Debug build: LIBC Debug build: out_nw_libc.dbg - static libs & test nlm(s) tmp_nw_libc.dbg - temporary build files outinc_nw_libc - necessary include files LibC Non-debug build: LIBC Non-debug build: out_nw_libc - static libs & test nlm(s) tmp_nw_libc - temporary build files outinc_nw_libc - necesary include files Loading @@ -281,7 +291,7 @@ To run cpy_tests.bat: NetWare drive - drive letter of mapped drive CLIB ex: netware\cpy_tests out_nw_clib m: LibC ex: netware\cpy_tests out_nw_libc m: LIBC ex: netware\cpy_tests out_nw_libc m: The Perl script, "do_tests.pl", in the "OpenSSL" directory on the server Loading Loading @@ -356,9 +366,9 @@ clean up the resources! Multi-threaded Development --------------------------- The NetWare version of OpenSSL is thread-safe however, multi-threaded The NetWare version of OpenSSL is thread-safe, however multi-threaded applications must provide the necessary locking function callbacks. This is described in doc\threads.doc. The file "openssl\crypto\threads\mttest.c" is described in doc\threads.doc. The file "openssl-x.x.x\crypto\threads\mttest.c" is a multi-threaded test program and demonstrates the locking functions. Loading Loading @@ -428,7 +438,7 @@ Makefile "vclean" ------------------ The generated makefile has a "vclean" target which cleans up the build directories. If you have been building successfully and suddenly experience problems, use "vclean" (gmake -f netware\nlm.mak vclean) and retry. experience problems, use "vclean" (gmake -f netware\nlm_xxxx.mak vclean) and retry. "Undefined Symbol" Linker errors Loading Netware/build.bat +31 −7 Original line number Diff line number Diff line Loading @@ -7,8 +7,9 @@ rem usage: rem build [target] [debug opts] [assembly opts] [configure opts] rem rem target - "netware-clib" - CLib NetWare build (WinSock Sockets) rem - "netware-libc" - LibC NKS NetWare build (WinSock Sockets) rem - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets) rem - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) rem - "netware-libc" - LibC NetWare build (WinSock Sockets) rem - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) rem rem debug opts - "debug" - build debug rem Loading Loading @@ -75,6 +76,8 @@ if "%1" == "nw-mwasm" set NO_ASM= if "%1" == "nw-mwasm" set ARG_PROCESSED=YES if "%1" == "netware-clib" set BLD_TARGET=netware-clib if "%1" == "netware-clib" set ARG_PROCESSED=YES if "%1" == "netware-clib-bsdsock" set BLD_TARGET=netware-clib-bsdsock if "%1" == "netware-clib-bsdsock" set ARG_PROCESSED=YES if "%1" == "netware-libc" set BLD_TARGET=netware-libc if "%1" == "netware-libc" set ARG_PROCESSED=YES if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock Loading @@ -94,6 +97,7 @@ if "%BLD_TARGET%" == "no_target" goto no_target rem build the nlm make file name which includes target and debug info set NLM_MAKE= if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib if "%BLD_TARGET%" == "netware-clib-bsdsock" set NLM_MAKE=netware\nlm_clib_bsdsock if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak Loading @@ -110,7 +114,14 @@ echo Generating x86 for %ASSEMBLER% assembler echo Bignum cd crypto\bn\asm perl x86.pl %ASM_MODE% > bn-nw.asm rem perl x86.pl %ASM_MODE% > bn-nw.asm perl bn-586.pl %ASM_MODE% > bn-nw.asm perl co-586.pl %ASM_MODE% > co-nw.asm cd ..\..\.. echo AES cd crypto\aes\asm perl aes-586.pl %ASM_MODE% > a-nw.asm cd ..\..\.. echo DES Loading Loading @@ -160,6 +171,16 @@ cd crypto\rc5\asm perl rc5-586.pl %ASM_MODE% > r5-nw.asm cd ..\..\.. echo WHIRLPOOL cd crypto\whrlpool\asm perl wp-mmx.pl %ASM_MODE% > wp-nw.asm cd ..\..\.. echo CPUID cd crypto perl x86cpuid.pl %ASM_MODE% > x86cpuid-nw.asm cd ..\ rem =============================================================== rem :do_config Loading @@ -176,8 +197,10 @@ echo mk1mf.pl options: %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% echo . perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE% make -f %NLM_MAKE% vclean echo . echo The makefile "%NLM_MAKE%" has been created use your maketool to echo build (ex: gmake -f %NLM_MAKE%) echo build (ex: make -f %NLM_MAKE%) goto end rem =============================================================== Loading @@ -189,8 +212,9 @@ echo . echo . usage: build [target] [debug opts] [assembly opts] [configure opts] echo . echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets) echo . - "netware-libc" - LibC NKS NetWare build (WinSock Sockets) echo . - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets) echo . - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) echo . - "netware-libc" - LibC NetWare build (WinSock Sockets) echo . - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) echo . echo . debug opts - "debug" - build debug echo . Loading Netware/cpy_tests.bat +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ copy %loc%\test\testsid.pem %2\openssl\test\ copy %loc%\test\testx509.pem %2\openssl\test\ copy %loc%\test\v3-cert1.pem %2\openssl\test\ copy %loc%\test\v3-cert2.pem %2\openssl\test\ copy %loc%\crypto\evp\evptests.txt %2\openssl\test\ rem copy the apps directory stuff copy %loc%\apps\client.pem %2\openssl\apps\ Loading Loading
CHANGES +20 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,26 @@ Changes between 0.9.8g and 0.9.9 [xx XXX xxxx] *) Netware support: - fixed wrong usage of ioctlsocket() when build for LIBC BSD sockets - fixed do_tests.pl to run the test suite with CLIB builds too (CLIB_OPT) - added some more tests to do_tests.pl - fixed RunningProcess usage so that it works with newer LIBC NDKs too - removed usage of BN_LLONG for CLIB builds to avoid runtime dependency - added new Configure targets netware-clib-bsdsock, netware-clib-gcc, netware-clib-bsdsock-gcc, netware-libc-bsdsock-gcc - various changes to netware.pl to enable gcc-cross builds on Win32 platform - changed crypto/bio/b_sock.c to work with macro functions (CLIB BSD) - various changes to fix missing prototype warnings - fixed x86nasm.pl to create correct asm files for NASM COFF output - added AES, WHIRLPOOL and CPUID assembler code to build files - added missing AES assembler make rules to mk1mf.pl - fixed order of includes in apps/ocsp.c so that e_os.h settings apply [Guenter Knauf <eflash@gmx.net>] *) Implement remaining functionality needed to support GOST ciphersuites. Interop testing has been performed using CryptoPro implementations. [Victor B. Wagner <vitus@cryptocom.ru>] Loading
Configure +14 −6 Original line number Diff line number Diff line Loading @@ -496,15 +496,20 @@ my %table=( "Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_coff_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a", "debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a", # NetWare from David Ward (dsward@novell.com) - requires MetroWerks NLM development tools # NetWare from David Ward (dsward@novell.com) # requires either MetroWerks NLM development tools, or gcc / nlmconv # NetWare defaults socket bio to WinSock sockets. However, # the builds can be configured to use BSD sockets instead. # netware-clib => legacy CLib c-runtime support "netware-clib", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", "netware-clib", "mwccnlm::::::${x86_gcc_opts}::", "netware-clib-bsdsock", "mwccnlm::::::${x86_gcc_opts}::", "netware-clib-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -I/ndk/ws295sdk/include -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::", "netware-clib-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/nwsdk/include/nlm -DNETWARE_BSDSOCK -DNETDB_USE_INTERNET -DL_ENDIAN -DNETWARE_CLIB -DOPENSSL_SYSNAME_NETWARE -O2 -Wall:::::${x86_gcc_opts}::", # netware-libc => LibC/NKS support # NetWare defaults socket bio to WinSock sockets. However, the LibC build can be # configured to use BSD sockets instead. "netware-libc", "mwccnlm::::::BN_LLONG ${x86_gcc_opts}::", "netware-libc-bsdsock", "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:::::BN_LLONG ${x86_gcc_opts}::", "netware-libc-bsdsock-gcc", "i586-netware-gcc:-nostdinc -I/ndk/libc/include -DNETWARE_BSDSOCK -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall:::::BN_LLONG ${x86_gcc_opts}::", # 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}:${x86_out_asm}:", Loading Loading @@ -549,7 +554,9 @@ my %table=( my @MK1MF_Builds=qw(VC-WIN64I VC-WIN64A VC-NT VC-CE VC-WIN32 BC-32 OS2-EMX netware-clib netware-libc netware-libc-bsdsock); BC-32 OS2-EMX netware-clib netware-clib-bsdsock netware-libc netware-libc-bsdsock); my $idx = 0; my $idx_cc = $idx++; Loading Loading @@ -952,6 +959,7 @@ foreach (sort (keys %disabled)) my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds; $exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw"); $exe_ext=".nlm" if ($target =~ /netware/); $exe_ext=".pm" if ($target =~ /vos/); $openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq ""); $prefix=$openssldir if $prefix eq ""; Loading Loading @@ -1669,7 +1677,7 @@ EOF } # create the ms/version32.rc file if needed if ($IsMK1MF) { if ($IsMK1MF && ($target !~ /^netware/)) { my ($v1, $v2, $v3, $v4); if ($version_num =~ /(^[0-9a-f]{1})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i) { $v1=hex $1; Loading
INSTALL.NW +70 −60 Original line number Diff line number Diff line Loading @@ -8,58 +8,62 @@ Notes about building OpenSSL for NetWare. BUILD PLATFORM: --------------- The build scripts (batch files, perl scripts, etc) have been developed and tested on W2K. The scripts should run fine on other Windows platforms (NT, Win9x, WinXP) but they haven't been tested. They may require some modifications. tested on W2K. The scripts should run fine on other Windows platforms (NT, Win9x, WinXP) but they have not been tested. They may require some modifications. Supported NetWare Platforms - NetWare 5.x, NetWare 6.x: ------------------------------------------ OpenSSL uses the WinSock interfaces introduced in NetWare 5. Therefore, previous versions of NetWare, 4.x and 3.x, are not supported. ------------------------------------------------------- OpenSSL can either use the WinSock interfaces introduced in NetWare 5, or the BSD socket interface. Previous versions of NetWare, 4.x and 3.x, are only supported if OpenSSL is build for CLIB and BSD sockets; WinSock builds only support NetWare 5 and up. On NetWare there are two c-runtime libraries. There is the legacy CLIB interfaces and the newer LibC interfaces. Being ANSI-C libraries, the functionality in CLIB and LibC is similar but the LibC interfaces are built interfaces and the newer LIBC interfaces. Being ANSI-C libraries, the functionality in CLIB and LIBC is similar but the LIBC interfaces are built using Novell Kernal Services (NKS) which is designed to leverage multi-processor environments. The NetWare port of OpenSSL can configured to build using CLIB or LibC. The CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LibC The NetWare port of OpenSSL can be configured to build using CLIB or LIBC. The CLIB build was developed and tested using NetWare 5.0 sp6.0a. The LIBC build was developed and tested using the NetWare 6.0 FCS. The necessary LibC functionality ships with NetWare 6. However, earlier NetWare 5.x versions will require updates in order to run the OpenSSL LibC build. The necessary LIBC functionality ships with NetWare 6. However, earlier NetWare 5.x versions will require updates in order to run the OpenSSL LIBC build (NetWare 5.1 SP8 is known to work). As of June 2005, the LibC build can be configured to use BSD sockets instead As of June 2005, the LIBC build can be configured to use BSD sockets instead of WinSock sockets. Call Configure (usually through netware\build.bat) using a target of "netware-libc-bsdsock" instead of "netware-libc". As of June 2007, support for CLIB and BSD sockets is also now available using a target of "netware-clib-bsdsock" instead of "netware-clib"; also gcc builds are now supported on both Linux and Win32 (post 0.9.8e). REQUIRED TOOLS: --------------- Based upon the configuration and build options used, some or all of the following tools may be required: * Perl for Win32 - required (http://www.activestate.com/ActivePerl) Used to run the various perl scripts on the build platform. * Perl 5.8.0 for NetWare v3.20 (or later) - required (http://developer.novell.com) Used to run the test script on NetWare after building. * Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare - required: * Compiler / Linker - required: Metrowerks CodeWarrior PDK 2.1 (or later) for NetWare (commercial): Provides command line tools used for building. Tools: mwccnlm.exe - C/C++ Compiler for NetWare mwldnlm.exe - Linker for NetWare mwasmnlm.exe - x86 assembler for NetWare (if using assembly option) gcc / nlmconv Cross-Compiler, available from Novell Forge (free): http://forge.novell.com/modules/xfmod/project/?aunixnw * Assemblers - optional: If you intend to build using the assembly options you will need an Loading @@ -79,11 +83,11 @@ following tools may be required: In order to build you will need a make tool. Two make tools are supported, GNU make (gmake.exe) or Microsoft nmake.exe. gmake.exe - GNU make for Windows (version 3.75 used for development) http://www.gnu.org/software/make/make.html make.exe - GNU make for Windows (version 3.75 used for development) http://gnuwin32.sourceforge.net/packages/make.htm nmake.exe - Microsoft make (Version 6.00.8168.0 used for development) http://support.microsoft.com/kb/132084/EN-US/ * Novell Developer Kit (NDK) - required: (http://developer.novell.com) Loading Loading @@ -123,14 +127,14 @@ following tools may be required: LIBC - BUILDS: Libraries for C (LibC) - LibC headers and import files If you are going to build a LibC version of OpenSSL, you will need the LibC headers and imports. The March 14, 2002 NDK release or Libraries for C (LIBC) - LIBC headers and import files If you are going to build a LIBC version of OpenSSL, you will need the LIBC headers and imports. The March 14, 2002 NDK release or later is required. NOTE: The LibC SDK includes the necessary WinSock2 support. It It is not necessary to download the WinSock2 Developer when building for LibC. The LibC SDK also includes the appropriate BSD socket support NOTE: The LIBC SDK includes the necessary WinSock2 support. It is not necessary to download the WinSock2 NDK when building for LIBC. The LIBC SDK also includes the appropriate BSD socket support if configuring to use BSD sockets. Loading @@ -143,33 +147,36 @@ The set_env.bat file is a template you can use to set up the path and environment variables you will need to build. Modify the various lines to point to YOUR tools and run set_env.bat. netware\set_env.bat [target] netware\set_env.bat <target> [compiler] target - "netware-clib" - CLIB NetWare build - "netware-libc" - LIBC NetWare build target - "netware-clib" - CLib NetWare build - "netware-libc" - LibC NetWare build compiler - "gnuc" - GNU GCC Compiler - "codewarrior" - MetroWerks CodeWarrior (default) If you don't use set_env.bat, you will need to set up the following environment variables: path - Set path to point to the tools you will use. PATH - Set PATH to point to the tools you will use. MWCIncludes - The location of the NDK include files. INCLUDE - The location of the NDK include files. CLIB ex: set MWCIncludes=c:\ndk\nwsdk\include\nlm LibC ex: set MWCIncludes=c:\ndk\libc\include CLIB ex: set INCLUDE=c:\ndk\nwsdk\include\nlm LIBC ex: set INCLUDE=c:\ndk\libc\include PRELUDE - The absolute path of the prelude object to link with. For 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 use the "libcpre.o" file delivered with the LibC NDK components. with the Metrowerks PDK for NetWare. For a LIBC build you should use the "libcpre.o" file delivered with the LIBC NDK components. CLIB ex: set PRELUDE=c:\ndk\nwsdk\imports\clibpre.o 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. CLIB ex: set IMPORTS=c:\ndk\nwsdk\imports LibC ex: set IMPORTS=c:\ndk\libc\imports LIBC ex: set IMPORTS=c:\ndk\libc\imports In order to build, you need to run the Perl scripts to configure the build Loading @@ -182,9 +189,10 @@ the assembly code. Always run build.bat from the "openssl" directory. netware\build [target] [debug opts] [assembly opts] [configure opts] target - "netware-clib" - CLib NetWare build (WinSock Sockets) - "netware-libc" - LibC NetWare build (WinSock Sockets) - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) target - "netware-clib" - CLIB NetWare build (WinSock Sockets) - "netware-clib-bsdsock" - CLIB NetWare build (BSD Sockets) - "netware-libc" - LIBC NetWare build (WinSock Sockets) - "netware-libc-bsdsock" - LIBC NetWare build (BSD Sockets) debug opts - "debug" - build debug Loading @@ -193,25 +201,27 @@ the assembly code. Always run build.bat from the "openssl" directory. "no-asm" - don't use assembly configure opts- all unrecognized arguments are passed to the perl configure script perl 'configure' script. See that script for internal documentation regarding options that are available. examples: CLIB build, debug, without assembly: netware\build.bat netware-clib debug no-asm LibC build, non-debug, using NASM assembly: netware\build.bat netware-libc nw-nasm LIBC build, non-debug, using NASM assembly, add mdc2 support: netware\build.bat netware-libc nw-nasm enable-mdc2 LibC build, BSD sockets, non-debug, without assembly: LIBC build, BSD sockets, non-debug, without assembly: netware\build.bat netware-libc-bsdsock no-asm Running build.bat generates a make file to be processed by your make tool (gmake or nmake): CLIB ex: gmake -f netware\nlm_clib_dbg.mak LibC ex: gmake -f netware\nlm_libc.mak LibC ex: gmake -f netware\nlm_libc_bsdsock.mak LIBC ex: gmake -f netware\nlm_libc.mak LIBC ex: gmake -f netware\nlm_libc_bsdsock.mak You can also run the build scripts manually if you do not want to use the Loading @@ -220,7 +230,7 @@ subdirectory (in the order listed below): perl configure no-asm [other config opts] [netware-clib|netware-libc|netware-libc-bsdsock] configures no assembly build for specified netware environment (CLIB or LibC). (CLIB or LIBC). perl util\mkfiles.pl >MINFO generates a listing of source files (used by mk1mf) Loading Loading @@ -250,12 +260,12 @@ The output from the build is placed in the following directories: tmp_nw_clib - temporary build files outinc_nw_clib - necesary include files LibC Debug build: LIBC Debug build: out_nw_libc.dbg - static libs & test nlm(s) tmp_nw_libc.dbg - temporary build files outinc_nw_libc - necessary include files LibC Non-debug build: LIBC Non-debug build: out_nw_libc - static libs & test nlm(s) tmp_nw_libc - temporary build files outinc_nw_libc - necesary include files Loading @@ -281,7 +291,7 @@ To run cpy_tests.bat: NetWare drive - drive letter of mapped drive CLIB ex: netware\cpy_tests out_nw_clib m: LibC ex: netware\cpy_tests out_nw_libc m: LIBC ex: netware\cpy_tests out_nw_libc m: The Perl script, "do_tests.pl", in the "OpenSSL" directory on the server Loading Loading @@ -356,9 +366,9 @@ clean up the resources! Multi-threaded Development --------------------------- The NetWare version of OpenSSL is thread-safe however, multi-threaded The NetWare version of OpenSSL is thread-safe, however multi-threaded applications must provide the necessary locking function callbacks. This is described in doc\threads.doc. The file "openssl\crypto\threads\mttest.c" is described in doc\threads.doc. The file "openssl-x.x.x\crypto\threads\mttest.c" is a multi-threaded test program and demonstrates the locking functions. Loading Loading @@ -428,7 +438,7 @@ Makefile "vclean" ------------------ The generated makefile has a "vclean" target which cleans up the build directories. If you have been building successfully and suddenly experience problems, use "vclean" (gmake -f netware\nlm.mak vclean) and retry. experience problems, use "vclean" (gmake -f netware\nlm_xxxx.mak vclean) and retry. "Undefined Symbol" Linker errors Loading
Netware/build.bat +31 −7 Original line number Diff line number Diff line Loading @@ -7,8 +7,9 @@ rem usage: rem build [target] [debug opts] [assembly opts] [configure opts] rem rem target - "netware-clib" - CLib NetWare build (WinSock Sockets) rem - "netware-libc" - LibC NKS NetWare build (WinSock Sockets) rem - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets) rem - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) rem - "netware-libc" - LibC NetWare build (WinSock Sockets) rem - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) rem rem debug opts - "debug" - build debug rem Loading Loading @@ -75,6 +76,8 @@ if "%1" == "nw-mwasm" set NO_ASM= if "%1" == "nw-mwasm" set ARG_PROCESSED=YES if "%1" == "netware-clib" set BLD_TARGET=netware-clib if "%1" == "netware-clib" set ARG_PROCESSED=YES if "%1" == "netware-clib-bsdsock" set BLD_TARGET=netware-clib-bsdsock if "%1" == "netware-clib-bsdsock" set ARG_PROCESSED=YES if "%1" == "netware-libc" set BLD_TARGET=netware-libc if "%1" == "netware-libc" set ARG_PROCESSED=YES if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock Loading @@ -94,6 +97,7 @@ if "%BLD_TARGET%" == "no_target" goto no_target rem build the nlm make file name which includes target and debug info set NLM_MAKE= if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib if "%BLD_TARGET%" == "netware-clib-bsdsock" set NLM_MAKE=netware\nlm_clib_bsdsock if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak Loading @@ -110,7 +114,14 @@ echo Generating x86 for %ASSEMBLER% assembler echo Bignum cd crypto\bn\asm perl x86.pl %ASM_MODE% > bn-nw.asm rem perl x86.pl %ASM_MODE% > bn-nw.asm perl bn-586.pl %ASM_MODE% > bn-nw.asm perl co-586.pl %ASM_MODE% > co-nw.asm cd ..\..\.. echo AES cd crypto\aes\asm perl aes-586.pl %ASM_MODE% > a-nw.asm cd ..\..\.. echo DES Loading Loading @@ -160,6 +171,16 @@ cd crypto\rc5\asm perl rc5-586.pl %ASM_MODE% > r5-nw.asm cd ..\..\.. echo WHIRLPOOL cd crypto\whrlpool\asm perl wp-mmx.pl %ASM_MODE% > wp-nw.asm cd ..\..\.. echo CPUID cd crypto perl x86cpuid.pl %ASM_MODE% > x86cpuid-nw.asm cd ..\ rem =============================================================== rem :do_config Loading @@ -176,8 +197,10 @@ echo mk1mf.pl options: %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% echo . perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE% make -f %NLM_MAKE% vclean echo . echo The makefile "%NLM_MAKE%" has been created use your maketool to echo build (ex: gmake -f %NLM_MAKE%) echo build (ex: make -f %NLM_MAKE%) goto end rem =============================================================== Loading @@ -189,8 +212,9 @@ echo . echo . usage: build [target] [debug opts] [assembly opts] [configure opts] echo . echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets) echo . - "netware-libc" - LibC NKS NetWare build (WinSock Sockets) echo . - "netware-libc-bsdsock" - LibC NKS NetWare build (BSD Sockets) echo . - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) echo . - "netware-libc" - LibC NetWare build (WinSock Sockets) echo . - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) echo . echo . debug opts - "debug" - build debug echo . Loading
Netware/cpy_tests.bat +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ copy %loc%\test\testsid.pem %2\openssl\test\ copy %loc%\test\testx509.pem %2\openssl\test\ copy %loc%\test\v3-cert1.pem %2\openssl\test\ copy %loc%\test\v3-cert2.pem %2\openssl\test\ copy %loc%\crypto\evp\evptests.txt %2\openssl\test\ rem copy the apps directory stuff copy %loc%\apps\client.pem %2\openssl\apps\ Loading