Update from stable branch.
This commit is contained in:
parent
9135fddb0e
commit
fbf002bb88
4
CHANGES
4
CHANGES
@ -53,6 +53,10 @@
|
|||||||
|
|
||||||
Changes between 0.9.8a and 0.9.8b [XX xxx XXXX]
|
Changes between 0.9.8a and 0.9.8b [XX xxx XXXX]
|
||||||
|
|
||||||
|
*) Add support for building of engines under engine/ as shared libraries
|
||||||
|
under VC++ build system.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
*) Corrected the numerous bugs in the Win32 path splitter in DSO.
|
*) Corrected the numerous bugs in the Win32 path splitter in DSO.
|
||||||
Hopefully, we will not see any false combination of paths any more.
|
Hopefully, we will not see any false combination of paths any more.
|
||||||
[Richard Levitte]
|
[Richard Levitte]
|
||||||
|
@ -866,6 +866,8 @@ foreach (sort (keys %disabled))
|
|||||||
{ $no_shared = 1; }
|
{ $no_shared = 1; }
|
||||||
elsif (/^zlib$/)
|
elsif (/^zlib$/)
|
||||||
{ $zlib = 0; }
|
{ $zlib = 0; }
|
||||||
|
elsif (/^static-engine$/)
|
||||||
|
{ }
|
||||||
elsif (/^zlib-dynamic$/)
|
elsif (/^zlib-dynamic$/)
|
||||||
{ }
|
{ }
|
||||||
elsif (/^symlinks$/)
|
elsif (/^symlinks$/)
|
||||||
@ -1124,14 +1126,17 @@ if (!$no_shared)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($no_shared)
|
if (!$IsMK1MF)
|
||||||
|
{
|
||||||
|
if ($no_shared)
|
||||||
{
|
{
|
||||||
$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
|
$openssl_other_defines.="#define OPENSSL_NO_DYNAMIC_ENGINE\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
|
$openssl_other_defines.="#define OPENSSL_NO_STATIC_ENGINE\n";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
|
$cpuid_obj.=" uplink.o uplink-cof.o" if ($cflags =~ /\-DOPENSSL_USE_APPLINK/);
|
||||||
# Compiler fix-ups
|
# Compiler fix-ups
|
||||||
|
@ -637,7 +637,7 @@ typedef struct st_dynamic_fns {
|
|||||||
* can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */
|
* can be fully instantiated with IMPLEMENT_DYNAMIC_CHECK_FN(). */
|
||||||
typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
|
typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
|
||||||
#define IMPLEMENT_DYNAMIC_CHECK_FN() \
|
#define IMPLEMENT_DYNAMIC_CHECK_FN() \
|
||||||
unsigned long v_check(unsigned long v) { \
|
OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \
|
||||||
if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
|
if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \
|
||||||
return 0; }
|
return 0; }
|
||||||
|
|
||||||
@ -659,6 +659,7 @@ typedef unsigned long (*dynamic_v_check_fn)(unsigned long ossl_version);
|
|||||||
typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id,
|
typedef int (*dynamic_bind_engine)(ENGINE *e, const char *id,
|
||||||
const dynamic_fns *fns);
|
const dynamic_fns *fns);
|
||||||
#define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
|
#define IMPLEMENT_DYNAMIC_BIND_FN(fn) \
|
||||||
|
OPENSSL_EXPORT \
|
||||||
int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
|
int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \
|
||||||
if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
|
if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \
|
||||||
if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
|
if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \
|
||||||
|
58
util/copy.pl
Normal file
58
util/copy.pl
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/local/bin/perl
|
||||||
|
|
||||||
|
use Fcntl;
|
||||||
|
|
||||||
|
|
||||||
|
# copy.pl
|
||||||
|
|
||||||
|
# Perl script 'copy' comment. On Windows the built in "copy" command also
|
||||||
|
# copies timestamps: this messes up Makefile dependencies.
|
||||||
|
|
||||||
|
my $arg;
|
||||||
|
|
||||||
|
foreach $arg (@ARGV) {
|
||||||
|
foreach (glob $arg)
|
||||||
|
{
|
||||||
|
push @filelist, $_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$fnum = @filelist;
|
||||||
|
|
||||||
|
if ($fnum <= 1)
|
||||||
|
{
|
||||||
|
die "Need at least two filenames";
|
||||||
|
}
|
||||||
|
|
||||||
|
$dest = pop @filelist;
|
||||||
|
|
||||||
|
if ($fnum > 2 && ! -d $dest)
|
||||||
|
{
|
||||||
|
die "Destination must be a directory";
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (@filelist)
|
||||||
|
{
|
||||||
|
if (-d $dest)
|
||||||
|
{
|
||||||
|
$dfile = $_;
|
||||||
|
$dfile =~ s|^.*[/\\]([^/\\]*)$|$1|;
|
||||||
|
$dfile = "$dest/$dfile";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$dfile = $dest;
|
||||||
|
}
|
||||||
|
sysopen(IN, $_, O_RDONLY|O_BINARY) || die "Can't Open $_";
|
||||||
|
sysopen(OUT, $dfile, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY)
|
||||||
|
|| die "Can't Open $dfile";
|
||||||
|
while (sysread IN, $buf, 10240)
|
||||||
|
{
|
||||||
|
syswrite(OUT, $buf, length($buf));
|
||||||
|
}
|
||||||
|
close(IN);
|
||||||
|
close(OUT);
|
||||||
|
print "Copying: $_ to $dfile\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -10,6 +10,10 @@ $OPTIONS="";
|
|||||||
$ssl_version="";
|
$ssl_version="";
|
||||||
$banner="\t\@echo Building OpenSSL";
|
$banner="\t\@echo Building OpenSSL";
|
||||||
|
|
||||||
|
my $no_static_engine = 0;
|
||||||
|
my $engines = "";
|
||||||
|
|
||||||
|
|
||||||
open(IN,"<Makefile") || die "unable to open Makefile!\n";
|
open(IN,"<Makefile") || die "unable to open Makefile!\n";
|
||||||
while(<IN>) {
|
while(<IN>) {
|
||||||
$ssl_version=$1 if (/^VERSION=(.*)$/);
|
$ssl_version=$1 if (/^VERSION=(.*)$/);
|
||||||
@ -95,6 +99,8 @@ foreach (grep(!/^$/, split(/ /, $OPTIONS)))
|
|||||||
print STDERR "unknown option - $_\n" if !&read_options;
|
print STDERR "unknown option - $_\n" if !&read_options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$no_static_engine = 0 if (!$shlib);
|
||||||
|
|
||||||
$no_mdc2=1 if ($no_des);
|
$no_mdc2=1 if ($no_des);
|
||||||
|
|
||||||
$no_ssl3=1 if ($no_md5 || $no_sha);
|
$no_ssl3=1 if ($no_md5 || $no_sha);
|
||||||
@ -214,6 +220,16 @@ $cflags.=" -DOPENSSL_NO_ECDSA" if $no_ecdsa;
|
|||||||
$cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
|
$cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
|
||||||
$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
|
$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
|
||||||
$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
|
$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
|
||||||
|
|
||||||
|
if ($no_static_engine)
|
||||||
|
{
|
||||||
|
$cflags .= " -DOPENSSL_NO_STATIC_ENGINE";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$cflags .= " -DOPENSSL_NO_DYNAMIC_ENGINE";
|
||||||
|
}
|
||||||
|
|
||||||
#$cflags.=" -DRSAref" if $rsaref ne "";
|
#$cflags.=" -DRSAref" if $rsaref ne "";
|
||||||
|
|
||||||
## if ($unix)
|
## if ($unix)
|
||||||
@ -288,8 +304,10 @@ for (;;)
|
|||||||
if ($key eq "HEADER")
|
if ($key eq "HEADER")
|
||||||
{ $header.=&var_add($dir,$val, 1); }
|
{ $header.=&var_add($dir,$val, 1); }
|
||||||
|
|
||||||
if ($key eq "LIBOBJ")
|
if ($key eq "LIBOBJ" && ($dir ne "engines" || !$no_static_engine))
|
||||||
{ $libobj=&var_add($dir,$val, 0); }
|
{ $libobj=&var_add($dir,$val, 0); }
|
||||||
|
if ($key eq "LIBNAMES" && $dir eq "engines" && $no_static_engine)
|
||||||
|
{ $engines.=$val }
|
||||||
|
|
||||||
if (!($_=<IN>))
|
if (!($_=<IN>))
|
||||||
{ $_="RELATIVE_DIRECTORY=FINISHED\n"; }
|
{ $_="RELATIVE_DIRECTORY=FINISHED\n"; }
|
||||||
@ -385,12 +403,14 @@ CRYPTO=$crypto
|
|||||||
# BIN_D - Binary output directory
|
# BIN_D - Binary output directory
|
||||||
# TEST_D - Binary test file output directory
|
# TEST_D - Binary test file output directory
|
||||||
# LIB_D - library output directory
|
# LIB_D - library output directory
|
||||||
|
# ENG_D - dynamic engine output directory
|
||||||
# Note: if you change these point to different directories then uncomment out
|
# Note: if you change these point to different directories then uncomment out
|
||||||
# the lines around the 'NB' comment below.
|
# the lines around the 'NB' comment below.
|
||||||
#
|
#
|
||||||
BIN_D=\$(OUT_D)
|
BIN_D=\$(OUT_D)
|
||||||
TEST_D=\$(OUT_D)
|
TEST_D=\$(OUT_D)
|
||||||
LIB_D=\$(OUT_D)
|
LIB_D=\$(OUT_D)
|
||||||
|
ENG_D=\$(OUT_D)
|
||||||
|
|
||||||
# INCL_D - local library directory
|
# INCL_D - local library directory
|
||||||
# OBJ_D - temp object file directory
|
# OBJ_D - temp object file directory
|
||||||
@ -446,7 +466,7 @@ $banner
|
|||||||
headers: \$(HEADER) \$(EXHEADER)
|
headers: \$(HEADER) \$(EXHEADER)
|
||||||
@
|
@
|
||||||
|
|
||||||
lib: \$(LIBS_DEP)
|
lib: \$(LIBS_DEP) \$(E_SHLIB)
|
||||||
|
|
||||||
exe: \$(T_EXE) \$(BIN_D)$o\$(E_EXE)$exep
|
exe: \$(T_EXE) \$(BIN_D)$o\$(E_EXE)$exep
|
||||||
|
|
||||||
@ -617,6 +637,16 @@ foreach (split(/\s+/,$test))
|
|||||||
$rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
|
$rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$defs.=&do_defs("E_SHLIB",$engines,"\$(ENG_D)",$shlibp);
|
||||||
|
|
||||||
|
foreach (split(/\s+/,$engines))
|
||||||
|
{
|
||||||
|
$rules.=&do_compile_rule("\$(OBJ_D)","engines${o}e_$_",$lib);
|
||||||
|
$rules.= &do_lib_rule("\$(OBJ_D)${o}e_${_}.obj","\$(ENG_D)$o$_$shlibp","",$shlib,"");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
|
$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
|
||||||
$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
|
$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
|
||||||
|
|
||||||
@ -777,7 +807,7 @@ sub do_defs
|
|||||||
elsif ($var eq "SSLOBJ")
|
elsif ($var eq "SSLOBJ")
|
||||||
{ $ret.="\$(OBJ_D)\\\$(SSL).res "; }
|
{ $ret.="\$(OBJ_D)\\\$(SSL).res "; }
|
||||||
}
|
}
|
||||||
chop($ret);
|
chomp($ret);
|
||||||
$ret.="\n\n";
|
$ret.="\n\n";
|
||||||
return($ret);
|
return($ret);
|
||||||
}
|
}
|
||||||
@ -960,6 +990,14 @@ sub read_options
|
|||||||
{
|
{
|
||||||
$xcflags = "-DZLIB_SHARED -DZLIB $xcflags";
|
$xcflags = "-DZLIB_SHARED -DZLIB $xcflags";
|
||||||
}
|
}
|
||||||
|
elsif (/^no-static-engine/)
|
||||||
|
{
|
||||||
|
$no_static_engine = 1;
|
||||||
|
}
|
||||||
|
elsif (/^enable-static-engine/)
|
||||||
|
{
|
||||||
|
$no_static_engine = 0;
|
||||||
|
}
|
||||||
# There are also enable-xxx options which correspond to
|
# There are also enable-xxx options which correspond to
|
||||||
# the no-xxx. Since the scalars are enabled by default
|
# the no-xxx. Since the scalars are enabled by default
|
||||||
# these can be ignored.
|
# these can be ignored.
|
||||||
|
@ -145,6 +145,8 @@ foreach (@ARGV, split(/ /, $options))
|
|||||||
$do_crypto=1;
|
$do_crypto=1;
|
||||||
$libname=$_;
|
$libname=$_;
|
||||||
}
|
}
|
||||||
|
$no_static_engine=1 if $_ eq "no-static-engine";
|
||||||
|
$no_static_engine=0 if $_ eq "enable-static-engine";
|
||||||
$do_update=1 if $_ eq "update";
|
$do_update=1 if $_ eq "update";
|
||||||
$do_rewrite=1 if $_ eq "rewrite";
|
$do_rewrite=1 if $_ eq "rewrite";
|
||||||
$do_ctest=1 if $_ eq "ctest";
|
$do_ctest=1 if $_ eq "ctest";
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
my $arg;
|
my $arg;
|
||||||
|
|
||||||
foreach $arg (@ARGV) {
|
foreach $arg (@ARGV) {
|
||||||
|
$arg =~ tr|\\|/|;
|
||||||
&do_mkdir_p($arg);
|
&do_mkdir_p($arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,10 +235,14 @@ $cflags.=" /Fd$out_def";
|
|||||||
sub do_lib_rule
|
sub do_lib_rule
|
||||||
{
|
{
|
||||||
local($objs,$target,$name,$shlib)=@_;
|
local($objs,$target,$name,$shlib)=@_;
|
||||||
local($ret,$Name);
|
local($ret);
|
||||||
|
|
||||||
$taget =~ s/\//$o/g if $o ne '/';
|
$taget =~ s/\//$o/g if $o ne '/';
|
||||||
($Name=$name) =~ tr/a-z/A-Z/;
|
if ($name ne "")
|
||||||
|
{
|
||||||
|
$name =~ tr/a-z/A-Z/;
|
||||||
|
$name = "/def:ms/${name}.def";
|
||||||
|
}
|
||||||
|
|
||||||
# $target="\$(LIB_D)$o$target";
|
# $target="\$(LIB_D)$o$target";
|
||||||
$ret.="$target: $objs\n";
|
$ret.="$target: $objs\n";
|
||||||
@ -250,8 +254,10 @@ sub do_lib_rule
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':'';
|
local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)';
|
||||||
if ($FLAVOR =~ /CE/)
|
if ($name eq "")
|
||||||
|
{}
|
||||||
|
elsif ($FLAVOR =~ /CE/)
|
||||||
{
|
{
|
||||||
$ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib';
|
$ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib';
|
||||||
}
|
}
|
||||||
@ -261,7 +267,7 @@ sub do_lib_rule
|
|||||||
$ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
|
$ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
|
||||||
$ex.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
|
$ex.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
|
||||||
}
|
}
|
||||||
$ret.="\t\$(LINK) \$(MLFLAGS) $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
|
$ret.="\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
|
||||||
}
|
}
|
||||||
$ret.="\n";
|
$ret.="\n";
|
||||||
return($ret);
|
return($ret);
|
||||||
|
Loading…
Reference in New Issue
Block a user