Loading Configure +2 −2 Original line number Diff line number Diff line Loading @@ -456,8 +456,8 @@ my %table=( "OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::", # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64 "VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32", "VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32", "VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32", "VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32", # Visual C targets "VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32", Loading INSTALL.W32 +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ ---------------------------------- [Instructions for building for Windows CE can be found in INSTALL.WCE] [Instructions for building for Win64 can be found in INSTALL.W64] Heres a few comments about building OpenSSL in Windows environments. Most of this is tested on Win32 but it may also work in Win 3.1 with some Loading INSTALL.W64 0 → 100644 +66 −0 Original line number Diff line number Diff line INSTALLATION ON THE WIN64 PLATFORM ---------------------------------- Caveat lector ------------- As of moment of this writing Win64 support is classified "initial" for the following reasons. - No assembler modules are engaged upon initial 0.9.8 release. - API might change within 0.9.8 life-span, *but* in a manner which doesn't break backward binary compatibility. Or in other words, application programs compiled with initial 0.9.8 headers will be expected to work with future minor release .DLL without need to re-compile, even if future minor release features modified API. - Above mentioned API modifications have everything to do with elimination of a number of limitations, which are normally considered inherent to 32-bit platforms. Which in turn is why they are treated as limitations on 64-bit platform such as Win64:-) The current list comprises [but not necessarily limited to]: - null-terminated strings may not be longer than 2G-1 bytes, longer strings are treated as zero-length; - dynamically and *internally* allocated chunks can't be larger than 2G-1 bytes; - inability to encrypt/decrypt chunks of data larger than 4GB [it's possibly to *hash* chunks of arbitrary size through]; Neither of these is actually big deal and hardly encountered in real-life applications. Compiling procedure ------------------- You will need Perl. You can run under Cygwin or you can download ActiveState Perl from http://www.activestate.com/ActivePerl. You will need Microsoft Platform SDK, available for download at http://www.microsoft.com/msdownload/platformsdk/sdkupdate/. As per April 2005 Platform SDK is equipped with Win64 compilers, as well as assemblers, but it might change in the future. To build for Win64/x64: > perl Configure VC-WIN64A > ms\do_win64a > nmake -f ms\ntdll.mak > cd out32dll > ..\ms\test To build for Win64/IA64: > perl Configure VC-WIN64I > ms\do_win64i > nmake -f ms\ntdll.mak > cd out32dll > ..\ms\test Naturally test-suite itself has to be executed on the target platform. Installation ------------ TBD, for now see INSTALL.W32. crypto/cryptlib.c +1 −1 Original line number Diff line number Diff line Loading @@ -545,7 +545,6 @@ const char *CRYPTO_get_lock_name(int type) unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } int OPENSSL_NONPIC_relocated=0; #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) #define OPENSSL_CPUID_SETUP Loading @@ -572,6 +571,7 @@ void OPENSSL_cpuid_setup(void) #else unsigned long *OPENSSL_ia32cap_loc(void) { return NULL; } #endif int OPENSSL_NONPIC_relocated = 0; #if !defined(OPENSSL_CPUID_SETUP) void OPENSSL_cpuid_setup(void) {} #endif Loading crypto/mem_dbg.c +8 −0 Original line number Diff line number Diff line Loading @@ -252,8 +252,16 @@ long CRYPTO_dbg_get_options(void) /* static int mem_cmp(MEM *a, MEM *b) */ static int mem_cmp(const void *a_void, const void *b_void) { #ifdef _WIN64 const char *a=(const char *)((const MEM *)a_void)->addr, *b=(const char *)((const MEM *)b_void)->addr; if (a==b) return 0; else if (a>b) return 1; else return -1; #else return((const char *)((const MEM *)a_void)->addr - (const char *)((const MEM *)b_void)->addr); #endif } /* static unsigned long mem_hash(MEM *a) */ Loading Loading
Configure +2 −2 Original line number Diff line number Diff line Loading @@ -456,8 +456,8 @@ my %table=( "OS390-Unix","c89.sh:-O -DB_ENDIAN -DCHARSET_EBCDIC -DNO_SYS_PARAM_H -D_ALL_SOURCE::(unknown):::THIRTY_TWO_BIT DES_PTR DES_UNROLL MD2_CHAR RC4_INDEX RC4_CHAR BF_PTR:::", # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64 "VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32", "VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT EXPORT_VAR_AS_FN:${no_asm}:win32", "VC-WIN64I","cl::::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32", "VC-WIN64A","cl::::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:${no_asm}:win32", # Visual C targets "VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32", Loading
INSTALL.W32 +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ ---------------------------------- [Instructions for building for Windows CE can be found in INSTALL.WCE] [Instructions for building for Win64 can be found in INSTALL.W64] Heres a few comments about building OpenSSL in Windows environments. Most of this is tested on Win32 but it may also work in Win 3.1 with some Loading
INSTALL.W64 0 → 100644 +66 −0 Original line number Diff line number Diff line INSTALLATION ON THE WIN64 PLATFORM ---------------------------------- Caveat lector ------------- As of moment of this writing Win64 support is classified "initial" for the following reasons. - No assembler modules are engaged upon initial 0.9.8 release. - API might change within 0.9.8 life-span, *but* in a manner which doesn't break backward binary compatibility. Or in other words, application programs compiled with initial 0.9.8 headers will be expected to work with future minor release .DLL without need to re-compile, even if future minor release features modified API. - Above mentioned API modifications have everything to do with elimination of a number of limitations, which are normally considered inherent to 32-bit platforms. Which in turn is why they are treated as limitations on 64-bit platform such as Win64:-) The current list comprises [but not necessarily limited to]: - null-terminated strings may not be longer than 2G-1 bytes, longer strings are treated as zero-length; - dynamically and *internally* allocated chunks can't be larger than 2G-1 bytes; - inability to encrypt/decrypt chunks of data larger than 4GB [it's possibly to *hash* chunks of arbitrary size through]; Neither of these is actually big deal and hardly encountered in real-life applications. Compiling procedure ------------------- You will need Perl. You can run under Cygwin or you can download ActiveState Perl from http://www.activestate.com/ActivePerl. You will need Microsoft Platform SDK, available for download at http://www.microsoft.com/msdownload/platformsdk/sdkupdate/. As per April 2005 Platform SDK is equipped with Win64 compilers, as well as assemblers, but it might change in the future. To build for Win64/x64: > perl Configure VC-WIN64A > ms\do_win64a > nmake -f ms\ntdll.mak > cd out32dll > ..\ms\test To build for Win64/IA64: > perl Configure VC-WIN64I > ms\do_win64i > nmake -f ms\ntdll.mak > cd out32dll > ..\ms\test Naturally test-suite itself has to be executed on the target platform. Installation ------------ TBD, for now see INSTALL.W32.
crypto/cryptlib.c +1 −1 Original line number Diff line number Diff line Loading @@ -545,7 +545,6 @@ const char *CRYPTO_get_lock_name(int type) unsigned long OPENSSL_ia32cap_P=0; unsigned long *OPENSSL_ia32cap_loc(void) { return &OPENSSL_ia32cap_P; } int OPENSSL_NONPIC_relocated=0; #if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && !defined(I386_ONLY) #define OPENSSL_CPUID_SETUP Loading @@ -572,6 +571,7 @@ void OPENSSL_cpuid_setup(void) #else unsigned long *OPENSSL_ia32cap_loc(void) { return NULL; } #endif int OPENSSL_NONPIC_relocated = 0; #if !defined(OPENSSL_CPUID_SETUP) void OPENSSL_cpuid_setup(void) {} #endif Loading
crypto/mem_dbg.c +8 −0 Original line number Diff line number Diff line Loading @@ -252,8 +252,16 @@ long CRYPTO_dbg_get_options(void) /* static int mem_cmp(MEM *a, MEM *b) */ static int mem_cmp(const void *a_void, const void *b_void) { #ifdef _WIN64 const char *a=(const char *)((const MEM *)a_void)->addr, *b=(const char *)((const MEM *)b_void)->addr; if (a==b) return 0; else if (a>b) return 1; else return -1; #else return((const char *)((const MEM *)a_void)->addr - (const char *)((const MEM *)b_void)->addr); #endif } /* static unsigned long mem_hash(MEM *a) */ Loading