New option to generate 80386 code.
This commit is contained in:
parent
6d02d8e444
commit
2613c1fa2f
4
CHANGES
4
CHANGES
@ -5,6 +5,10 @@
|
|||||||
|
|
||||||
Changes between 0.9.2b and 0.9.3
|
Changes between 0.9.2b and 0.9.3
|
||||||
|
|
||||||
|
*) New config option to avoid instructions that are illegal on the 80386.
|
||||||
|
The default code is faster, but requires at least a 486.
|
||||||
|
[Ulf Möller]
|
||||||
|
|
||||||
*) Got rid of old SSL2_CLIENT_VERSION (inconsistently used) and
|
*) Got rid of old SSL2_CLIENT_VERSION (inconsistently used) and
|
||||||
SSL2_SERVER_VERSION (not used at all) macros, which are now the
|
SSL2_SERVER_VERSION (not used at all) macros, which are now the
|
||||||
same as SSL2_VERSION anyway.
|
same as SSL2_VERSION anyway.
|
||||||
|
@ -272,6 +272,7 @@ my $rc5_enc="rc5_enc.o";
|
|||||||
my $md5_obj="";
|
my $md5_obj="";
|
||||||
my $sha1_obj="";
|
my $sha1_obj="";
|
||||||
my $rmd160_obj="";
|
my $rmd160_obj="";
|
||||||
|
my $processor="";
|
||||||
|
|
||||||
if ($#ARGV < 0)
|
if ($#ARGV < 0)
|
||||||
{
|
{
|
||||||
@ -286,6 +287,8 @@ foreach (@ARGV)
|
|||||||
{
|
{
|
||||||
if ($_ =~ /^no-asm$/)
|
if ($_ =~ /^no-asm$/)
|
||||||
{ $no_asm=1; }
|
{ $no_asm=1; }
|
||||||
|
elsif ($_ =~ /^386$/)
|
||||||
|
{ $processor=386; }
|
||||||
elsif ($_ =~ /^-/)
|
elsif ($_ =~ /^-/)
|
||||||
{
|
{
|
||||||
if ($_ =~ /^-[lL](.*)$/)
|
if ($_ =~ /^-[lL](.*)$/)
|
||||||
@ -389,6 +392,7 @@ while (<IN>)
|
|||||||
s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
|
s/^MD5_ASM_OBJ=.*$/MD5_ASM_OBJ= $md5_obj/;
|
||||||
s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
|
s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/;
|
||||||
s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
|
s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/;
|
||||||
|
s/^PROCESSOR=.*/PROCESSOR= $processor/;
|
||||||
print OUT $_."\n";
|
print OUT $_."\n";
|
||||||
}
|
}
|
||||||
close(IN);
|
close(IN);
|
||||||
@ -406,6 +410,7 @@ print "RC5_ENC =$rc5_obj\n";
|
|||||||
print "MD5_OBJ_ASM =$md5_obj\n";
|
print "MD5_OBJ_ASM =$md5_obj\n";
|
||||||
print "SHA1_OBJ_ASM =$sha1_obj\n";
|
print "SHA1_OBJ_ASM =$sha1_obj\n";
|
||||||
print "RMD160_OBJ_ASM=$rmd160_obj\n";
|
print "RMD160_OBJ_ASM=$rmd160_obj\n";
|
||||||
|
print "PROCESSOR =$processor\n";
|
||||||
|
|
||||||
my $des_ptr=0;
|
my $des_ptr=0;
|
||||||
my $des_risc1=0;
|
my $des_risc1=0;
|
||||||
|
9
INSTALL
9
INSTALL
@ -23,10 +23,17 @@
|
|||||||
|
|
||||||
This will build and install OpenSSL in the default location, which is (for
|
This will build and install OpenSSL in the default location, which is (for
|
||||||
historical reasons) /usr/local/ssl. If you want to install it anywhere else,
|
historical reasons) /usr/local/ssl. If you want to install it anywhere else,
|
||||||
do this after running `sh config':
|
do this after running `./config':
|
||||||
|
|
||||||
$ perl util/ssldir.pl /new/install/path
|
$ perl util/ssldir.pl /new/install/path
|
||||||
|
|
||||||
|
There are several options to ./config to customize the build:
|
||||||
|
|
||||||
|
-DRSAref Build with RSADSI's RSAREF toolkit.
|
||||||
|
no-asm Build with no assembler code.
|
||||||
|
386 Use the 80386 instruction set only (the default x86 code is
|
||||||
|
more efficient, but requires at least a 486).
|
||||||
|
|
||||||
If anything goes wrong, follow the detailed instructions below. If your
|
If anything goes wrong, follow the detailed instructions below. If your
|
||||||
operating system is not (yet) supported by OpenSSL, see the section on
|
operating system is not (yet) supported by OpenSSL, see the section on
|
||||||
porting to a new system.
|
porting to a new system.
|
||||||
|
@ -60,6 +60,10 @@ BN_ASM= bn_asm.o
|
|||||||
#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
|
#BN_ASM= asm/x86w16.o # 16 bit code for Windows 3.1/DOS
|
||||||
#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
|
#BN_ASM= asm/x86w32.o # 32 bit code for Windows 3.1
|
||||||
|
|
||||||
|
# For x86 assembler: Set PROCESSOR to 386 if you want to support
|
||||||
|
# the 80386.
|
||||||
|
PROCESSOR=
|
||||||
|
|
||||||
# Set DES_ENC to des_enc.o if you want to use the C version
|
# Set DES_ENC to des_enc.o if you want to use the C version
|
||||||
#There are 4 x86 assember options.
|
#There are 4 x86 assember options.
|
||||||
DES_ENC= asm/dx86-out.o asm/yx86-out.o
|
DES_ENC= asm/dx86-out.o asm/yx86-out.o
|
||||||
@ -163,14 +167,14 @@ all: Makefile.ssl
|
|||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
(cd $$i && echo "making all in $$i..." && \
|
(cd $$i && echo "making all in $$i..." && \
|
||||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' all ) || exit 1; \
|
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' SDIRS='${SDIRS}' AR='${AR}' PROCESSOR='$(PROCESSOR)' all ) || exit 1; \
|
||||||
done;
|
done;
|
||||||
|
|
||||||
sub_all:
|
sub_all:
|
||||||
@for i in $(DIRS) ;\
|
@for i in $(DIRS) ;\
|
||||||
do \
|
do \
|
||||||
(cd $$i && echo "making all in $$i..." && \
|
(cd $$i && echo "making all in $$i..." && \
|
||||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' all ) || exit 1; \
|
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='$(PROCESSOR)' all ) || exit 1; \
|
||||||
done;
|
done;
|
||||||
|
|
||||||
Makefile.ssl: Makefile.org
|
Makefile.ssl: Makefile.org
|
||||||
|
@ -64,7 +64,7 @@ asm/bx86bsdi.o: asm/bx86unix.cpp
|
|||||||
$(CPP) -DBSDI asm/bx86unix.cpp | sed 's/ :/:/' | as -o asm/bx86bsdi.o
|
$(CPP) -DBSDI asm/bx86unix.cpp | sed 's/ :/:/' | as -o asm/bx86bsdi.o
|
||||||
|
|
||||||
asm/bx86unix.cpp:
|
asm/bx86unix.cpp:
|
||||||
(cd asm; perl bf-586.pl cpp >bx86unix.cpp)
|
(cd asm; perl bf-586.pl cpp $(PROCESSOR) >bx86unix.cpp)
|
||||||
|
|
||||||
files:
|
files:
|
||||||
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||||
|
@ -4,7 +4,7 @@ push(@INC,"perlasm","../../perlasm");
|
|||||||
require "x86asm.pl";
|
require "x86asm.pl";
|
||||||
require "cbc.pl";
|
require "cbc.pl";
|
||||||
|
|
||||||
&asm_init($ARGV[0],"bf-586.pl");
|
&asm_init($ARGV[0],"bf-586.pl",$ARGV[$#ARGV] eq "386");
|
||||||
|
|
||||||
$BF_ROUNDS=16;
|
$BF_ROUNDS=16;
|
||||||
$BF_OFF=($BF_ROUNDS+2)*4;
|
$BF_OFF=($BF_ROUNDS+2)*4;
|
||||||
|
@ -67,7 +67,7 @@ asm/cx86bsdi.o: asm/cx86unix.cpp
|
|||||||
$(CPP) -DBSDI asm/cx86unix.cpp | sed 's/ :/:/' | as -o asm/cx86bsdi.o
|
$(CPP) -DBSDI asm/cx86unix.cpp | sed 's/ :/:/' | as -o asm/cx86bsdi.o
|
||||||
|
|
||||||
asm/cx86unix.cpp: asm/cast-586.pl
|
asm/cx86unix.cpp: asm/cast-586.pl
|
||||||
(cd asm; perl cast-586.pl cpp >cx86unix.cpp)
|
(cd asm; perl cast-586.pl cpp $(PROCESSOR) >cx86unix.cpp)
|
||||||
|
|
||||||
files:
|
files:
|
||||||
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||||
|
@ -7,7 +7,7 @@ push(@INC,"perlasm","../../perlasm");
|
|||||||
require "x86asm.pl";
|
require "x86asm.pl";
|
||||||
require "cbc.pl";
|
require "cbc.pl";
|
||||||
|
|
||||||
&asm_init($ARGV[0],"cast-586.pl");
|
&asm_init($ARGV[0],"cast-586.pl",$ARGV[$#ARGV] eq "386");
|
||||||
|
|
||||||
$CAST_ROUNDS=16;
|
$CAST_ROUNDS=16;
|
||||||
$L="edi";
|
$L="edi";
|
||||||
@ -173,3 +173,4 @@ sub E_CAST {
|
|||||||
&xor( $L, $tmp1);
|
&xor( $L, $tmp1);
|
||||||
# XXX
|
# XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,14 +15,9 @@ sub main'asm_finish
|
|||||||
|
|
||||||
sub main'asm_init
|
sub main'asm_init
|
||||||
{
|
{
|
||||||
($type,$fn)=@_;
|
($type,$fn,$i386)=@_;
|
||||||
$filename=$fn;
|
$filename=$fn;
|
||||||
|
|
||||||
if ($ARGV[$#ARGV] eq "386")
|
|
||||||
{
|
|
||||||
$i386=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
$cpp=$sol=$aout=$win32=0;
|
$cpp=$sol=$aout=$win32=0;
|
||||||
if ( ($type eq "elf"))
|
if ( ($type eq "elf"))
|
||||||
{ require "x86unix.pl"; }
|
{ require "x86unix.pl"; }
|
||||||
@ -37,8 +32,6 @@ sub main'asm_init
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
print STDERR <<"EOF";
|
print STDERR <<"EOF";
|
||||||
Usage: $filename <target> [386]
|
|
||||||
|
|
||||||
Pick one target type from
|
Pick one target type from
|
||||||
elf - linux, FreeBSD etc
|
elf - linux, FreeBSD etc
|
||||||
a.out - old linux
|
a.out - old linux
|
||||||
|
@ -61,7 +61,7 @@ asm/sx86bsdi.o: asm/sx86unix.cpp
|
|||||||
$(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o
|
$(CPP) -DBSDI asm/sx86unix.cpp | sed 's/ :/:/' | as -o asm/sx86bsdi.o
|
||||||
|
|
||||||
asm/sx86unix.cpp:
|
asm/sx86unix.cpp:
|
||||||
(cd asm; perl sha1-586.pl cpp >sx86unix.cpp)
|
(cd asm; perl sha1-586.pl cpp $(PROCESSOR) >sx86unix.cpp)
|
||||||
|
|
||||||
files:
|
files:
|
||||||
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
perl $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
|
||||||
|
@ -5,7 +5,7 @@ $normal=0;
|
|||||||
push(@INC,"perlasm","../../perlasm");
|
push(@INC,"perlasm","../../perlasm");
|
||||||
require "x86asm.pl";
|
require "x86asm.pl";
|
||||||
|
|
||||||
&asm_init($ARGV[0],"sha1-586.pl");
|
&asm_init($ARGV[0],"sha1-586.pl",$ARGV[$#ARGV] eq "386");
|
||||||
|
|
||||||
$A="eax";
|
$A="eax";
|
||||||
$B="ebx";
|
$B="ebx";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user